diff --git a/.browserslistrc b/.browserslistrc new file mode 100644 index 000000000..2c90ae7e7 --- /dev/null +++ b/.browserslistrc @@ -0,0 +1,2 @@ +> 0.25% +not dead diff --git a/.gitattributes b/.gitattributes index 7eccc54e3..c6aa027df 100644 --- a/.gitattributes +++ b/.gitattributes @@ -11,6 +11,7 @@ /docs export-ignore /README.md export-ignore /ABOUT.md export-ignore -/resources/assets/js export-ignore -/resources/assets/sass export-ignore +/resources/js export-ignore +/resources/sass export-ignore /packages export-ignore +/src/Dev export-ignore diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml new file mode 100644 index 000000000..b2df294c0 --- /dev/null +++ b/.github/workflows/e2e.yml @@ -0,0 +1,47 @@ +name: Playwright Tests +#on: +# push: +# branches: [ main ] +# pull_request: +# branches: [ main ] +jobs: + test: + timeout-minutes: 60 + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + extensions: mbstring, dom, fileinfo, mysql + - uses: actions/setup-node@v4 + with: + node-version: lts/* + - name: Install dependencies + run: npm ci + working-directory: tests-e2e + - name: Install Playwright Browsers + run: npx playwright install --with-deps + working-directory: tests-e2e + - name: Install Composer dependencies + run: composer install + working-directory: tests-e2e/site + - name: Create .env + run: cp .env.e2e.ci .env + working-directory: tests-e2e/site + - name: Generate app key + run: php artisan key:generate + working-directory: tests-e2e/site + - name: Setup DB + run: touch database/database.sqlite + working-directory: tests-e2e/site + - name: Run Playwright tests + run: npx playwright test + working-directory: tests-e2e + - uses: actions/upload-artifact@v4 + if: ${{ !cancelled() }} + with: + name: playwright-report + path: tests-e2e/playwright-report/ + retention-days: 30 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 06eef5024..be8f85f6f 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -6,8 +6,7 @@ on: pull_request: branches: - main - - next - - dev + - "9.0" jobs: # Unit tests back (phpunit) @@ -18,17 +17,13 @@ jobs: include: - php: 8.2 env: - LARAVEL: 10.* - TESTBENCH: 8.* + LARAVEL: 11.* + TESTBENCH: 9.* - php: 8.3 - env: - LARAVEL: 10.* - TESTBENCH: 8.* - - php: 8.2 env: LARAVEL: 11.* TESTBENCH: 9.* - - php: 8.3 + - php: 8.4 env: LARAVEL: 11.* TESTBENCH: 9.* @@ -55,64 +50,13 @@ jobs: run: | composer require "laravel/framework:${LARAVEL}" "orchestra/testbench:${TESTBENCH}" --no-interaction --no-update composer update --prefer-stable --prefer-dist --no-interaction - - name: Execute tests (Unit and Feature tests) via PHPUnit - run: ./vendor/bin/phpunit - - # Front unit tests -# front-tests: -# runs-on: ubuntu-latest -# steps: -# - uses: actions/checkout@v2 -# -# - name: Setup Node.js -# uses: actions/setup-node@v2 -# with: -# node-version: '14' -# -# - name: Update NPM -# run: npm i -g npm@9 -# -# - name: Install front dependencies -# run: npm ci -# -# - name: Run Front tests -# run: npm run test - - # Front e2e tests - e2e-tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: '14' - - - name: Update NPM - run: npm i -g npm@9 - - - name: Install sharp dependencies - run: npm ci --production - - - name: Run E2E tests - uses: cypress-io/github-action@v2 - with: - command: npm run cy:run-ct - working-directory: tests-e2e - env: CI=true - - - uses: actions/upload-artifact@v4 - if: always() - continue-on-error: true - with: - name: e2e-cypress-screenshots - path: tests-e2e/cypress/screenshots + - name: Execute tests via Pest + run: ./vendor/bin/pest --parallel slack: needs: - laravel-tests - - e2e-tests +# - e2e-tests if: failure() && github.event_name == 'push' runs-on: ubuntu-latest steps: diff --git a/.gitignore b/.gitignore index 3612c2a79..6c8a8d35b 100644 --- a/.gitignore +++ b/.gitignore @@ -3,9 +3,10 @@ node_modules .idea .DS_Store .phpunit.result.cache +.phpunit.cache .php-cs-fixer.cache /composer.lock /public /saturn -/resources/assets/dist/hot -/.phpunit.cache \ No newline at end of file +/dist/hot +/resources/assets/dist diff --git a/babel.config.js b/babel.config.js index 5b4329af5..1e02e6191 100644 --- a/babel.config.js +++ b/babel.config.js @@ -1,4 +1,16 @@ +/** + * @type {import('@babel/core').TransformOptions} + */ module.exports = { + presets: [ + [ + '@babel/preset-env', + { + "useBuiltIns": "usage", + "corejs": "3.36" + } + ], + ], env: { 'test': { presets: [ diff --git a/components.json b/components.json new file mode 100644 index 000000000..aaab11cb4 --- /dev/null +++ b/components.json @@ -0,0 +1,16 @@ +{ + "$schema": "https://shadcn-vue.com/schema.json", + "style": "default", + "typescript": true, + "tailwind": { + "config": "tailwind.config.js", + "css": "resources/css/shadcn.css", + "baseColor": "slate", + "cssVariables": true + }, + "framework": "laravel", + "aliases": { + "components": "@/components", + "utils": "@/utils/cn" + } +} diff --git a/composer.json b/composer.json index 18f6171f7..90367c5fd 100644 --- a/composer.json +++ b/composer.json @@ -12,25 +12,34 @@ } ], "require": { - "php": "8.2.*|8.3.*", - "code16/laravel-content-renderer": "^1.1.0", + "php": "8.2.*|8.3.*|8.4.*", + "ext-dom": "*", + "blade-ui-kit/blade-icons": "^1.6", + "code16/laravel-content-renderer": "^1.1", + "inertiajs/inertia-laravel": "^2.0", "intervention/image": "^3.4", "intervention/image-laravel": "^1.2", - "laravel/framework": "^10.0|^11.0", + "laravel/framework": "^11.0", + "laravel/prompts": "0.*", "league/commonmark": "^2.4", - "spatie/image-optimizer": "^1.6" + "masterminds/html5": "^2.8", + "spatie/image-optimizer": "^1.6", + "tightenco/ziggy": "^2.0" }, "require-dev": { - "brianium/paratest": "^6.3|^7.4", - "dms/phpunit-arraysubset-asserts": "^0.4|^0.5", + "brianium/paratest": "^7.0", "doctrine/dbal": "^3.5", "friendsofphp/php-cs-fixer": "^3.8", "laravel/pint": "^1.18", "mockery/mockery": "^1.5.0", - "nunomaduro/collision": "^7.0|^8.0", + "nunomaduro/collision": "^8.0", "orchestra/testbench": "^8.0|^9.0", - "phpunit/phpunit": "^9.5|^10.5", - "spatie/laravel-ray": "^1.26" + "pestphp/pest": "^3.0", + "pestphp/pest-plugin-laravel": "^3.0", + "phpunit/phpunit": "^11.0", + "spatie/laravel-ray": "^1.26", + "spatie/laravel-typescript-transformer": "^2.3", + "spatie/typescript-transformer": "^2.2" }, "autoload": { "files": [ @@ -42,16 +51,18 @@ }, "autoload-dev": { "psr-4": { - "Code16\\Sharp\\Tests\\": "tests/" + "Code16\\Sharp\\Tests\\": "tests/", + "App\\": "vendor/orchestra/testbench-core/laravel/app" } }, "scripts": { - "test": "vendor/bin/testbench package:test --parallel" + "test": "vendor/bin/testbench package:test --parallel", + "typescript:generate": "php demo/artisan ziggy:generate --types-only; php demo/artisan typescript:transform" }, "extra": { "laravel": { "providers": [ - "Code16\\Sharp\\SharpServiceProvider" + "Code16\\Sharp\\SharpInternalServiceProvider" ] } }, diff --git a/config/config.php b/config/config.php index 77516f39e..091f61473 100644 --- a/config/config.php +++ b/config/config.php @@ -1,18 +1,14 @@ 'Sharp', - // Optional. You can here customize the URL segment in which Sharp will live. Default in "sharp". - 'custom_url_segment' => 'sharp', - // Optional. You can prevent Sharp version to be displayed in the page title. Default is true. 'display_sharp_version_in_title' => true, - // Optional. You can display a breadcrumb on all Sharp pages. Default is false. - 'display_breadcrumb' => false, + // Optional. You can display a breadcrumb on all Sharp pages. Default is true. + 'display_breadcrumb' => true, // Optional. Handle extensions. // 'extensions' => [ @@ -31,18 +27,16 @@ // 'my_entity' => \App\Sharp\Entities\MyEntity::class, ], + // Optional. Your dashboards list, as dashboardKey => \App\Sharp\Dashboards\SharpDashboard implementation + 'dashboards' => [ + // 'my_dashboard' => \App\Sharp\Dashboards\MyDashboard::class, + ], + // Optional. Your global filters list, which will be displayed in the main menu. 'global_filters' => [ // \App\Sharp\Filters\MyGlobalFilter::class ], - // Optional. Your global search implementation. - // 'search' => [ - // 'enabled' => true, - // 'placeholder' => 'Search for anything...', - // 'engine' => \App\Sharp\MySearchEngine::class, - // ], - // Required. The main menu (left bar), which may contain links to entities, dashboards // or external URLs, grouped in categories. 'menu' => null, //\App\Sharp\SharpMenu::class @@ -59,11 +53,12 @@ ], 'web' => [ \Code16\Sharp\Http\Middleware\InvalidateCache::class, + \Code16\Sharp\Http\Middleware\HandleSharpErrors::class, + \Code16\Sharp\Http\Middleware\HandleInertiaRequests::class, ], 'api' => [ - Code16\Sharp\Http\Middleware\Api\BindSharpValidationResolver::class, - Code16\Sharp\Http\Middleware\Api\HandleSharpApiErrors::class, - Code16\Sharp\Http\Middleware\Api\SetSharpLocale::class, + \Code16\Sharp\Http\Middleware\Api\BindSharpValidationResolver::class, + \Code16\Sharp\Http\Middleware\Api\HandleSharpApiErrors::class, ], ], @@ -81,6 +76,11 @@ 'transform_keep_original_image' => true, + 'max_file_size' => env('SHARP_UPLOADS_MAX_FILE_SIZE_IN_MB', 2), + + 'file_handling_queue_connection' => env('SHARP_UPLOADS_FILE_HANDLING_QUEUE_CONNECTION', 'sync'), + 'file_handling_queue' => env('SHARP_UPLOADS_FILE_HANDLING_QUEUE', 'default'), + // Optional SharpUploadModel implementation class name // 'model_class' => null, ], @@ -112,28 +112,44 @@ 'handler' => 'notification', // "notification", "totp" or a class name in custom implementation case ], - // Handle a "remember me" flag (with a checkbox on the login form) - 'suggest_remember_me' => false, + 'forgotten_password' => [ + 'enabled' => false, + 'password_broker' => null, + 'reset_password_callback' => null, + ], // Name of the attribute used to display the current user in the UI. 'display_attribute' => 'name', - // Optional additional auth check. - // 'check_handler' => \App\Sharp\Auth\MySharpCheckHandler::class, + // Optionally allow to impersonate users; by default only if enabled AND app.env is "local". + 'impersonate' => [ + 'enabled' => env('SHARP_IMPERSONATE', false), + 'handler' => null, + ], + + 'login_form' => [ + // Handle a "remember me" flag (with a checkbox on the login form) + 'suggest_remember_me' => false, + + // Display the app name on the login page. + 'display_app_name' => true, + + // Optional logo on the login page (default to theme.logo_url and to sharp logo) + // 'logo_url' => '/sharp-assets/login-logo.png', + + // Optional additional message on the login page. + // 'message_blade_path' => 'sharp/_login-page-message', + ], // Optional custom guard // 'guard' => 'sharp', ], - // 'login_page_message_blade_path' => env('SHARP_LOGIN_PAGE_MESSAGE_BLADE_PATH', 'sharp/_login-page-message'), - 'theme' => [ 'primary_color' => '#004c9b', // 'favicon_url' => '', - // 'logo_urls' => [ - // 'menu' => '/sharp-assets/menu-icon.png', - // 'login' => '/sharp-assets/login-icon.png', - // ], + // 'logo_url' => '/sharp-assets/menu-icon.png', + // 'logo_height' => '1.5rem', ], ]; diff --git a/demo/.gitignore b/demo/.gitignore index 121b471d7..acda100fc 100644 --- a/demo/.gitignore +++ b/demo/.gitignore @@ -2,6 +2,7 @@ /public/storage /public/hot /storage/*.key +/storage/clockwork /vendor /storage/clockwork node_modules diff --git a/demo/app/Http/Kernel.php b/demo/app/Http/Kernel.php index 77ab420ff..13591a65a 100644 --- a/demo/app/Http/Kernel.php +++ b/demo/app/Http/Kernel.php @@ -40,7 +40,6 @@ class Kernel extends HttpKernel ], 'api' => [ - \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class, 'throttle:api', \Illuminate\Routing\Middleware\SubstituteBindings::class, ], diff --git a/demo/app/Http/Middleware/PrefillLoginWithExampleCredentials.php b/demo/app/Http/Middleware/PrefillLoginWithExampleCredentials.php new file mode 100644 index 000000000..c5449278b --- /dev/null +++ b/demo/app/Http/Middleware/PrefillLoginWithExampleCredentials.php @@ -0,0 +1,28 @@ +routeIs('code16.sharp.login')) { + Inertia::share([ + 'prefill' => [ + 'login' => 'admin@example.org', + 'password' => 'password', + ], + ]); + } + + return $next($request); + } +} diff --git a/demo/app/Models/Category.php b/demo/app/Models/Category.php index 7eff73631..757a5255a 100644 --- a/demo/app/Models/Category.php +++ b/demo/app/Models/Category.php @@ -5,12 +5,17 @@ use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsToMany; +use Spatie\Translatable\HasTranslations; class Category extends Model { use HasFactory; + use HasTranslations; protected $guarded = []; + public array $translatable = [ + 'description', + ]; public function posts(): BelongsToMany { diff --git a/demo/app/Models/Post.php b/demo/app/Models/Post.php index 2a31c70ad..65d943f68 100644 --- a/demo/app/Models/Post.php +++ b/demo/app/Models/Post.php @@ -73,7 +73,12 @@ public function categories(): BelongsToMany public function isOnline(): bool { - return $this->state->value === 'online'; + return $this->state === PostState::ONLINE; + } + + public function isDraft(): bool + { + return $this->state === PostState::DRAFT; } public function getDefaultAttributesFor($attribute) diff --git a/demo/app/Models/PostAttachment.php b/demo/app/Models/PostAttachment.php index 67092c621..b8f516322 100644 --- a/demo/app/Models/PostAttachment.php +++ b/demo/app/Models/PostAttachment.php @@ -12,6 +12,9 @@ class PostAttachment extends Model use HasFactory; protected $guarded = []; + protected $casts = [ + 'is_link' => 'boolean', + ]; public function post(): BelongsTo { diff --git a/demo/app/Providers/AppServiceProvider.php b/demo/app/Providers/AppServiceProvider.php index b21a4f0ae..89144f519 100644 --- a/demo/app/Providers/AppServiceProvider.php +++ b/demo/app/Providers/AppServiceProvider.php @@ -2,24 +2,28 @@ namespace App\Providers; -use Code16\Sharp\SharpServiceProvider; -use Code16\Sharp\View\Components\Vite as SharpViteComponent; +use Code16\Sharp\Dev\SharpDevServiceProvider; +use Code16\Sharp\SharpInternalServiceProvider; +use Code16\Sharp\View\Components\ViteWrapper as SharpViteWrapperComponent; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider { - public function register() + public function register(): void { - $this->app->register(SharpServiceProvider::class); // $this->app->bind(SharpUploadModel::class, Media::class) - $this->app->bind(SharpViteComponent::class, function () { - return new SharpViteComponent(hotFile: base_path('../resources/assets/dist/hot')); + $this->app->register(SharpInternalServiceProvider::class); + $this->app->register(DemoSharpServiceProvider::class); + + if (class_exists(SharpDevServiceProvider::class)) { + $this->app->register(SharpDevServiceProvider::class); + } + + $this->app->bind(SharpViteWrapperComponent::class, function () { + return new SharpViteWrapperComponent(hotFile: base_path('../dist/hot')); }); } - public function boot() - { - // - } + public function boot(): void {} } diff --git a/demo/app/Providers/DemoSharpServiceProvider.php b/demo/app/Providers/DemoSharpServiceProvider.php new file mode 100644 index 000000000..464f0919e --- /dev/null +++ b/demo/app/Providers/DemoSharpServiceProvider.php @@ -0,0 +1,55 @@ +setName('Demo project') + ->addEntity('posts', PostEntity::class) + ->addEntity('blocks', PostBlockEntity::class) + ->addEntity('categories', CategoryEntity::class) + ->addEntity('authors', AuthorEntity::class) + ->addEntity('profile', ProfileEntity::class) + ->addEntity('dashboard', DemoDashboardEntity::class) + ->addEntity('test', TestEntity::class) + ->addGlobalFilter(DummyGlobalFilter::class) + ->configureUploadsThumbnailCreation(uploadModelClass: Media::class) + ->setSharpMenu(SharpMenu::class) + ->setThemeColor('#004c9b') + ->setThemeLogo(logoUrl: '/img/sharp/logo.svg', logoHeight: '1rem', faviconUrl: '/img/sharp/favicon-32x32.png') +// ->redirectLoginToUrl('/my-login') + ->enableImpersonation() + ->enableForgottenPassword() + ->setAuthCustomGuard('web') + ->setLoginAttributes('email', 'password') + ->setUserDisplayAttribute('name') + ->enable2faCustom(Demo2faNotificationHandler::class) + ->enableLoginRateLimiting(maxAttempts: 3) + ->suggestRememberMeOnLoginForm() + ->appendMessageOnLoginForm('sharp._login-page-message') + ->enableGlobalSearch(AppSearchEngine::class, 'Search for posts or authors...') + ->appendToMiddlewareWebGroup(PrefillLoginWithExampleCredentials::class) + ->loadViteAssets([ + 'resources/css/sharp-extension.css', + ]); + } +} diff --git a/demo/app/Sharp/Authors/AuthorList.php b/demo/app/Sharp/Authors/AuthorList.php index b8a5c7fb1..16ed2b25b 100644 --- a/demo/app/Sharp/Authors/AuthorList.php +++ b/demo/app/Sharp/Authors/AuthorList.php @@ -19,28 +19,25 @@ protected function buildList(EntityListFieldsContainer $fields): void $fields ->addField( EntityListField::make('avatar') - ->setWidth(1) - ->setWidthOnSmallScreens(2) + ->setWidth(.1) ->setLabel(''), ) ->addField( EntityListField::make('name') - ->setWidth(3) - ->setWidthOnSmallScreens(5) + ->setWidth(.3) ->setLabel('Name') ->setSortable(), ) ->addField( EntityListField::make('email') - ->setWidth(4) + ->setWidth(.3) ->hideOnSmallScreens() ->setLabel('Email') ->setSortable(), ) ->addField( EntityListField::make('role') - ->setWidth(4) - ->setWidthOnSmallScreens(5) + ->setWidth(.3) ->setLabel('Role'), ); } diff --git a/demo/app/Sharp/Authors/Commands/InviteUserCommand.php b/demo/app/Sharp/Authors/Commands/InviteUserCommand.php index 61caeceba..f47a33aa4 100644 --- a/demo/app/Sharp/Authors/Commands/InviteUserCommand.php +++ b/demo/app/Sharp/Authors/Commands/InviteUserCommand.php @@ -16,10 +16,9 @@ public function label(): ?string public function buildCommandConfig(): void { $this->configureFormModalTitle('Invite a new user as author') - ->configurePageAlert( - '
Provide the email address of the new author, and an invitation will be sent to him
(not true, we won’t send anything)
', - static::$pageAlertLevelInfo, - ); + ->configureFormModalDescription('Provide the email address of the new author, and an invitation will be sent to him (not true, we won’t send anything).') + ->configureFormModalButtonLabel('Send invitation') + ->configureFormModalSubmitAndReopenButton('Send & send another'); } public function buildFormFields(FieldsContainer $formFields): void diff --git a/demo/app/Sharp/Categories/CategoryForm.php b/demo/app/Sharp/Categories/CategoryForm.php index 0fbf94ca6..2328707a0 100644 --- a/demo/app/Sharp/Categories/CategoryForm.php +++ b/demo/app/Sharp/Categories/CategoryForm.php @@ -4,6 +4,7 @@ use App\Models\Category; use Code16\Sharp\Form\Eloquent\WithSharpFormEloquentUpdater; +use Code16\Sharp\Form\Fields\SharpFormTextareaField; use Code16\Sharp\Form\Fields\SharpFormTextField; use Code16\Sharp\Form\Layout\FormLayout; use Code16\Sharp\Form\Layout\FormLayoutColumn; @@ -14,8 +15,6 @@ class CategoryForm extends SharpForm { use WithSharpFormEloquentUpdater; - protected ?string $formValidatorClass = CategoryValidator::class; - public function buildFormFields(FieldsContainer $formFields): void { $formFields @@ -23,13 +22,21 @@ public function buildFormFields(FieldsContainer $formFields): void SharpFormTextField::make('name') ->setLabel('Name') ->setMaxLength(150), + ) + ->addField( + SharpFormTextareaField::make('description') + ->setLabel('Description') + ->setRowCount(4) + ->setLocalized() + ->setMaxLength(500), ); } public function buildFormLayout(FormLayout $formLayout): void { $formLayout->addColumn(6, function (FormLayoutColumn $column) { - $column->withSingleField('name'); + $column->withField('name') + ->withField('description'); }); } @@ -38,6 +45,11 @@ public function buildFormConfig(): void $this->configureDisplayShowPageAfterCreation(); } + public function getDataLocalizations(): array + { + return ['fr', 'en']; + } + public function find($id): array { return $this->transform(Category::findOrFail($id)); @@ -45,6 +57,12 @@ public function find($id): array public function update($id, array $data) { + $this->validate( + $data, [ + 'name' => ['required', 'string', 'max:150'], + ] + ); + $category = $id ? Category::findOrFail($id) : new Category(); diff --git a/demo/app/Sharp/Categories/CategoryList.php b/demo/app/Sharp/Categories/CategoryList.php index 0ba1a38db..6a51f0904 100644 --- a/demo/app/Sharp/Categories/CategoryList.php +++ b/demo/app/Sharp/Categories/CategoryList.php @@ -28,7 +28,8 @@ protected function buildList(EntityListFieldsContainer $fields): void public function buildListConfig(): void { - $this->configureReorderable(new SimpleEloquentReorderHandler(Category::class)); + $this->configureReorderable(new SimpleEloquentReorderHandler(Category::class)) + ->configureQuickCreationForm(['name']); } protected function getEntityCommands(): ?array diff --git a/demo/app/Sharp/Categories/CategoryShow.php b/demo/app/Sharp/Categories/CategoryShow.php index 9af39e6c1..e60b664bc 100644 --- a/demo/app/Sharp/Categories/CategoryShow.php +++ b/demo/app/Sharp/Categories/CategoryShow.php @@ -27,15 +27,20 @@ public function find(mixed $id): array protected function buildShowFields(FieldsContainer $showFields): void { $showFields - ->addField(SharpShowTextField::make('name')->setLabel('Name')) + ->addField( + SharpShowTextField::make('name') + ->setLabel('Name')) + ->addField( + SharpShowTextField::make('description') + ->setLocalized() + ->setLabel('Description') + ) ->addField( SharpShowEntityListField::make('posts') ->setLabel('Related posts') ->showCreateButton(false) ->showCount() - ->hideFilterWithValue(CategoryFilter::class, function ($instanceId) { - return $instanceId; - }), + ->hideFilterWithValue(CategoryFilter::class, fn ($instanceId) => $instanceId) ); } @@ -45,7 +50,8 @@ protected function buildShowLayout(ShowLayout $showLayout): void ->addSection('', function (ShowLayoutSection $section) { $section ->addColumn(6, function (ShowLayoutColumn $column) { - $column->withSingleField('name'); + $column->withField('name') + ->withField('description'); }); }) ->addEntityListSection('posts', collapsable: true); @@ -55,4 +61,9 @@ public function delete($id): void { Category::findOrFail($id)->delete(); } + + public function getDataLocalizations(): array + { + return ['fr', 'en']; + } } diff --git a/demo/app/Sharp/Categories/CategoryValidator.php b/demo/app/Sharp/Categories/CategoryValidator.php deleted file mode 100644 index ef0af5fa1..000000000 --- a/demo/app/Sharp/Categories/CategoryValidator.php +++ /dev/null @@ -1,15 +0,0 @@ - ['required', 'string', 'max:150'], - ]; - } -} diff --git a/demo/app/Sharp/Dashboard/Commands/ExportStatsAsCsvCommand.php b/demo/app/Sharp/Dashboard/Commands/ExportStatsAsCsvCommand.php index d0703a2f4..fcc81dc79 100644 --- a/demo/app/Sharp/Dashboard/Commands/ExportStatsAsCsvCommand.php +++ b/demo/app/Sharp/Dashboard/Commands/ExportStatsAsCsvCommand.php @@ -6,6 +6,7 @@ use Code16\Sharp\Dashboard\Commands\DashboardCommand; use Code16\Sharp\Form\Fields\SharpFormSelectField; use Code16\Sharp\Utils\Fields\FieldsContainer; +use Code16\Sharp\Utils\PageAlerts\PageAlert; class ExportStatsAsCsvCommand extends DashboardCommand { @@ -14,9 +15,17 @@ public function label(): ?string return 'Export stats as a CSV file...'; } - public function buildCommandConfig(): void + protected function buildPageAlert(PageAlert $pageAlert): void { - $this->configurePageAlert('For the period {{start}} - {{end}}', null, 'period'); + $pageAlert + ->setLevelInfo() + ->setMessage(function () { + return sprintf( + 'For the period %s - %s', + $this->queryParams->filterFor(PeriodRequiredFilter::class)['start']->isoFormat('L'), + $this->queryParams->filterFor(PeriodRequiredFilter::class)['end']->isoFormat('L'), + ); + }); } public function buildFormFields(FieldsContainer $formFields): void @@ -37,14 +46,4 @@ public function execute(array $data = []): array return $this->streamDownload('some stats', 'stats.csv'); } - - protected function initialData(): array - { - return [ - 'period' => [ - 'start' => $this->queryParams->filterFor(PeriodRequiredFilter::class)['start']->isoFormat('L'), - 'end' => $this->queryParams->filterFor(PeriodRequiredFilter::class)['end']->isoFormat('L'), - ], - ]; - } } diff --git a/demo/app/Sharp/Dashboard/DemoDashboard.php b/demo/app/Sharp/Dashboard/DemoDashboard.php index 554341ef6..86832fff5 100644 --- a/demo/app/Sharp/Dashboard/DemoDashboard.php +++ b/demo/app/Sharp/Dashboard/DemoDashboard.php @@ -5,6 +5,8 @@ use App\Models\Category; use App\Models\User; use App\Sharp\Dashboard\Commands\ExportStatsAsCsvCommand; +use App\Sharp\Utils\Filters\CategoryFilter; +use App\Sharp\Utils\Filters\PeriodFilter; use App\Sharp\Utils\Filters\PeriodRequiredFilter; use App\Sharp\Utils\Filters\StateFilter; use Carbon\Carbon; @@ -17,25 +19,28 @@ use Code16\Sharp\Dashboard\Widgets\SharpFigureWidget; use Code16\Sharp\Dashboard\Widgets\SharpGraphWidgetDataSet; use Code16\Sharp\Dashboard\Widgets\SharpLineGraphWidget; +use Code16\Sharp\Dashboard\Widgets\SharpOrderedListWidget; +use Code16\Sharp\Dashboard\Widgets\SharpPanelWidget; use Code16\Sharp\Dashboard\Widgets\SharpPieGraphWidget; use Code16\Sharp\Dashboard\Widgets\WidgetsContainer; use Code16\Sharp\Utils\Links\LinkToEntityList; +use Code16\Sharp\Utils\PageAlerts\PageAlert; use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\Facades\DB; class DemoDashboard extends SharpDashboard { private static array $colors = [ - '#7F1D1D', - '#F472B6', - '#6366F1', - '#10B981', - '#F59E0B', - '#3B82F6', - '#064E3B', - '#EC4899', - '#78350F', - '#9CA3AF', + '#2a9d90', + '#e76e50', + '#274754', + '#e8c468', + '#f4a462', + // '#3B82F6', + // '#064E3B', + // '#EC4899', + // '#78350F', + // '#9CA3AF', ]; private static int $colorsIndex = 0; @@ -69,6 +74,16 @@ protected function buildWidgets(WidgetsContainer $widgetsContainer): void SharpFigureWidget::make('online_panel') ->setTitle('Online posts') ->setLink(LinkToEntityList::make('posts')->addFilter(StateFilter::class, 'online')), + ) + ->addWidget( + SharpOrderedListWidget::make('list') + ->setTitle('Top 3 categories') + ->buildItemLink(fn (array $item) => $item['url'] ?? null) + ) + ->addWidget( + SharpPanelWidget::make('highlighted_post') + ->setTitle('On the spotlight') + ->setTemplate(view('sharp.templates.dashboard_ranking')) ); } @@ -85,11 +100,15 @@ protected function buildDashboardLayout(DashboardLayout $dashboardLayout): void ->addSection('Stats', function (DashboardLayoutSection $section) { $section ->setKey('stats-section') - ->addRow(function (DashboardLayoutRow $row) { - $row->addWidget(6, 'authors_bar') - ->addWidget(6, 'categories_pie'); - }) - ->addFullWidthWidget('visits_line'); + ->addRow(fn (DashboardLayoutRow $row) => $row + ->addWidget(6, 'authors_bar') + ->addWidget(6, 'categories_pie') + ) + ->addFullWidthWidget('visits_line') + ->addRow(fn (DashboardLayoutRow $row) => $row + ->addWidget(5, 'list') + ->addWidget(7, 'highlighted_post') + ); }); } @@ -111,12 +130,17 @@ public function getDashboardCommands(): ?array ]; } - public function buildDashboardConfig(): void + protected function buildPageAlert(PageAlert $pageAlert): void { - $this->configurePageAlert( - 'Graphs below are delimited by period {{period}} (and yes, visits figures are randomly generated)', - static::$pageAlertLevelSecondary, - ); + $pageAlert + ->setLevelSecondary() + ->setMessage( + sprintf( + 'Graphs below are delimited by period %s - %s (and yes, visits figures are randomly generated)', + $this->queryParams->filterFor(PeriodRequiredFilter::class)['start']->isoFormat('L'), + $this->queryParams->filterFor(PeriodRequiredFilter::class)['end']->isoFormat('L'), + ) + ); } protected function buildWidgetsData(): void @@ -124,6 +148,8 @@ protected function buildWidgetsData(): void $this->setPieGraphDataSet(); $this->setBarsGraphDataSet(); $this->setLineGraphDataSet(); + $this->setOrderedListDataSet(); + $this->setCustomPanelDataSet(); $posts = DB::table('posts') ->select(DB::raw('state, count(*) as count')) @@ -141,14 +167,7 @@ protected function buildWidgetsData(): void figure: $posts->where('state', 'online')->first()->count ?? 0, unit: 'post(s)', evolution: '-10%', - ) - ->setPageAlertData([ - 'period' => sprintf( - '%s - %s', - $this->getQueryParams()->filterFor(PeriodRequiredFilter::class)['start']->isoFormat('L'), - $this->getQueryParams()->filterFor(PeriodRequiredFilter::class)['end']->isoFormat('L'), - ), - ]); + ); } protected function setLineGraphDataSet(): void @@ -173,12 +192,13 @@ protected function setLineGraphDataSet(): void ); } - protected function setBarsGraphDataSet() + protected function setBarsGraphDataSet(): void { $data = User::withCount([ - 'posts' => function (Builder $query) { - $query->whereBetween('published_at', [$this->getStartDate(), $this->getEndDate()]); - }, ]) + 'posts' => fn (Builder $query) => $query->whereBetween( + 'published_at', + [$this->getStartDate(), $this->getEndDate()] + )]) ->orderBy('posts_count', 'desc') ->limit(8) ->get() @@ -194,12 +214,14 @@ protected function setBarsGraphDataSet() protected function setPieGraphDataSet(): void { Category::withCount([ - 'posts' => function (Builder $query) { - $query->whereBetween('published_at', [$this->getStartDate(), $this->getEndDate()]); - }, ]) - ->limit(8) - ->orderBy('posts_count') + 'posts' => fn (Builder $query) => $query + ->whereBetween('published_at', [ + $this->getStartDate(), + $this->getEndDate(), + ]), + ]) ->limit(5) + ->orderBy('posts_count', 'desc') ->get() ->each(function (Category $category) { $this->addGraphDataSet( @@ -211,6 +233,47 @@ protected function setPieGraphDataSet(): void }); } + protected function setOrderedListDataSet(): void + { + $this->setOrderedListData('list', + Category::withCount([ + 'posts' => function (Builder $query) { + $query->whereBetween('published_at', [$this->getStartDate(), $this->getEndDate()]); + }]) + ->orderBy('posts_count', 'desc') + ->limit(3) + ->get() + ->map(fn (Category $category) => [ + 'label' => $category->name, + 'count' => $category->posts_count, + 'url' => LinkToEntityList::make('posts') + ->addFilter(CategoryFilter::class, $category->id) + ->addFilter(PeriodFilter::class, sprintf('%s..%s', + $this->getStartDate()->format('Ymd'), + $this->getEndDate()->format('Ymd'), + )), + ]) + ->toArray() + ); + } + + protected function setCustomPanelDataSet(): void + { + $author = User::query() + ->withWhereHas('posts', fn ($query) => $query + ->whereBetween('published_at', [$this->getStartDate(), $this->getEndDate()]) + ) + ->inRandomOrder() + ->first(); + + if ($author) { + $this->setPanelData('highlighted_post', [ + 'author' => $author, + 'post' => $author->posts->first(), + ]); + } + } + private static function nextColor(): string { if (static::$colorsIndex >= count(static::$colors)) { @@ -222,13 +285,13 @@ private static function nextColor(): string protected function getStartDate(): Carbon { - return $this->queryParams->filterFor(PeriodRequiredFilter::class)['start']; + return $this->queryParams->filterFor(PeriodRequiredFilter::class)->getStart(); } protected function getEndDate(): Carbon { return min( - $this->queryParams->filterFor(PeriodRequiredFilter::class)['end'], + $this->queryParams->filterFor(PeriodRequiredFilter::class)->getEnd(), today()->subDay(), ); } diff --git a/demo/app/Sharp/Demo2faNotificationHandler.php b/demo/app/Sharp/Demo2faNotificationHandler.php index ce567e1e8..12b5c61d5 100644 --- a/demo/app/Sharp/Demo2faNotificationHandler.php +++ b/demo/app/Sharp/Demo2faNotificationHandler.php @@ -6,6 +6,11 @@ class Demo2faNotificationHandler extends Sharp2faNotificationHandler { + public function isEnabledFor($user): bool + { + return $user->email === 'editor@example.org'; + } + protected function generateRandomCode(): int { return 123456; @@ -14,11 +19,9 @@ protected function generateRandomCode(): int public function formHelpText(): string { return <<<'HTML' -
-
Two-factor authentication comes with two flavours: notification (mail, sms, etc) or TOTP app (like Google Authenticator).
-
This is a demo, expected code is 123456.
-
- Please enter the 6-digit code +

This user has configured a two-factor authentication (see documentation).

+

Code was set to 123456 for this demo.

+

Please enter the 6-digit code

HTML; } } diff --git a/demo/app/Sharp/DummyGlobalFilter.php b/demo/app/Sharp/DummyGlobalFilter.php index 11406edc1..43e5a7bfc 100644 --- a/demo/app/Sharp/DummyGlobalFilter.php +++ b/demo/app/Sharp/DummyGlobalFilter.php @@ -18,4 +18,9 @@ public function defaultValue(): mixed { return '1'; } + + public function authorize(): bool + { + return auth()->id() === 1; + } } diff --git a/demo/app/Sharp/Entities/CategoryEntity.php b/demo/app/Sharp/Entities/CategoryEntity.php index 6ed030ad6..2d79fd113 100644 --- a/demo/app/Sharp/Entities/CategoryEntity.php +++ b/demo/app/Sharp/Entities/CategoryEntity.php @@ -9,6 +9,7 @@ class CategoryEntity extends SharpEntity { + protected string $label = 'Category'; protected ?string $list = CategoryList::class; protected ?string $show = CategoryShow::class; protected ?string $form = CategoryForm::class; diff --git a/demo/app/Sharp/Entities/PostBlockEntity.php b/demo/app/Sharp/Entities/PostBlockEntity.php index 19388ca1c..2d5c3891a 100644 --- a/demo/app/Sharp/Entities/PostBlockEntity.php +++ b/demo/app/Sharp/Entities/PostBlockEntity.php @@ -18,9 +18,9 @@ class PostBlockEntity extends SharpEntity public function getMultiforms(): array { return [ - 'text' => [PostBlockTextForm::class, 'Text'], - 'visuals' => [PostBlockVisualsForm::class, 'Visuals'], - 'video' => [PostBlockVideoForm::class, 'Video'], + 'text' => [PostBlockTextForm::class, 'Text block'], + 'visuals' => [PostBlockVisualsForm::class, 'Visuals block'], + 'video' => [PostBlockVideoForm::class, 'Video block'], ]; } } diff --git a/demo/app/Sharp/Entities/PostEntity.php b/demo/app/Sharp/Entities/PostEntity.php index 0ef73f480..5995bfc97 100644 --- a/demo/app/Sharp/Entities/PostEntity.php +++ b/demo/app/Sharp/Entities/PostEntity.php @@ -14,4 +14,5 @@ class PostEntity extends SharpEntity protected ?string $show = PostShow::class; protected ?string $form = PostForm::class; protected ?string $policy = PostPolicy::class; + protected string $label = 'Post'; } diff --git a/demo/app/Sharp/Posts/Blocks/AbstractPostBlockForm.php b/demo/app/Sharp/Posts/Blocks/AbstractPostBlockForm.php index d678cc917..0d5c19924 100644 --- a/demo/app/Sharp/Posts/Blocks/AbstractPostBlockForm.php +++ b/demo/app/Sharp/Posts/Blocks/AbstractPostBlockForm.php @@ -24,7 +24,12 @@ public function buildFormFields(FieldsContainer $formFields): void $formFields ->addField( SharpFormHtmlField::make('type') - ->setInlineTemplate('Post block type: {{name}}
{{help}}
'), + ->setTemplate(<<<'blade' + Post block type: {{ $name }} + @if($help) +
{{ $help }}
+ @endif + blade), ); if ($field = $this->getContentField()) { @@ -38,10 +43,9 @@ public function buildFormLayout(FormLayout $formLayout): void { $formLayout ->addColumn(6, function (FormLayoutColumn $column) { - $column->withSingleField('type'); - if ($this->getContentField()) { - $column->withSingleField('content'); - } + $column->withField('type') + ->when($this->getContentField(), fn ($column) => $column->withField('content')); + $this->addAdditionalFieldsToLayout($column); }); } @@ -83,7 +87,7 @@ public function update($id, array $data) ? PostBlock::findOrFail($id) : new PostBlock([ 'type' => static::$postBlockType, - 'post_id' => currentSharpRequest()->getPreviousShowFromBreadcrumbItems('posts')->instanceId(), + 'post_id' => sharp()->context()->breadcrumb()->previousShowSegment('posts')->instanceId(), ]); $this->save($postBlock, $data); diff --git a/demo/app/Sharp/Posts/Blocks/PostBlockList.php b/demo/app/Sharp/Posts/Blocks/PostBlockList.php index bb646be38..041dbc6a7 100644 --- a/demo/app/Sharp/Posts/Blocks/PostBlockList.php +++ b/demo/app/Sharp/Posts/Blocks/PostBlockList.php @@ -7,6 +7,7 @@ use Code16\Sharp\EntityList\Eloquent\SimpleEloquentReorderHandler; use Code16\Sharp\EntityList\Fields\EntityListField; use Code16\Sharp\EntityList\Fields\EntityListFieldsContainer; +use Code16\Sharp\EntityList\Filters\HiddenFilter; use Code16\Sharp\EntityList\SharpEntityList; use Illuminate\Contracts\Support\Arrayable; use Illuminate\Support\Str; @@ -18,7 +19,7 @@ protected function buildList(EntityListFieldsContainer $fields): void $fields ->addField( EntityListField::make('type_label') - ->setWidth(2) + ->setWidth(.15) ->setLabel('Type') ) ->addField( @@ -29,7 +30,15 @@ protected function buildList(EntityListFieldsContainer $fields): void public function buildListConfig(): void { $this->configureMultiformAttribute('type') - ->configureReorderable(new SimpleEloquentReorderHandler(PostBlock::class)); + ->configureReorderable(new SimpleEloquentReorderHandler(PostBlock::class)) + ->configureQuickCreationForm(); + } + + protected function getFilters(): ?array + { + return [ + HiddenFilter::make('post'), + ]; } public function getListData(): array|Arrayable diff --git a/demo/app/Sharp/Posts/Blocks/PostBlockPolicy.php b/demo/app/Sharp/Posts/Blocks/PostBlockPolicy.php index 93fd64147..eea195c4d 100644 --- a/demo/app/Sharp/Posts/Blocks/PostBlockPolicy.php +++ b/demo/app/Sharp/Posts/Blocks/PostBlockPolicy.php @@ -17,6 +17,6 @@ public function view($user, $instanceId): bool public function create($user): bool { return $user->isAdmin() - || Post::find(currentSharpRequest()->getPreviousShowFromBreadcrumbItems('posts')->instanceId())?->author_id === $user->id; + || Post::find(sharp()->context()->breadcrumb()->previousShowSegment('posts')->instanceId())?->author_id === $user->id; } } diff --git a/demo/app/Sharp/Posts/Blocks/PostBlockVisualsForm.php b/demo/app/Sharp/Posts/Blocks/PostBlockVisualsForm.php index 6e2638cb0..2667c09b2 100644 --- a/demo/app/Sharp/Posts/Blocks/PostBlockVisualsForm.php +++ b/demo/app/Sharp/Posts/Blocks/PostBlockVisualsForm.php @@ -32,13 +32,12 @@ protected function buildAdditionalFields(FieldsContainer $formFields): void ->allowBulkUploadForField('file') ->addItemField( SharpFormUploadField::make('file') - ->setFileFilterImages() ->setMaxFileSize(1) ->setStorageDisk('local') ->setStorageBasePath(function () { return sprintf( 'data/posts/%s/blocks/{id}', - currentSharpRequest()->getPreviousShowFromBreadcrumbItems('posts')->instanceId(), + sharp()->context()->breadcrumb()->previousShowSegment('posts')->instanceId(), ); }), ) @@ -52,9 +51,9 @@ protected function buildAdditionalFields(FieldsContainer $formFields): void protected function addAdditionalFieldsToLayout(FormLayoutColumn $column): void { $column - ->withSingleField('files', function (FormLayoutColumn $item) { - $item->withSingleField('file') - ->withSingleField('legend'); + ->withListField('files', function (FormLayoutColumn $item) { + $item->withField('file') + ->withField('legend'); }); } diff --git a/demo/app/Sharp/Posts/Commands/ComposeEmailWithPostsWizardCommand.php b/demo/app/Sharp/Posts/Commands/ComposeEmailWithPostsWizardCommand.php index a4383d824..2df71cc53 100644 --- a/demo/app/Sharp/Posts/Commands/ComposeEmailWithPostsWizardCommand.php +++ b/demo/app/Sharp/Posts/Commands/ComposeEmailWithPostsWizardCommand.php @@ -121,7 +121,7 @@ public function buildFormFieldsForStepChooseRecipients(FieldsContainer $formFiel $formFields ->addField( SharpFormHtmlField::make('message') - ->setInlineTemplate('
') + ->setTemplate('
{!! $text !!}
') ->setLabel('Message'), ) ->addField( diff --git a/demo/app/Sharp/Posts/Commands/EvaluateDraftPostWizardCommand.php b/demo/app/Sharp/Posts/Commands/EvaluateDraftPostWizardCommand.php index fc7f17240..7afc9a36a 100644 --- a/demo/app/Sharp/Posts/Commands/EvaluateDraftPostWizardCommand.php +++ b/demo/app/Sharp/Posts/Commands/EvaluateDraftPostWizardCommand.php @@ -74,6 +74,10 @@ public function executeStepRefusalReason(mixed $instanceId, array $data = []): a public function authorizeFor(mixed $instanceId): bool { - return auth()->user()->isAdmin() && ! Post::find($instanceId)->isOnline(); + return auth()->user()->isAdmin() + && sharp() + ->context() + ->findListInstance($instanceId, fn ($postId) => Post::find($postId)) + ->isDraft(); } } diff --git a/demo/app/Sharp/Posts/Commands/PreviewPostCommand.php b/demo/app/Sharp/Posts/Commands/PreviewPostCommand.php index 074778b94..c9de0ee79 100644 --- a/demo/app/Sharp/Posts/Commands/PreviewPostCommand.php +++ b/demo/app/Sharp/Posts/Commands/PreviewPostCommand.php @@ -12,9 +12,11 @@ public function label(): ?string return 'Preview post'; } + public function buildCommandConfig(): void {} + public function execute(mixed $instanceId, array $data = []): array { - return $this->view('sharp.post-preview', [ + return $this->view('pages.post', [ 'post' => Post::findOrFail($instanceId), ]); } @@ -25,10 +27,10 @@ public function authorizeFor(mixed $instanceId): bool return true; } - if ($post = Post::find($instanceId)) { - return $post->isOnline() || $post->author_id === auth()->id(); - } + $post = sharp() + ->context() + ->findListInstance($instanceId, fn ($postId) => Post::find($postId)); - return false; + return $post && ($post->isOnline() || $post->author_id === auth()->id()); } } diff --git a/demo/app/Sharp/Posts/PostForm.php b/demo/app/Sharp/Posts/PostForm.php index 72011fa76..f03562db7 100644 --- a/demo/app/Sharp/Posts/PostForm.php +++ b/demo/app/Sharp/Posts/PostForm.php @@ -4,13 +4,15 @@ use App\Models\Category; use App\Models\Post; +use App\Models\User; use App\Sharp\Utils\Embeds\AuthorEmbed; use App\Sharp\Utils\Embeds\CodeEmbed; use App\Sharp\Utils\Embeds\RelatedPostEmbed; use App\Sharp\Utils\Embeds\TableOfContentsEmbed; use Code16\Sharp\Form\Eloquent\Uploads\Transformers\SharpUploadModelFormAttributeTransformer; use Code16\Sharp\Form\Eloquent\WithSharpFormEloquentUpdater; -use Code16\Sharp\Form\Fields\SharpFormAutocompleteField; +use Code16\Sharp\Form\Fields\Editor\Uploads\SharpFormEditorUpload; +use Code16\Sharp\Form\Fields\SharpFormAutocompleteRemoteField; use Code16\Sharp\Form\Fields\SharpFormCheckField; use Code16\Sharp\Form\Fields\SharpFormDateField; use Code16\Sharp\Form\Fields\SharpFormEditorField; @@ -30,8 +32,6 @@ class PostForm extends SharpForm { use WithSharpFormEloquentUpdater; - protected ?string $formValidatorClass = PostValidator::class; - public function buildFormFields(FieldsContainer $formFields): void { $formFields @@ -52,20 +52,26 @@ public function buildFormFields(FieldsContainer $formFields): void SharpFormEditorField::A, SharpFormEditorField::QUOTE, SharpFormEditorField::SEPARATOR, - SharpFormEditorField::UPLOAD, SharpFormEditorField::IFRAME, + SharpFormEditorField::UPLOAD, + AuthorEmbed::class, + CodeEmbed::class, ]) ->allowEmbeds([ RelatedPostEmbed::class, AuthorEmbed::class, - CodeEmbed::class, TableOfContentsEmbed::class, + CodeEmbed::class, ]) - ->setMaxFileSize(1) - ->setMaxLength(1000) + ->allowUploads( + SharpFormEditorUpload::make() + ->setStorageDisk('local') + ->setStorageBasePath('data/posts/{id}/embed') + ->setMaxFileSize(1) + ->setHasLegend() + ) + ->setMaxLength(2000) ->setHeight(300, 0) - ->setStorageDisk('local') - ->setStorageBasePath('data/posts/{id}/embed'), ) ->addField( SharpFormTagsField::make('categories', Category::pluck('name', 'id')->toArray()) @@ -76,9 +82,9 @@ public function buildFormFields(FieldsContainer $formFields): void ->addField( SharpFormUploadField::make('cover') ->setMaxFileSize(1) + ->setImageOnly() ->setLabel('Cover') - ->setFileFilterImages() - ->setCropRatio('16:9') + ->setImageCropRatio('16:9') ->setStorageDisk('local') ->setStorageBasePath('data/posts/{id}'), ) @@ -96,8 +102,7 @@ public function buildFormFields(FieldsContainer $formFields): void ->addField( SharpFormDateField::make('published_at') ->setLabel('Publication date') - ->setHasTime() - ->setDisplayFormat('MM-DD-YYYY HH:mm'), + ->setHasTime(), ) ->addField( SharpFormListField::make('attachments') @@ -121,25 +126,33 @@ public function buildFormFields(FieldsContainer $formFields): void ) ->addItemField( SharpFormUploadField::make('document') - ->setFileFilter(['pdf', 'zip']) ->setMaxFileSize(1) + ->setAllowedExtensions(['pdf', 'zip']) ->setStorageDisk('local') ->setStorageBasePath('data/posts/{id}') ->addConditionalDisplay('!is_link'), ), - ); - - if (currentSharpRequest()->isUpdate()) { - $formFields->addField( - SharpFormAutocompleteField::make('author_id', 'remote') + ) + ->when(sharp()->context()->isUpdate(), fn ($formFields) => $formFields->addField( + SharpFormAutocompleteRemoteField::make('author_id') ->setReadOnly(! auth()->user()->isAdmin()) ->setLabel('Author') - ->setRemoteEndpoint('/api/admin/users') - ->setListItemInlineTemplate('
{{name}}
{{email}}
') - ->setResultItemInlineTemplate('
{{name}}
{{email}}
') + ->allowEmptySearch() + ->setRemoteCallback(function ($search) { + $users = User::orderBy('name')->limit(10); + + foreach (explode(' ', trim($search)) as $word) { + $users->where(fn ($query) => $query + ->where('name', 'like', "%$word%") + ->orWhere('email', 'like', "%$word%") + ); + } + + return $users->get(); + }) + ->setListItemTemplate('
{{ $name }}
{{ $email }}
') ->setHelpMessage('This field is only editable by admins.'), - ); - } + )); } public function buildFormLayout(FormLayout $formLayout): void @@ -148,30 +161,31 @@ public function buildFormLayout(FormLayout $formLayout): void ->addTab('Content', function (FormLayoutTab $tab) { $tab ->addColumn(6, function (FormLayoutColumn $column) { - $column->withSingleField('title'); - if (currentSharpRequest()->isUpdate()) { - $column->withSingleField('author_id'); - } $column - ->withFields('published_at') - ->withSingleField('categories') - ->withSingleField('cover') - ->withSingleField('attachments', function (FormLayoutColumn $item) { - $item->withFields('title|8', 'is_link|4') - ->withSingleField('link_url') - ->withSingleField('document'); + ->withField('title') + ->when( + sharp()->context()->isUpdate(), + fn ($column) => $column->withField('author_id') + ) + ->withFields('published_at', 'categories') + ->withListField('attachments', function (FormLayoutColumn $item) { + $item->withFields(title: 8, is_link: 4) + ->withField('link_url') + ->withField('document'); }); }) ->addColumn(6, function (FormLayoutColumn $column) { - $column->withSingleField('content'); + $column + ->withField('cover') + ->withField('content'); }); }) ->addTab('Metadata', function (FormLayoutTab $tab) { $tab ->addColumn(6, function (FormLayoutColumn $column) { $column->withFieldset('Meta fields', function (FormLayoutFieldset $fieldset) { - $fieldset->withSingleField('meta_title') - ->withSingleField('meta_description'); + $fieldset->withField('meta_title') + ->withField('meta_description'); }); }); }); @@ -185,14 +199,26 @@ public function buildFormConfig(): void public function find($id): array { return $this - ->setCustomTransformer('author_id', function ($value, Post $instance) { - return $instance->author; - }) + ->setCustomTransformer('author_id', fn ($value, Post $instance) => $instance->author) ->setCustomTransformer('cover', new SharpUploadModelFormAttributeTransformer()) ->setCustomTransformer('attachments[document]', new SharpUploadModelFormAttributeTransformer()) ->transform(Post::with('cover', 'attachments', 'categories')->findOrFail($id)); } + public function rules(): array + { + return [ + 'title.fr' => ['required', 'string', 'max:150'], + 'title.en' => ['required', 'string', 'max:150'], + 'content.fr' => ['nullable', 'string', 'max:2000'], + 'content.en' => ['nullable', 'string', 'max:2000'], + 'published_at' => ['required', 'date'], + 'attachments.*.title' => ['required', 'string', 'max:150'], + 'attachments.*.link_url' => ['required_if:attachments.*.is_link,true,1', 'nullable', 'url', 'max:150'], + 'attachments.*.document' => ['required_if:attachments.*.is_link,false,0'], + ]; + } + public function update($id, array $data) { $post = $id @@ -205,18 +231,13 @@ public function update($id, array $data) ->ignore(auth()->user()->isAdmin() ? [] : ['author_id']) ->save($post, $data); - if (currentSharpRequest()->isCreation() && ! $id) { + if (sharp()->context()->isCreation()) { $this->notify('Your post was created, but not published yet.'); } return $post->id; } - public function delete($id): void - { - Post::findOrFail($id)->delete(); - } - public function getDataLocalizations(): array { return ['en', 'fr']; diff --git a/demo/app/Sharp/Posts/PostList.php b/demo/app/Sharp/Posts/PostList.php index 716ddface..560a38e5e 100644 --- a/demo/app/Sharp/Posts/PostList.php +++ b/demo/app/Sharp/Posts/PostList.php @@ -14,8 +14,12 @@ use App\Sharp\Utils\Filters\StateFilter; use Code16\Sharp\EntityList\Fields\EntityListField; use Code16\Sharp\EntityList\Fields\EntityListFieldsContainer; +use Code16\Sharp\EntityList\Fields\EntityListStateField; use Code16\Sharp\EntityList\SharpEntityList; +use Code16\Sharp\Utils\Filters\DateRangeFilterValue; use Code16\Sharp\Utils\Links\LinkToEntityList; +use Code16\Sharp\Utils\PageAlerts\PageAlert; +use Code16\Sharp\Utils\Transformers\Attributes\Eloquent\SharpTagsTransformer; use Code16\Sharp\Utils\Transformers\Attributes\Eloquent\SharpUploadModelThumbnailUrlTransformer; use Illuminate\Contracts\Support\Arrayable; use Illuminate\Database\Eloquent\Builder; @@ -27,27 +31,31 @@ protected function buildList(EntityListFieldsContainer $fields): void $fields ->addField( EntityListField::make('cover') - ->setWidth(1) + ->setWidth(.1) ->hideOnSmallScreens(), ) ->addField( EntityListField::make('title') ->setLabel('Title') - ->setWidth(4) - ->setWidthOnSmallScreens(6), + ) + ->addField( + EntityListStateField::make() ) ->addField( EntityListField::make('author:name') ->setLabel('Author') - ->setWidth(3) ->hideOnSmallScreens() ->setSortable(), ) + ->addField( + EntityListField::make('categories') + ->setLabel('Categories') + ->hideOnSmallScreens() + ) ->addField( EntityListField::make('published_at') ->setLabel('Published at') - ->setWidth(4) - ->setWidthOnSmallScreens(6) + ->setWidth(.2) ->setSortable(), ); } @@ -55,17 +63,19 @@ protected function buildList(EntityListFieldsContainer $fields): void public function buildListConfig(): void { $this - ->configurePaginated() + ->configureCreateButtonLabel('New post...') ->configureEntityState('state', PostStateHandler::class) ->configureDefaultSort('published_at', 'desc') ->configureDelete(confirmationText: 'Are you sure you want to delete this post (this will permanently delete its data)?') ->configureSearchable(); + } + protected function buildPageAlert(PageAlert $pageAlert): void + { if (! auth()->user()->isAdmin()) { - $this->configurePageAlert( - 'As an editor, you can only edit your posts; you can see other posts except those which are still in draft.', - static::$pageAlertLevelSecondary, - ); + $pageAlert + ->setMessage('As an editor, you can only edit your posts; you can see other posts except those which are still in draft.') + ->setLevelSecondary(); } } @@ -98,44 +108,42 @@ protected function getEntityCommands(): ?array public function getListData(): array|Arrayable { $posts = Post::select('posts.*') - ->with('author', 'categories') + ->with('author', 'categories', 'cover') // Handle specific IDs (in case of refresh, called by a state handler or a command) ->when( $this->queryParams->specificIds(), - function (Builder $builder, array $ids) { - $builder->whereIn('id', $ids); - }, + fn (Builder $builder, array $ids) => $builder->whereIn('id', $ids), ) // Handle filters ->when( $this->queryParams->filterFor(StateFilter::class), - function (Builder $builder, string $state) { - $builder->where('state', $state); - }, + fn (Builder $builder, string $state) => $builder->where('state', $state), ) ->when( $this->queryParams->filterFor(PeriodFilter::class), - function (Builder $builder, array $dates) { - $builder->whereBetween('published_at', [$dates['start'], $dates['end']]); - }, + fn (Builder $builder, DateRangeFilterValue $dates) => $builder->whereBetween( + 'published_at', + [$dates->getStart(), $dates->getEnd()] + ), ) ->when( $this->queryParams->filterFor(AuthorFilter::class), - function (Builder $builder, int $authorId) { - $builder->where('author_id', $authorId); - }, + fn (Builder $builder, int $authorId) => $builder->where('author_id', $authorId), ) ->when( $this->queryParams->filterFor(CategoryFilter::class), function (Builder $builder, $categories) { - collect($categories) - ->each(function ($categoryId) use ($builder) { - $builder->whereHas('categories', function (Builder $builder) use ($categoryId) { - return $builder->where('categories.id', $categoryId); + $builder->where(function (Builder $builder) use ($categories) { + collect($categories) + ->each(function ($categoryId) use ($builder) { + $builder->orWhereHas( + 'categories', + fn (Builder $builder) => $builder->where('categories.id', $categoryId) + ); }); - }); + }); }, ) @@ -156,37 +164,31 @@ function (Builder $builder) { // Handle sorting ->when( $this->queryParams->sortedBy() === 'author:name', - function (Builder $builder) { - $builder - ->leftJoin('users', 'posts.author_id', '=', 'users.id') - ->orderBy('users.name', $this->queryParams->sortedDir()); - }, - function (Builder $builder) { - $builder->orderBy('published_at', $this->queryParams->sortedDir() ?: 'desc'); - }, + fn (Builder $builder) => $builder + ->leftJoin('users', 'posts.author_id', '=', 'users.id') + ->orderBy('users.name', $this->queryParams->sortedDir()), + fn (Builder $builder) => $builder->orderBy('published_at', $this->queryParams->sortedDir() ?: 'desc') ); return $this ->setCustomTransformer('title', function ($value, Post $instance) { return sprintf( - '
fr %s
en %s
%s
', - $instance->getTranslation('title', 'fr'), + '
%s
[fr] %s
', $instance->getTranslation('title', 'en'), - $instance->categories - ->pluck('name') - ->map(fn ($name) => ''.$name.'') - ->implode(' '), + $instance->getTranslation('title', 'fr') ); }) ->setCustomTransformer('author:name', function ($value, $instance) { - return $instance->author_id + return $value ? LinkToEntityList::make('posts') - ->addFilter(AuthorFilter::class, $instance->author_id) - ->renderAsText($instance->author->name) + ->addFilter(AuthorFilter::class, $instance->id) + ->setTooltip('See '.$value.' posts') + ->renderAsText($value) : null; }) ->setCustomTransformer('cover', (new SharpUploadModelThumbnailUrlTransformer(100))->renderAsImageTag()) ->setCustomTransformer('published_at', DateTimeCustomTransformer::class) + ->setCustomTransformer('categories', (new SharpTagsTransformer('name'))->setFilterLink('posts', CategoryFilter::class)) ->transform($posts->paginate(20)); } } diff --git a/demo/app/Sharp/Posts/PostPolicy.php b/demo/app/Sharp/Posts/PostPolicy.php index 2543350e4..7d0ea90a6 100644 --- a/demo/app/Sharp/Posts/PostPolicy.php +++ b/demo/app/Sharp/Posts/PostPolicy.php @@ -13,7 +13,7 @@ public function view($user, $instanceId): bool return true; } - if ($post = Post::find($instanceId)) { + if ($post = $this->findPost($instanceId)) { return $post->isOnline() || $post->author_id === $user->id; } @@ -23,11 +23,18 @@ public function view($user, $instanceId): bool public function update($user, $instanceId): bool { return $user->isAdmin() - || Post::find($instanceId)->author_id === $user->id; + || $this->findPost($instanceId)?->author_id === $user->id; } public function delete($user, $instanceId): bool { return $this->update($user, $instanceId); } + + private function findPost($postId): ?Post + { + return sharp() + ->context() + ->findListInstance($postId, fn ($postId) => Post::find($postId)); + } } diff --git a/demo/app/Sharp/Posts/PostShow.php b/demo/app/Sharp/Posts/PostShow.php index a681ae6a4..0fb6c65cd 100644 --- a/demo/app/Sharp/Posts/PostShow.php +++ b/demo/app/Sharp/Posts/PostShow.php @@ -22,6 +22,7 @@ use Code16\Sharp\Utils\Fields\FieldsContainer; use Code16\Sharp\Utils\Links\LinkToEntityList; use Code16\Sharp\Utils\Links\LinkToShowPage; +use Code16\Sharp\Utils\PageAlerts\PageAlert; use Code16\Sharp\Utils\Transformers\Attributes\Eloquent\SharpUploadModelThumbnailUrlTransformer; use Illuminate\Support\Str; @@ -38,7 +39,7 @@ protected function buildShowFields(FieldsContainer $showFields): void CodeEmbed::class, TableOfContentsEmbed::class, ]) - ->collapseToWordCount(30) + ->collapseToWordCount(40) ->setLocalized() ) ->addField(SharpShowTextField::make('author')->setLabel('Author')) @@ -47,6 +48,10 @@ protected function buildShowFields(FieldsContainer $showFields): void ->addField( SharpShowListField::make('attachments') ->setLabel('Attachments') + ->addItemField( + SharpShowTextField::make('title') + ->setLabel('Title') + ) ->addItemField( SharpShowTextField::make('link_url') ->setLabel('External link') @@ -54,8 +59,6 @@ protected function buildShowFields(FieldsContainer $showFields): void ->addItemField( SharpShowFileField::make('document') ->setLabel('File') - ->setStorageDisk('local') - ->setStorageBasePath('data/posts/{id}') ) ) ->addField( @@ -68,26 +71,24 @@ protected function buildShowFields(FieldsContainer $showFields): void protected function buildShowLayout(ShowLayout $showLayout): void { $showLayout - ->addSection('', function (ShowLayoutSection $section) { + ->addSection(function (ShowLayoutSection $section) { $section ->addColumn(7, function (ShowLayoutColumn $column) { $column - ->withSingleField('categories') - ->withSingleField('author') - ->withSingleField('attachments', function (ShowLayoutColumn $item) { - $item->withSingleField('link_url') - ->withSingleField('document'); + ->withFields(categories: 5, author: 7) + ->withListField('attachments', function (ShowLayoutColumn $item) { + $item->withFields(title: 6, link_url: 6, document: 6); }); }) ->addColumn(5, function (ShowLayoutColumn $column) { - $column->withSingleField('cover'); + $column->withField('cover'); }); }) ->addSection('Content', function (ShowLayoutSection $section) { $section ->setKey('content-section') ->addColumn(8, function (ShowLayoutColumn $column) { - $column->withSingleField('content'); + $column->withField('content'); }); }) ->addEntityListSection('blocks'); @@ -99,12 +100,21 @@ public function buildShowConfig(): void ->configureEntityState('state', PostStateHandler::class) ->configureBreadcrumbCustomLabelAttribute('breadcrumb') ->configurePageTitleAttribute('title', localized: true) - ->configureDeleteConfirmationText('Are you sure you want to delete this post (this will permanently delete its data)?') - ->configurePageAlert( - ' This post is planed for publication, on {{published_at}}', - static::$pageAlertLevelInfo, - 'publication', - ); + ->configureDeleteConfirmationText('Are you sure you want to delete this post (this will permanently delete its data)?'); + } + + protected function buildPageAlert(PageAlert $pageAlert): void + { + $pageAlert + ->setLevelInfo() + ->setMessage(function (array $data) { + return $data['publication']['is_planned'] + ? sprintf( + ' This post is planned for publication, on %s', + $data['publication']['published_at'], + ) + : null; + }); } public function getInstanceCommands(): ?array @@ -126,7 +136,7 @@ public function find(mixed $id): array }) ->setCustomTransformer('publication', function ($value, Post $instance) { return [ - 'is_planed' => $instance->isOnline() && $instance->published_at->isFuture(), + 'is_planned' => $instance->isOnline() && $instance->published_at->isFuture(), 'published_at' => $instance->published_at->isoFormat('LLL'), ]; }) @@ -139,11 +149,15 @@ public function find(mixed $id): array }) ->setCustomTransformer('categories', function ($value, Post $instance) { return $instance->categories - ->map(fn ($category) => LinkToShowPage::make('categories', $category->id)->renderAsText($category->name)) + ->map(fn ($category) => LinkToShowPage::make('categories', $category->id) + ->renderAsText($category->name)) ->implode(', '); }) ->setCustomTransformer('cover', new SharpUploadModelThumbnailUrlTransformer(500)) - ->setCustomTransformer('attachments[document]', new SharpUploadModelFormAttributeTransformer(false)) + ->setCustomTransformer( + 'attachments[document]', + new SharpUploadModelFormAttributeTransformer(withThumbnails: true) + ) ->setCustomTransformer('attachments[link_url]', function ($value, $instance) { return $instance->is_link ? sprintf('%s', $value, str($value)->limit(30)) diff --git a/demo/app/Sharp/Posts/PostValidator.php b/demo/app/Sharp/Posts/PostValidator.php deleted file mode 100644 index ed0bc349a..000000000 --- a/demo/app/Sharp/Posts/PostValidator.php +++ /dev/null @@ -1,22 +0,0 @@ - ['required', 'string', 'max:150'], - 'title.en' => ['required', 'string', 'max:150'], - 'content.text.fr' => ['required', 'string', 'max:2000'], - 'content.text.en' => ['required', 'string', 'max:2000'], - 'published_at' => ['required', 'date'], - 'attachments.*.title' => ['required', 'string', 'max:50'], - 'attachments.*.link_url' => ['required_if:attachments.*.is_link,true,1', 'nullable', 'url', 'max:150'], - 'attachments.*.document' => ['required_if:attachments.*.is_link,false,0'], - ]; - } -} diff --git a/demo/app/Sharp/Profile/MyProfileValidator.php b/demo/app/Sharp/Profile/MyProfileValidator.php deleted file mode 100644 index 75bafd5ff..000000000 --- a/demo/app/Sharp/Profile/MyProfileValidator.php +++ /dev/null @@ -1,15 +0,0 @@ - ['required', 'string', 'max:300'], - ]; - } -} diff --git a/demo/app/Sharp/Profile/ProfileSingleForm.php b/demo/app/Sharp/Profile/ProfileSingleForm.php index 692a3af7f..9cbb41b33 100644 --- a/demo/app/Sharp/Profile/ProfileSingleForm.php +++ b/demo/app/Sharp/Profile/ProfileSingleForm.php @@ -15,19 +15,17 @@ class ProfileSingleForm extends SharpSingleForm { use WithSharpFormEloquentUpdater; - protected ?string $formValidatorClass = MyProfileValidator::class; - public function buildFormFields(FieldsContainer $formFields): void { $formFields ->addField( SharpFormUploadField::make('avatar') ->setLabel('Avatar') - ->setFileFilterImages() ->setMaxFileSize(1) - ->shouldOptimizeImage() + ->setImageOnly() + ->setImageOptimize() ->setStorageDisk('local') - ->setCropRatio('1:1') + ->setImageCropRatio('1:1') ->setStorageBasePath('data/users/{id}'), ) ->addField( @@ -49,12 +47,12 @@ public function buildFormLayout(FormLayout $formLayout): void $formLayout ->addColumn(6, function (FormLayoutColumn $column) { $column - ->withFields('name') - ->withFields('email'); + ->withField('name') + ->withField('email'); }) ->addColumn(6, function (FormLayoutColumn $column) { $column - ->withSingleField('avatar'); + ->withField('avatar'); }); } @@ -67,6 +65,11 @@ public function findSingle(): array protected function updateSingle(array $data) { + $this->validate( + $data, + ['name' => ['required', 'string', 'max:300']] + ); + $user = auth()->user(); $this->save($user, $data); diff --git a/demo/app/Sharp/Profile/ProfileSingleShow.php b/demo/app/Sharp/Profile/ProfileSingleShow.php index 1a2943c68..34e86520b 100644 --- a/demo/app/Sharp/Profile/ProfileSingleShow.php +++ b/demo/app/Sharp/Profile/ProfileSingleShow.php @@ -33,14 +33,8 @@ protected function buildShowLayout(ShowLayout $showLayout): void $showLayout ->addSection('', function (ShowLayoutSection $section) { $section - ->addColumn(6, function (ShowLayoutColumn $column) { - $column - ->withSingleField('email'); - }) - ->addColumn(6, function (ShowLayoutColumn $column) { - $column - ->withSingleField('avatar'); - }); + ->addColumn(6, fn (ShowLayoutColumn $column) => $column->withField('email')) + ->addColumn(6, fn (ShowLayoutColumn $column) => $column->withField('avatar')); }); } diff --git a/demo/app/Sharp/SharpMenu.php b/demo/app/Sharp/SharpMenu.php index 6a63621ed..f79edb263 100644 --- a/demo/app/Sharp/SharpMenu.php +++ b/demo/app/Sharp/SharpMenu.php @@ -11,20 +11,19 @@ class SharpMenu extends BaseSharpMenu public function build(): self { return $this -// ->setVisible(false) ->setUserMenu(function (SharpMenuUserMenu $userMenu) { $userMenu - ->addEntityLink('profile', 'Profile', 'fa fa-user') - ->addExternalLink('https://sharp.code16.fr/docs', 'Documentation', 'fa fa-book'); + ->addEntityLink('profile', 'Profile') + ->addExternalLink('https://sharp.code16.fr/docs', 'Documentation'); }) ->addSection('Blog', function (SharpMenuItemSection $section) { $section ->setCollapsible(false) - ->addEntityLink('posts', 'Posts', 'fas fa-file') - ->addEntityLink('categories', 'Categories', 'fas fa-tags') - ->addEntityLink('authors', 'Authors', 'fas fa-users'); + ->addEntityLink('posts', 'Posts', icon: 'far-file') + ->addEntityLink('categories', 'Categories', icon: 'fas-sitemap') + ->addEntityLink('authors', 'Authors', icon: 'far-user'); }) - ->addEntityLink('dashboard', 'Dashboard', 'fas fa-chart-line') - ->addEntityLink('test', 'Fields test', 'fas fa-cog'); + ->addEntityLink('dashboard', 'Dashboard', icon: 'fas-chart-line') + ->addEntityLink('test', 'Fields test', icon: 'fas-cog'); } } diff --git a/demo/app/Sharp/TestForm/CustomField.php b/demo/app/Sharp/TestForm/CustomField.php new file mode 100644 index 000000000..bd44fa083 --- /dev/null +++ b/demo/app/Sharp/TestForm/CustomField.php @@ -0,0 +1,23 @@ + 'lol', + ]); + } +} diff --git a/demo/app/Sharp/TestForm/TestForm.php b/demo/app/Sharp/TestForm/TestForm.php index 9f13b4faf..f571748d5 100644 --- a/demo/app/Sharp/TestForm/TestForm.php +++ b/demo/app/Sharp/TestForm/TestForm.php @@ -2,8 +2,11 @@ namespace App\Sharp\TestForm; -use Code16\Sharp\Form\Fields\SharpFormAutocompleteField; +use Code16\Sharp\Form\Eloquent\Uploads\Transformers\SharpUploadModelFormAttributeTransformer; +use Code16\Sharp\Form\Fields\Editor\Uploads\SharpFormEditorUpload; use Code16\Sharp\Form\Fields\SharpFormAutocompleteListField; +use Code16\Sharp\Form\Fields\SharpFormAutocompleteLocalField; +use Code16\Sharp\Form\Fields\SharpFormAutocompleteRemoteField; use Code16\Sharp\Form\Fields\SharpFormCheckField; use Code16\Sharp\Form\Fields\SharpFormDateField; use Code16\Sharp\Form\Fields\SharpFormEditorField; @@ -24,75 +27,96 @@ class TestForm extends SharpSingleForm { - protected ?string $formValidatorClass = TestValidator::class; - public function buildFormFields(FieldsContainer $formFields): void { $formFields ->addField( SharpFormTextField::make('text') ->setLocalized() +// ->setReadOnly() ->setLabel('Text'), ) ->addField( - SharpFormAutocompleteField::make('autocomplete_local', 'local') - ->setLocalized() + SharpFormAutocompleteLocalField::make('autocomplete_local') ->setLabel('Autocomplete local') ->setLocalSearchKeys(['label']) - ->setListItemInlineTemplate('{{label}}') - ->setResultItemInlineTemplate('{{label}} ({{id}})') - ->setLocalValues($this->options(true)), + ->setListItemTemplate('{{ $label }}') + ->setResultItemTemplate('{{ $label }} ({{ $id }})') +// ->setReadOnly() + ->setLocalValues([ + 1 => [ + ['id' => 1, 'label' => 'Voltaire - Candide'], + ['id' => 2, 'label' => 'Voltaire - Zadig'], + ['id' => 3, 'label' => 'Voltaire - Micromégas'], + ], + 2 => [ + ['id' => 4, 'label' => 'Hugo - Les Misérables'], + ['id' => 5, 'label' => 'Hugo - Notre-Dame de Paris'], + ['id' => 6, 'label' => 'Hugo - Les Contemplations'], + ], + ]) + ->setLocalValuesLinkedTo('select_list'), ) ->addField( - SharpFormAutocompleteField::make('autocomplete_remote', 'remote') + SharpFormAutocompleteRemoteField::make('autocomplete_remote') ->setLabel('Autocomplete remote') ->setRemoteSearchAttribute('query') - ->setListItemInlineTemplate('{{name}}') - ->setResultItemInlineTemplate('{{name}} ({{num}})') - ->setRemoteEndpoint(url('/passengers')), + ->setListItemTemplate('{{ $name }}') + ->setResultItemTemplate('{{ $name }} ({{ $id }})') +// ->setReadOnly() + ->setRemoteEndpoint(route('sharp.autocompletes.users.index')), ) ->addField( SharpFormAutocompleteListField::make('autocomplete_list') ->setLabel('Autocomplete_list') ->setAddable() ->setRemovable() +// ->setReadOnly() ->setItemField( - SharpFormAutocompleteField::make('item', 'remote') + SharpFormAutocompleteRemoteField::make('item') ->setLabel('Passenger') ->setPlaceholder('test') - ->setListItemInlineTemplate('{{ name }}') - ->setResultItemInlineTemplate('{{name}} ({{num}})') - ->setRemoteEndpoint(url('/passengers')), + ->setListItemTemplate('{{ $name }}') + ->setResultItemTemplate('{{ $name }} ({{ $id }})') + ->setRemoteEndpoint(route('sharp.autocompletes.users.index')), ), ) ->addField( - SharpFormCheckField::make('check', 'Check'), + SharpFormCheckField::make('check', 'Check') + // ->setReadOnly(), ) ->addField( SharpFormDateField::make('datetime') ->setLabel('Datetime') - ->setDisplayFormat('YYYY-MM-DD HH:mm') + ->setMinTime(0, 15) +// ->setReadOnly() ->setHasTime(), ) ->addField( SharpFormDateField::make('date') ->setLabel('Date') - ->setDisplayFormat('YYYY-MM-DD') +// ->setReadOnly() ->setHasTime(false), ) ->addField( SharpFormDateField::make('time') ->setLabel('Time') - ->setDisplayFormat('HH:mm') ->setHasDate(false) + ->setMinTime(0, 15) + ->setMaxTime(22, 15) +// ->setReadOnly() ->setHasTime(), ) ->addField( SharpFormGeolocationField::make('geolocation') ->setLabel('Geolocation') ->setApiKey(env('GMAPS_KEY')) + ->setGoogleMapsMapId(env('GMAPS_MAP_ID')) +// ->setReadOnly() ->setMapsProvider('osm') ->setGeocodingProvider('osm') +// ->setMapsProvider('gmaps') +// ->setGeocodingProvider('gmaps') // ->setDisplayUnitDecimalDegrees() ->setDisplayUnitDegreesMinutesSeconds() ->setGeocoding() @@ -100,20 +124,21 @@ public function buildFormFields(FieldsContainer $formFields): void ) ->addField( SharpFormHtmlField::make('html') +// ->setReadOnly() ->setLabel('Html') - ->setInlineTemplate('Your name is {{name}}'), + ->setTemplate('Your name is {{ $name }}'), ) ->addField( SharpFormListField::make('list') ->setLabel('List') ->setAddable() ->setSortable() +// ->setReadOnly() ->setRemovable() ->setItemIdAttribute('id') ->addItemField( SharpFormDateField::make('date') ->setLabel('Date') - ->setDisplayFormat('YYYY/MM/DD') ->setHasTime(false), ) ->addItemField( @@ -128,12 +153,12 @@ public function buildFormFields(FieldsContainer $formFields): void ), ) ->addField( - SharpFormEditorField::make('markdown') - ->setRenderContentAsMarkdown() + SharpFormEditorField::make('wysiwyg') ->setPlaceholder('Start typing content here...') ->setMaxLength(200) +// ->setReadOnly() ->setLocalized() - ->setLabel('Markdown') + ->setLabel('Wysiwyg') ->setToolbar([ SharpFormEditorField::B, SharpFormEditorField::I, @@ -159,19 +184,22 @@ public function buildFormFields(FieldsContainer $formFields): void SharpFormEditorField::CODE_BLOCK, SharpFormEditorField::SUP, ]) -// ->hideToolbar() -// ->setWithoutParagraphs() - ->setCropRatio('1:1') + ->allowUploads( + SharpFormEditorUpload::make() + ->setImageOnly() + ->setImageCropRatio('1:1') + ->setStorageDisk('local') + ->setStorageBasePath('data') + ) ->setHeight(350) - ->setStorageDisk('local') - ->setStorageBasePath('data'), ) ->addField( - SharpFormEditorField::make('wysiwyg') - ->setRenderContentAsMarkdown(false) + SharpFormEditorField::make('markdown') + ->setRenderContentAsMarkdown() ->showCharacterCount() +// ->setReadOnly() ->setLocalized() - ->setLabel('Wysiwyg') + ->setLabel('Markdown') ->setToolbar([ SharpFormEditorField::B, SharpFormEditorField::I, SharpFormEditorField::A, SharpFormEditorField::SEPARATOR, @@ -184,6 +212,13 @@ public function buildFormFields(FieldsContainer $formFields): void SharpFormEditorField::SEPARATOR, SharpFormEditorField::CODE_BLOCK, ]) + ->allowUploads( + SharpFormEditorUpload::make() + ->setImageOnly() + ->setImageCropRatio('1:1') + ->setStorageDisk('local') + ->setStorageBasePath('data') + ) // ->hideToolbar() // ->setWithoutParagraphs() ->setHeight(350, 0), @@ -191,34 +226,40 @@ public function buildFormFields(FieldsContainer $formFields): void ->addField( SharpFormNumberField::make('number') ->setLabel('Number') +// ->setReadOnly() ->setMin(0) ->setMax(1) ->setStep(.1), ) ->addField( - SharpFormSelectField::make('select_dropdown', $this->options(true)) - ->setLocalized() + SharpFormSelectField::make('select_dropdown', $this->options()) ->setLabel('Select dropdown') + ->allowSelectAll() +// ->setClearable() +// ->setReadOnly() + ->setMultiple() ->setDisplayAsDropdown(), ) ->addField( - SharpFormSelectField::make('select_list', $this->options(true)) - ->setLocalized() + SharpFormSelectField::make('select_list', $this->options()) ->setLabel('Select list') +// ->setReadOnly() ->setDisplayAsList(), ) ->addField( - SharpFormSelectField::make('select_list_multiple', $this->options(true)) - ->setLocalized() + SharpFormSelectField::make('select_list_multiple', $this->options()) ->setLabel('Select list multiple') + ->allowSelectAll() +// ->setInline() ->setMultiple() +// ->setReadOnly() ->setDisplayAsList() - ->setMaxSelected(2), + // ->setMaxSelected(2), ) ->addField( - SharpFormTagsField::make('tags', $this->options(true)) - ->setLocalized() + SharpFormTagsField::make('tags', $this->options()) ->setLabel('Tags') +// ->setReadOnly() ->setCreatable(true) ->setCreateAttribute('label') ->setMaxTagCount(4), @@ -226,6 +267,7 @@ public function buildFormFields(FieldsContainer $formFields): void ->addField( SharpFormTextareaField::make('textarea') ->setLocalized() +// ->setReadOnly() ->setLabel('Textarea') ->setMaxLength(50) ->setRowCount(4), @@ -233,11 +275,13 @@ public function buildFormFields(FieldsContainer $formFields): void ->addField( SharpFormUploadField::make('upload') ->setLabel('Upload') - ->setFileFilterImages() - ->setCropRatio('1:1') + ->setMaxFileSize(5) +// ->setReadOnly() + ->setImageCropRatio('1:1') ->setStorageDisk('local') ->setStorageBasePath('data'), - ); + ) + ->addField(CustomField::make('custom')); } public function buildFormLayout(FormLayout $formLayout): void @@ -246,60 +290,60 @@ public function buildFormLayout(FormLayout $formLayout): void ->addTab('Simple', function (FormLayoutTab $tab) { $tab ->addColumn(6, function (FormLayoutColumn $column) { - $column->withSingleField('text') + $column->withField('text') ->withFields('datetime') ->withFields('date|6', 'time|6') - ->withSingleField('check'); + ->withField('check'); }) ->addColumn(6, function (FormLayoutColumn $column) { - $column->withSingleField('number') - ->withSingleField('html'); + $column->withField('number') + ->withField('html'); }); }) ->addTab('Textarea', function (FormLayoutTab $tab) { $tab ->addColumn(6, function (FormLayoutColumn $column) { - $column->withSingleField('markdown') - ->withSingleField('textarea'); + $column->withField('wysiwyg') + ->withField('textarea'); }) ->addColumn(6, function (FormLayoutColumn $column) { - $column->withSingleField('wysiwyg'); + $column->withField('markdown'); }); }) ->addTab('Select', function (FormLayoutTab $tab) { $tab ->addColumn(6, function (FormLayoutColumn $column) { - $column->withSingleField('autocomplete_local') - ->withSingleField('autocomplete_remote') - ->withSingleField('select_dropdown'); + $column->withField('autocomplete_local') + ->withField('autocomplete_remote') + ->withField('select_dropdown'); }) ->addColumn(6, function (FormLayoutColumn $column) { - $column->withSingleField('select_list') - ->withSingleField('select_list_multiple') - ->withSingleField('tags'); + $column->withField('select_list') + ->withField('select_list_multiple') + ->withField('tags'); }); }) ->addTab('List', function (FormLayoutTab $tab) { $tab ->addColumn(6, function (FormLayoutColumn $column) { - $column->withSingleField('autocomplete_list', function (FormLayoutColumn $listItem) { - $listItem->withSingleField('item'); + $column->withListField('autocomplete_list', function (FormLayoutColumn $listItem) { + $listItem->withField('item'); }); }) ->addColumn(6, function (FormLayoutColumn $column) { - $column->withSingleField('list', function (FormLayoutColumn $listItem) { + $column->withListField('list', function (FormLayoutColumn $listItem) { $listItem->withFields('date|5', 'check|7') - ->withSingleField('markdown2'); + ->withField('markdown2'); }); }); }) ->addTab('Special', function (FormLayoutTab $tab) { $tab ->addColumn(6, function (FormLayoutColumn $column) { - $column->withSingleField('upload'); + $column->withField('upload'); }) ->addColumn(6, function (FormLayoutColumn $column) { - $column->withSingleField('geolocation'); + $column->withField('geolocation'); }); }); } @@ -307,30 +351,26 @@ public function buildFormLayout(FormLayout $formLayout): void protected function findSingle() { if (! $rawData = (array) session()->get('sharp_test_form')) { - $faker = \Faker\Factory::create(); $rawData = [ 'text' => [ - 'fr' => $faker->words(3, true), - 'en' => $faker->words(3, true), + 'fr' => fake()->words(3, true), + 'en' => fake()->words(3, true), ], 'autocomplete_local' => 1, 'autocomplete_remote' => null, 'autocomplete_list' => null, 'check' => true, - 'datetime' => $faker->date('Y-m-d H:i:s'), - 'date' => $faker->date('Y-m-d'), - 'time' => $faker->date('H:i:s'), - 'html' => [ - 'name' => $faker->name, - ], + 'datetime' => fake()->date('Y-m-d H:i:s'), + 'date' => fake()->date('Y-m-d'), + 'time' => fake()->date('H:i:s'), 'markdown' => [ 'fr' => "Du **texte** avec *style* \n\n", 'en' => 'Some **text** with *style*', ], - 'number' => $faker->numberBetween(1, 100), + 'number' => fake()->numberBetween(1, 100), 'textarea' => [ - 'fr' => $faker->paragraph(3), - 'en' => $faker->paragraph(3), + 'fr' => fake()->paragraph(3), + 'en' => fake()->paragraph(3), ], 'wysiwyg' => [ 'fr' => '

fezfjklez fezjkflezjfkez fezjkflezjfklezjkflezj

', @@ -339,7 +379,19 @@ protected function findSingle() ]; } - return $this->transform($rawData); + return $this + ->setCustomTransformer('upload', (new SharpUploadModelFormAttributeTransformer())->dynamicInstance()) + ->setCustomTransformer('html', fn () => [ + 'name' => fake()->name, + ]) + ->transform($rawData); + } + + public function rules(): array + { + return [ + // 'date' => 'required|before_or_equal:'.date('Y-m-d'), + ]; } protected function updateSingle(array $data) @@ -352,20 +404,19 @@ public function getDataLocalizations(): array return ['fr', 'en']; } - protected function options(bool $localized = false): array + protected function options(): array { - if (! $localized) { - return [ - '1' => 'Option one', - '2' => 'Option two', - '3' => 'Option three', - ]; - } - return [ - '1' => ['en' => 'Option one', 'fr' => 'Option un'], - '2' => ['en' => 'Option two', 'fr' => 'Option deux'], - '3' => ['en' => 'Option three', 'fr' => 'Option trois'], + '1' => 'Option one', + '2' => 'Option two', + '3' => 'Option three', + '4' => 'Option four', + '5' => 'Option five', + '6' => 'Option six', + '7' => 'Option seven', + '8' => 'Option eight', + '9' => 'Option nine', + '10' => 'Option ten', ]; } } diff --git a/demo/app/Sharp/TestForm/TestShow.php b/demo/app/Sharp/TestForm/TestShow.php index 12d01e982..80ec8893a 100644 --- a/demo/app/Sharp/TestForm/TestShow.php +++ b/demo/app/Sharp/TestForm/TestShow.php @@ -20,15 +20,15 @@ public function buildShowLayout(ShowLayout $showLayout): void { $showLayout->addSection('', function (ShowLayoutSection $section) { $section->addColumn(12, function (ShowLayoutColumn $column) { - $column->withSingleField('message'); + $column->withField('message'); }); }); } public function findSingle(): array { - return [ + return $this->transform([ 'message' => '

Please stay calm,
this is a test.

', - ]; + ]); } } diff --git a/demo/app/Sharp/TestForm/TestValidator.php b/demo/app/Sharp/TestForm/TestValidator.php deleted file mode 100644 index 70b6e3b7d..000000000 --- a/demo/app/Sharp/TestForm/TestValidator.php +++ /dev/null @@ -1,15 +0,0 @@ - 'required|before_or_equal:'.date('Y-m-d'), - ]; - } -} diff --git a/demo/app/Sharp/Utils/DateTimeCustomTransformer.php b/demo/app/Sharp/Utils/DateTimeCustomTransformer.php index a35040617..87c4e8b33 100644 --- a/demo/app/Sharp/Utils/DateTimeCustomTransformer.php +++ b/demo/app/Sharp/Utils/DateTimeCustomTransformer.php @@ -11,8 +11,8 @@ public function apply($value, $instance = null, $attribute = null) { $carbonValue = $instance->$attribute; - return $carbonValue && $carbonValue instanceof Carbon - ? $carbonValue->isoFormat('LLLL') + return $carbonValue instanceof Carbon + ? $carbonValue->isoFormat('LLL') : null; } } diff --git a/demo/app/Sharp/Utils/Embeds/AuthorEmbed.php b/demo/app/Sharp/Utils/Embeds/AuthorEmbed.php index 51d743ca7..d6ea5f3fd 100644 --- a/demo/app/Sharp/Utils/Embeds/AuthorEmbed.php +++ b/demo/app/Sharp/Utils/Embeds/AuthorEmbed.php @@ -5,10 +5,11 @@ use App\Models\User; use Code16\Sharp\Form\Eloquent\Uploads\Transformers\SharpUploadModelFormAttributeTransformer; use Code16\Sharp\Form\Fields\Embeds\SharpFormEditorEmbed; -use Code16\Sharp\Form\Fields\SharpFormAutocompleteField; +use Code16\Sharp\Form\Fields\SharpFormAutocompleteRemoteField; use Code16\Sharp\Form\Fields\SharpFormEditorField; use Code16\Sharp\Form\Fields\SharpFormUploadField; use Code16\Sharp\Utils\Fields\FieldsContainer; +use Code16\Sharp\Utils\PageAlerts\PageAlert; use Illuminate\Support\Arr; class AuthorEmbed extends SharpFormEditorEmbed @@ -18,26 +19,32 @@ public function buildEmbedConfig(): void $this ->configureLabel('Author') ->configureTagName('x-author') - ->configurePageAlert('Please fill author detail below', static::$pageAlertLevelSecondary) - ->configureFormTemplatePath('sharp/templates/author_embed.vue'); + ->configureIcon('far fa-user') + ->configureTemplate(view('sharp.templates.author-embed')); + } + + protected function buildPageAlert(PageAlert $pageAlert): void + { + $pageAlert + ->setLevelSecondary() + ->setMessage('Please fill author detail below'); } public function buildFormFields(FieldsContainer $formFields): void { $formFields ->addField( - SharpFormAutocompleteField::make('author', 'remote') + SharpFormAutocompleteRemoteField::make('author') ->setLabel('Author') - ->setRemoteEndpoint('/api/admin/users') - ->setListItemInlineTemplate('
{{name}}
{{email}}
') - ->setResultItemInlineTemplate('
{{name}}
{{email}}
'), + ->setRemoteEndpoint(route('sharp.autocompletes.users.index')) + ->setListItemTemplate('
{{ $name }}
{{ $email }}
') ) ->addField( SharpFormUploadField::make('picture') ->setMaxFileSize(1) + ->setImageOnly() ->setLabel('Picture') - ->setFileFilterImages() - ->setCropRatio('1:1') + ->setImageCropRatio('1:1') ->setStorageDisk('local') ->setStorageBasePath('data/embeds'), ) diff --git a/demo/app/Sharp/Utils/Embeds/CodeEmbed.php b/demo/app/Sharp/Utils/Embeds/CodeEmbed.php index f722a304b..28856d2e1 100644 --- a/demo/app/Sharp/Utils/Embeds/CodeEmbed.php +++ b/demo/app/Sharp/Utils/Embeds/CodeEmbed.php @@ -12,8 +12,9 @@ public function buildEmbedConfig(): void { $this->configureLabel('Code') ->configureTagName('x-codeblock') - ->configureFormInlineTemplate('
{{ code }}
') - ->configureShowTemplatePath('sharp/templates/codeblock_show_embed.vue'); + ->configureIcon('fas fa-code') + ->configureFormTemplate('
{{ $code }}
') + ->configureShowTemplate(view('sharp.templates.codeblock-show-embed')); } public function buildFormFields(FieldsContainer $formFields): void diff --git a/demo/app/Sharp/Utils/Embeds/RelatedPostEmbed.php b/demo/app/Sharp/Utils/Embeds/RelatedPostEmbed.php index db2833aae..5d49fa0d9 100644 --- a/demo/app/Sharp/Utils/Embeds/RelatedPostEmbed.php +++ b/demo/app/Sharp/Utils/Embeds/RelatedPostEmbed.php @@ -2,6 +2,7 @@ namespace App\Sharp\Utils\Embeds; +use App\Enums\PostState; use App\Models\Post; use Code16\Sharp\Form\Fields\Embeds\SharpFormEditorEmbed; use Code16\Sharp\Form\Fields\SharpFormSelectField; @@ -14,7 +15,18 @@ public function buildEmbedConfig(): void $this ->configureLabel('Related Post') ->configureTagName('x-related-post') - ->configureFormInlineTemplate('
{{ title }}
'); + ->configureTemplate(<<<'blade' +
+ @if($online) + + @else + + @endif + + {{ $title }} +
+ blade + ); } public function buildFormFields(FieldsContainer $formFields): void @@ -40,7 +52,7 @@ public function transformDataForTemplate(array $data, bool $isForm): array return $post?->title; }) ->setCustomTransformer('online', function ($value) use ($post) { - return $post?->state === 'online'; + return $post?->state === PostState::ONLINE; }) ->transformForTemplate($data); } diff --git a/demo/app/Sharp/Utils/Embeds/TableOfContentsEmbed.php b/demo/app/Sharp/Utils/Embeds/TableOfContentsEmbed.php index 84073e047..586bbc450 100644 --- a/demo/app/Sharp/Utils/Embeds/TableOfContentsEmbed.php +++ b/demo/app/Sharp/Utils/Embeds/TableOfContentsEmbed.php @@ -11,10 +11,13 @@ public function buildEmbedConfig(): void { $this->configureLabel('Table of contents') ->configureTagName('x-table-of-contents') - ->configureFormInlineTemplate('- Table of contents -'); + ->configureTemplate('- Table of contents -'); } public function buildFormFields(FieldsContainer $formFields): void {} - public function updateContent(array $data = []): array {} + public function updateContent(array $data = []): array + { + return []; + } } diff --git a/demo/app/Sharp/Utils/Filters/PeriodRequiredFilter.php b/demo/app/Sharp/Utils/Filters/PeriodRequiredFilter.php index 79df188ad..8804c6e6e 100644 --- a/demo/app/Sharp/Utils/Filters/PeriodRequiredFilter.php +++ b/demo/app/Sharp/Utils/Filters/PeriodRequiredFilter.php @@ -8,14 +8,14 @@ class PeriodRequiredFilter extends DashboardDateRangeRequiredFilter { public function buildFilterConfig(): void { - $this->configureLabel('Period'); + $this->configureLabel('Period')->configureShowPresets(); } public function defaultValue(): array { return [ 'start' => today()->subDays(30), - 'end' => today()->subDay(), + 'end' => today(), ]; } } diff --git a/demo/app/Sharp/Utils/Filters/StateFilter.php b/demo/app/Sharp/Utils/Filters/StateFilter.php index 1ed68da00..2d8397a7a 100644 --- a/demo/app/Sharp/Utils/Filters/StateFilter.php +++ b/demo/app/Sharp/Utils/Filters/StateFilter.php @@ -8,7 +8,8 @@ class StateFilter extends EntityListSelectFilter { public function buildFilterConfig(): void { - $this->configureLabel('State'); + $this->configureLabel('State') + ->configureRetainInSession(); } public function values(): array diff --git a/demo/composer.json b/demo/composer.json index 5029af452..d65649d18 100644 --- a/demo/composer.json +++ b/demo/composer.json @@ -4,24 +4,31 @@ "require": { "php": "^8.2", "bacon/bacon-qr-code": "~2.0", - "code16/laravel-content-renderer": "^1.1.0", + "blade-ui-kit/blade-icons": "^1.6", + "code16/laravel-content-renderer": "^1.2", "guzzlehttp/guzzle": "^7.2", + "inertiajs/inertia-laravel": "^2.0", "intervention/image": "^3.4", "intervention/image-laravel": "^1.2", "laravel/framework": "^11.0", - "laravel/tinker": "^2.7", + "laravel/tinker": "^2.9", + "masterminds/html5": "^2.8", + "owenvoke/blade-fontawesome": "^2.6", "pragmarx/google2fa": "^8.0", "spatie/image-optimizer": "^1.6", - "spatie/laravel-translatable": "^6.0" + "spatie/laravel-translatable": "^6.0", + "tightenco/ziggy": "^1.8" }, "require-dev": { "fakerphp/faker": "^1.9.1", + "itsgoingd/clockwork": "^5.1", "laravel/sail": "^1.0.1", "mockery/mockery": "^1.4.4", - "nunomaduro/collision": "^8.0", - "phpunit/phpunit": "^10.0", + "nunomaduro/collision": "^8.1", + "phpunit/phpunit": "^10.5", "spatie/laravel-ignition": "^2.0", - "spatie/laravel-ray": "^1.29" + "spatie/laravel-ray": "^1.29", + "spatie/laravel-typescript-transformer": "^2.3" }, "autoload": { "files": [ @@ -42,11 +49,11 @@ "scripts": { "post-autoload-dump": [ "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", - "@php artisan vendor:publish --provider=Code16\\\\Sharp\\\\SharpServiceProvider --tag=assets --force", "@php artisan package:discover --ansi" ], "post-update-cmd": [ - "@php artisan vendor:publish --tag=laravel-assets --ansi --force" + "@php artisan vendor:publish --tag=laravel-assets --ansi --force", + "@php artisan vendor:publish --tag=sharp-assets --force" ], "post-root-package-install": [ "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" diff --git a/demo/composer.lock b/demo/composer.lock index e6130d0dc..c8955d43b 100644 --- a/demo/composer.lock +++ b/demo/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "3b30d85a1bbf35dba3e7fa5d3356f384", + "content-hash": "dd087c87d1557269d23566a4007c223a", "packages": [ { "name": "bacon/bacon-qr-code", @@ -60,27 +60,108 @@ }, "time": "2022-12-07T17:46:57+00:00" }, + { + "name": "blade-ui-kit/blade-icons", + "version": "1.7.2", + "source": { + "type": "git", + "url": "https://github.com/blade-ui-kit/blade-icons.git", + "reference": "75a54a3f5a2810fcf6574ab23e91b6cc229a1b53" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/blade-ui-kit/blade-icons/zipball/75a54a3f5a2810fcf6574ab23e91b6cc229a1b53", + "reference": "75a54a3f5a2810fcf6574ab23e91b6cc229a1b53", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^8.0|^9.0|^10.0|^11.0", + "illuminate/filesystem": "^8.0|^9.0|^10.0|^11.0", + "illuminate/support": "^8.0|^9.0|^10.0|^11.0", + "illuminate/view": "^8.0|^9.0|^10.0|^11.0", + "php": "^7.4|^8.0", + "symfony/console": "^5.3|^6.0|^7.0", + "symfony/finder": "^5.3|^6.0|^7.0" + }, + "require-dev": { + "mockery/mockery": "^1.5.1", + "orchestra/testbench": "^6.0|^7.0|^8.0|^9.0", + "phpunit/phpunit": "^9.0|^10.5|^11.0" + }, + "bin": [ + "bin/blade-icons-generate" + ], + "type": "library", + "extra": { + "laravel": { + "providers": [ + "BladeUI\\Icons\\BladeIconsServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "BladeUI\\Icons\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dries Vints", + "homepage": "https://driesvints.com" + } + ], + "description": "A package to easily make use of icons in your Laravel Blade views.", + "homepage": "https://github.com/blade-ui-kit/blade-icons", + "keywords": [ + "blade", + "icons", + "laravel", + "svg" + ], + "support": { + "issues": "https://github.com/blade-ui-kit/blade-icons/issues", + "source": "https://github.com/blade-ui-kit/blade-icons" + }, + "funding": [ + { + "url": "https://github.com/sponsors/driesvints", + "type": "github" + }, + { + "url": "https://www.paypal.com/paypalme/driesvints", + "type": "paypal" + } + ], + "time": "2024-10-17T17:38:00+00:00" + }, { "name": "brick/math", - "version": "0.11.0", + "version": "0.12.1", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478" + "reference": "f510c0a40911935b77b86859eb5223d58d660df1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/0ad82ce168c82ba30d1c01ec86116ab52f589478", - "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478", + "url": "https://api.github.com/repos/brick/math/zipball/f510c0a40911935b77b86859eb5223d58d660df1", + "reference": "f510c0a40911935b77b86859eb5223d58d660df1", "shasum": "" }, "require": { - "php": "^8.0" + "php": "^8.1" }, "require-dev": { "php-coveralls/php-coveralls": "^2.2", - "phpunit/phpunit": "^9.0", - "vimeo/psalm": "5.0.0" + "phpunit/phpunit": "^10.1", + "vimeo/psalm": "5.16.0" }, "type": "library", "autoload": { @@ -100,12 +181,17 @@ "arithmetic", "bigdecimal", "bignum", + "bignumber", "brick", - "math" + "decimal", + "integer", + "math", + "mathematics", + "rational" ], "support": { "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/0.11.0" + "source": "https://github.com/brick/math/tree/0.12.1" }, "funding": [ { @@ -113,7 +199,7 @@ "type": "github" } ], - "time": "2023-01-15T23:15:59+00:00" + "time": "2023-11-29T23:19:16+00:00" }, { "name": "carbonphp/carbon-doctrine-types", @@ -250,23 +336,23 @@ }, { "name": "dasprid/enum", - "version": "1.0.5", + "version": "1.0.6", "source": { "type": "git", "url": "https://github.com/DASPRiD/Enum.git", - "reference": "6faf451159fb8ba4126b925ed2d78acfce0dc016" + "reference": "8dfd07c6d2cf31c8da90c53b83c026c7696dda90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/DASPRiD/Enum/zipball/6faf451159fb8ba4126b925ed2d78acfce0dc016", - "reference": "6faf451159fb8ba4126b925ed2d78acfce0dc016", + "url": "https://api.github.com/repos/DASPRiD/Enum/zipball/8dfd07c6d2cf31c8da90c53b83c026c7696dda90", + "reference": "8dfd07c6d2cf31c8da90c53b83c026c7696dda90", "shasum": "" }, "require": { "php": ">=7.1 <9.0" }, "require-dev": { - "phpunit/phpunit": "^7 | ^8 | ^9", + "phpunit/phpunit": "^7 || ^8 || ^9 || ^10 || ^11", "squizlabs/php_codesniffer": "*" }, "type": "library", @@ -294,22 +380,22 @@ ], "support": { "issues": "https://github.com/DASPRiD/Enum/issues", - "source": "https://github.com/DASPRiD/Enum/tree/1.0.5" + "source": "https://github.com/DASPRiD/Enum/tree/1.0.6" }, - "time": "2023-08-25T16:18:39+00:00" + "time": "2024-08-09T14:30:48+00:00" }, { "name": "dflydev/dot-access-data", - "version": "v3.0.2", + "version": "v3.0.3", "source": { "type": "git", "url": "https://github.com/dflydev/dflydev-dot-access-data.git", - "reference": "f41715465d65213d644d3141a6a93081be5d3549" + "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/f41715465d65213d644d3141a6a93081be5d3549", - "reference": "f41715465d65213d644d3141a6a93081be5d3549", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/a23a2bf4f31d3518f3ecb38660c95715dfead60f", + "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f", "shasum": "" }, "require": { @@ -369,9 +455,9 @@ ], "support": { "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", - "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2" + "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.3" }, - "time": "2022-10-27T11:44:00+00:00" + "time": "2024-07-08T12:26:09+00:00" }, { "name": "doctrine/inflector", @@ -543,16 +629,16 @@ }, { "name": "dragonmantank/cron-expression", - "version": "v3.3.3", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/dragonmantank/cron-expression.git", - "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a" + "reference": "8c784d071debd117328803d86b2097615b457500" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/adfb1f505deb6384dc8b39804c5065dd3c8c8c0a", - "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/8c784d071debd117328803d86b2097615b457500", + "reference": "8c784d071debd117328803d86b2097615b457500", "shasum": "" }, "require": { @@ -565,10 +651,14 @@ "require-dev": { "phpstan/extension-installer": "^1.0", "phpstan/phpstan": "^1.0", - "phpstan/phpstan-webmozart-assert": "^1.0", "phpunit/phpunit": "^7.0|^8.0|^9.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, "autoload": { "psr-4": { "Cron\\": "src/Cron/" @@ -592,7 +682,7 @@ ], "support": { "issues": "https://github.com/dragonmantank/cron-expression/issues", - "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.3" + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.4.0" }, "funding": [ { @@ -600,7 +690,7 @@ "type": "github" } ], - "time": "2023-08-10T19:36:49+00:00" + "time": "2024-10-09T13:47:03+00:00" }, { "name": "egulias/email-validator", @@ -742,24 +832,24 @@ }, { "name": "graham-campbell/result-type", - "version": "v1.1.2", + "version": "v1.1.3", "source": { "type": "git", "url": "https://github.com/GrahamCampbell/Result-Type.git", - "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862" + "reference": "3ba905c11371512af9d9bdd27d99b782216b6945" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/fbd48bce38f73f8a4ec8583362e732e4095e5862", - "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/3ba905c11371512af9d9bdd27d99b782216b6945", + "reference": "3ba905c11371512af9d9bdd27d99b782216b6945", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", - "phpoption/phpoption": "^1.9.2" + "phpoption/phpoption": "^1.9.3" }, "require-dev": { - "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" + "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28" }, "type": "library", "autoload": { @@ -788,7 +878,7 @@ ], "support": { "issues": "https://github.com/GrahamCampbell/Result-Type/issues", - "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.2" + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.3" }, "funding": [ { @@ -800,26 +890,26 @@ "type": "tidelift" } ], - "time": "2023-11-12T22:16:48+00:00" + "time": "2024-07-20T21:45:45+00:00" }, { "name": "guzzlehttp/guzzle", - "version": "7.8.1", + "version": "7.9.2", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "41042bc7ab002487b876a0683fc8dce04ddce104" + "reference": "d281ed313b989f213357e3be1a179f02196ac99b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104", - "reference": "41042bc7ab002487b876a0683fc8dce04ddce104", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d281ed313b989f213357e3be1a179f02196ac99b", + "reference": "d281ed313b989f213357e3be1a179f02196ac99b", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.5.3 || ^2.0.1", - "guzzlehttp/psr7": "^1.9.1 || ^2.5.1", + "guzzlehttp/promises": "^1.5.3 || ^2.0.3", + "guzzlehttp/psr7": "^2.7.0", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", "symfony/deprecation-contracts": "^2.2 || ^3.0" @@ -830,9 +920,9 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", "ext-curl": "*", - "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", + "guzzle/client-integration-tests": "3.0.2", "php-http/message-factory": "^1.1", - "phpunit/phpunit": "^8.5.36 || ^9.6.15", + "phpunit/phpunit": "^8.5.39 || ^9.6.20", "psr/log": "^1.1 || ^2.0 || ^3.0" }, "suggest": { @@ -910,7 +1000,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.8.1" + "source": "https://github.com/guzzle/guzzle/tree/7.9.2" }, "funding": [ { @@ -926,20 +1016,20 @@ "type": "tidelift" } ], - "time": "2023-12-03T20:35:24+00:00" + "time": "2024-07-24T11:22:20+00:00" }, { "name": "guzzlehttp/promises", - "version": "2.0.2", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223" + "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/bbff78d96034045e58e13dedd6ad91b5d1253223", - "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223", + "url": "https://api.github.com/repos/guzzle/promises/zipball/f9c436286ab2892c7db7be8c8da4ef61ccf7b455", + "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455", "shasum": "" }, "require": { @@ -947,7 +1037,7 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.36 || ^9.6.15" + "phpunit/phpunit": "^8.5.39 || ^9.6.20" }, "type": "library", "extra": { @@ -993,7 +1083,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.0.2" + "source": "https://github.com/guzzle/promises/tree/2.0.4" }, "funding": [ { @@ -1009,20 +1099,20 @@ "type": "tidelift" } ], - "time": "2023-12-03T20:19:20+00:00" + "time": "2024-10-17T10:06:22+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.6.2", + "version": "2.7.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221" + "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/45b30f99ac27b5ca93cb4831afe16285f57b8221", - "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/a70f5c95fb43bc83f07c9c948baa0dc1829bf201", + "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201", "shasum": "" }, "require": { @@ -1037,8 +1127,8 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "http-interop/http-factory-tests": "^0.9", - "phpunit/phpunit": "^8.5.36 || ^9.6.15" + "http-interop/http-factory-tests": "0.9.0", + "phpunit/phpunit": "^8.5.39 || ^9.6.20" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" @@ -1109,7 +1199,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.6.2" + "source": "https://github.com/guzzle/psr7/tree/2.7.0" }, "funding": [ { @@ -1125,7 +1215,7 @@ "type": "tidelift" } ], - "time": "2023-12-03T20:05:35+00:00" + "time": "2024-07-18T11:15:46+00:00" }, { "name": "guzzlehttp/uri-template", @@ -1213,18 +1303,92 @@ ], "time": "2023-12-03T19:50:20+00:00" }, + { + "name": "inertiajs/inertia-laravel", + "version": "v2.0.0", + "source": { + "type": "git", + "url": "https://github.com/inertiajs/inertia-laravel.git", + "reference": "0259e37f802bc39c814c42ba92c04ada17921f70" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/inertiajs/inertia-laravel/zipball/0259e37f802bc39c814c42ba92c04ada17921f70", + "reference": "0259e37f802bc39c814c42ba92c04ada17921f70", + "shasum": "" + }, + "require": { + "ext-json": "*", + "laravel/framework": "^10.0|^11.0", + "php": "^8.1.0", + "symfony/console": "^6.2|^7.0" + }, + "require-dev": { + "laravel/pint": "^1.16", + "mockery/mockery": "^1.3.3", + "orchestra/testbench": "^8.0|^9.2", + "phpunit/phpunit": "^10.4|^11.0", + "roave/security-advisories": "dev-master" + }, + "suggest": { + "ext-pcntl": "Recommended when running the Inertia SSR server via the `inertia:start-ssr` artisan command." + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Inertia\\ServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "./helpers.php" + ], + "psr-4": { + "Inertia\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jonathan Reinink", + "email": "jonathan@reinink.ca", + "homepage": "https://reinink.ca" + } + ], + "description": "The Laravel adapter for Inertia.js.", + "keywords": [ + "inertia", + "laravel" + ], + "support": { + "issues": "https://github.com/inertiajs/inertia-laravel/issues", + "source": "https://github.com/inertiajs/inertia-laravel/tree/v2.0.0" + }, + "funding": [ + { + "url": "https://github.com/reinink", + "type": "github" + } + ], + "time": "2024-12-13T02:48:29+00:00" + }, { "name": "intervention/gif", - "version": "4.0.2", + "version": "4.2.0", "source": { "type": "git", "url": "https://github.com/Intervention/gif.git", - "reference": "c2b07d1f69709e196c8b4ced423449a7e0f3b925" + "reference": "42c131a31b93c440ad49061b599fa218f06f93be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Intervention/gif/zipball/c2b07d1f69709e196c8b4ced423449a7e0f3b925", - "reference": "c2b07d1f69709e196c8b4ced423449a7e0f3b925", + "url": "https://api.github.com/repos/Intervention/gif/zipball/42c131a31b93c440ad49061b599fa218f06f93be", + "reference": "42c131a31b93c440ad49061b599fa218f06f93be", "shasum": "" }, "require": { @@ -1232,7 +1396,7 @@ }, "require-dev": { "phpstan/phpstan": "^1", - "phpunit/phpunit": "^9", + "phpunit/phpunit": "^10.0", "slevomat/coding-standard": "~8.0", "squizlabs/php_codesniffer": "^3.8" }, @@ -1263,7 +1427,7 @@ ], "support": { "issues": "https://github.com/Intervention/gif/issues", - "source": "https://github.com/Intervention/gif/tree/4.0.2" + "source": "https://github.com/Intervention/gif/tree/4.2.0" }, "funding": [ { @@ -1273,33 +1437,37 @@ { "url": "https://github.com/Intervention", "type": "github" + }, + { + "url": "https://ko-fi.com/interventionphp", + "type": "ko_fi" } ], - "time": "2024-02-18T15:36:58+00:00" + "time": "2024-09-20T13:35:02+00:00" }, { "name": "intervention/image", - "version": "3.4.0", + "version": "3.9.1", "source": { "type": "git", "url": "https://github.com/Intervention/image.git", - "reference": "fe1b0e2e64157133322974c28b44c25c2770a0c5" + "reference": "b496d1f6b9f812f96166623358dfcafb8c3b1683" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Intervention/image/zipball/fe1b0e2e64157133322974c28b44c25c2770a0c5", - "reference": "fe1b0e2e64157133322974c28b44c25c2770a0c5", + "url": "https://api.github.com/repos/Intervention/image/zipball/b496d1f6b9f812f96166623358dfcafb8c3b1683", + "reference": "b496d1f6b9f812f96166623358dfcafb8c3b1683", "shasum": "" }, "require": { "ext-mbstring": "*", - "intervention/gif": "^4.0.1", + "intervention/gif": "^4.2", "php": "^8.1" }, "require-dev": { "mockery/mockery": "^1.6", "phpstan/phpstan": "^1", - "phpunit/phpunit": "^9", + "phpunit/phpunit": "^10.0", "slevomat/coding-standard": "~8.0", "squizlabs/php_codesniffer": "^3.8" }, @@ -1335,7 +1503,7 @@ ], "support": { "issues": "https://github.com/Intervention/image/issues", - "source": "https://github.com/Intervention/image/tree/3.4.0" + "source": "https://github.com/Intervention/image/tree/3.9.1" }, "funding": [ { @@ -1345,27 +1513,31 @@ { "url": "https://github.com/Intervention", "type": "github" + }, + { + "url": "https://ko-fi.com/interventionphp", + "type": "ko_fi" } ], - "time": "2024-02-14T15:11:21+00:00" + "time": "2024-10-27T10:15:54+00:00" }, { "name": "intervention/image-laravel", - "version": "1.2.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/Intervention/image-laravel.git", - "reference": "d30b62fea3c49896dbf26ea7799e7d718e779310" + "reference": "24738a017d42a6fa8d9adabdbd69a2c19c5b0d30" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Intervention/image-laravel/zipball/d30b62fea3c49896dbf26ea7799e7d718e779310", - "reference": "d30b62fea3c49896dbf26ea7799e7d718e779310", + "url": "https://api.github.com/repos/Intervention/image-laravel/zipball/24738a017d42a6fa8d9adabdbd69a2c19c5b0d30", + "reference": "24738a017d42a6fa8d9adabdbd69a2c19c5b0d30", "shasum": "" }, "require": { "illuminate/support": "^8|^9|^10|^11", - "intervention/image": "^3", + "intervention/image": "^3.7", "php": "^8.1" }, "require-dev": { @@ -1375,12 +1547,12 @@ "type": "library", "extra": { "laravel": { - "providers": [ - "Intervention\\Image\\Laravel\\ServiceProvider" - ], "aliases": { "Image": "Intervention\\Image\\Laravel\\Facades\\Image" - } + }, + "providers": [ + "Intervention\\Image\\Laravel\\ServiceProvider" + ] } }, "autoload": { @@ -1412,7 +1584,7 @@ ], "support": { "issues": "https://github.com/Intervention/image-laravel/issues", - "source": "https://github.com/Intervention/image-laravel/tree/1.2.0" + "source": "https://github.com/Intervention/image-laravel/tree/1.3.0" }, "funding": [ { @@ -1424,27 +1596,27 @@ "type": "github" } ], - "time": "2024-03-03T09:14:35+00:00" + "time": "2024-06-15T08:20:20+00:00" }, { "name": "laravel/framework", - "version": "dev-master", + "version": "v11.35.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "fba12e14c0dbefc0e2d24e9e1fa426b1101b229f" + "reference": "f1a7aaa3c1235b7a95ccaa58db90e0cd9d8c3fcc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/fba12e14c0dbefc0e2d24e9e1fa426b1101b229f", - "reference": "fba12e14c0dbefc0e2d24e9e1fa426b1101b229f", + "url": "https://api.github.com/repos/laravel/framework/zipball/f1a7aaa3c1235b7a95ccaa58db90e0cd9d8c3fcc", + "reference": "f1a7aaa3c1235b7a95ccaa58db90e0cd9d8c3fcc", "shasum": "" }, "require": { "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", + "dragonmantank/cron-expression": "^3.4", "egulias/email-validator": "^3.2.1|^4.0", "ext-ctype": "*", "ext-filter": "*", @@ -1454,41 +1626,45 @@ "ext-session": "*", "ext-tokenizer": "*", "fruitcake/php-cors": "^1.3", - "guzzlehttp/guzzle": "^7.8", + "guzzlehttp/guzzle": "^7.8.2", "guzzlehttp/uri-template": "^1.0", - "laravel/prompts": "^0.1.15", - "laravel/serializable-closure": "^1.3", + "laravel/prompts": "^0.1.18|^0.2.0|^0.3.0", + "laravel/serializable-closure": "^1.3|^2.0", "league/commonmark": "^2.2.1", - "league/flysystem": "^3.8.0", + "league/flysystem": "^3.25.1", + "league/flysystem-local": "^3.25.1", + "league/uri": "^7.5.1", "monolog/monolog": "^3.0", - "nesbot/carbon": "^2.72.2|^3.0", + "nesbot/carbon": "^2.72.2|^3.4", "nunomaduro/termwind": "^2.0", "php": "^8.2", "psr/container": "^1.1.1|^2.0.1", "psr/log": "^1.0|^2.0|^3.0", "psr/simple-cache": "^1.0|^2.0|^3.0", "ramsey/uuid": "^4.7", - "symfony/console": "^7.0", - "symfony/error-handler": "^7.0", - "symfony/finder": "^7.0", - "symfony/http-foundation": "^7.0", - "symfony/http-kernel": "^7.0", - "symfony/mailer": "^7.0", - "symfony/mime": "^7.0", - "symfony/polyfill-php83": "^1.28", - "symfony/process": "^7.0", - "symfony/routing": "^7.0", - "symfony/uid": "^7.0", - "symfony/var-dumper": "^7.0", + "symfony/console": "^7.0.3", + "symfony/error-handler": "^7.0.3", + "symfony/finder": "^7.0.3", + "symfony/http-foundation": "^7.0.3", + "symfony/http-kernel": "^7.0.3", + "symfony/mailer": "^7.0.3", + "symfony/mime": "^7.0.3", + "symfony/polyfill-php83": "^1.31", + "symfony/process": "^7.0.3", + "symfony/routing": "^7.0.3", + "symfony/uid": "^7.0.3", + "symfony/var-dumper": "^7.0.3", "tijsverkoyen/css-to-inline-styles": "^2.2.5", - "vlucas/phpdotenv": "^5.4.1", - "voku/portable-ascii": "^2.0" + "vlucas/phpdotenv": "^5.6.1", + "voku/portable-ascii": "^2.0.2" }, "conflict": { + "mockery/mockery": "1.6.8", "tightenco/collect": "<5.5.33" }, "provide": { "psr/container-implementation": "1.1|2.0", + "psr/log-implementation": "1.0|2.0|3.0", "psr/simple-cache-implementation": "1.0|2.0|3.0" }, "replace": { @@ -1497,6 +1673,7 @@ "illuminate/bus": "self.version", "illuminate/cache": "self.version", "illuminate/collections": "self.version", + "illuminate/concurrency": "self.version", "illuminate/conditionable": "self.version", "illuminate/config": "self.version", "illuminate/console": "self.version", @@ -1529,29 +1706,32 @@ }, "require-dev": { "ably/ably-php": "^1.0", - "aws/aws-sdk-php": "^3.235.5", + "aws/aws-sdk-php": "^3.322.9", "ext-gmp": "*", - "fakerphp/faker": "^1.23", - "league/flysystem-aws-s3-v3": "^3.0", - "league/flysystem-ftp": "^3.0", - "league/flysystem-path-prefixing": "^3.3", - "league/flysystem-read-only": "^3.3", - "league/flysystem-sftp-v3": "^3.0", - "mockery/mockery": "^1.6", - "nyholm/psr7": "^1.2", - "orchestra/testbench-core": "^9.0", - "pda/pheanstalk": "^5.0", - "phpstan/phpstan": "^1.4.7", - "phpunit/phpunit": "^10.5|^11.0", - "predis/predis": "^2.0.2", + "fakerphp/faker": "^1.24", + "guzzlehttp/promises": "^2.0.3", + "guzzlehttp/psr7": "^2.4", + "league/flysystem-aws-s3-v3": "^3.25.1", + "league/flysystem-ftp": "^3.25.1", + "league/flysystem-path-prefixing": "^3.25.1", + "league/flysystem-read-only": "^3.25.1", + "league/flysystem-sftp-v3": "^3.25.1", + "mockery/mockery": "^1.6.10", + "orchestra/testbench-core": "^9.6", + "pda/pheanstalk": "^5.0.6", + "php-http/discovery": "^1.15", + "phpstan/phpstan": "^1.11.5", + "phpunit/phpunit": "^10.5.35|^11.3.6", + "predis/predis": "^2.3", "resend/resend-php": "^0.10.0", - "symfony/cache": "^7.0", - "symfony/http-client": "^7.0", - "symfony/psr-http-message-bridge": "^7.0" + "symfony/cache": "^7.0.3", + "symfony/http-client": "^7.0.3", + "symfony/psr-http-message-bridge": "^7.0.3", + "symfony/translation": "^7.0.3" }, "suggest": { "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", - "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.235.5).", + "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.322.9).", "brianium/paratest": "Required to run tests in parallel (^7.0|^8.0).", "ext-apcu": "Required to use the APC cache driver.", "ext-fileinfo": "Required to use the Filesystem class.", @@ -1561,20 +1741,20 @@ "ext-pcntl": "Required to use all features of the queue worker and console signal trapping.", "ext-pdo": "Required to use all database features.", "ext-posix": "Required to use all features of the queue worker.", - "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).", + "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0|^6.0).", "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).", "filp/whoops": "Required for friendly error pages in development (^2.14.3).", "laravel/tinker": "Required to use the tinker console command (^2.0).", - "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.0).", - "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.0).", - "league/flysystem-path-prefixing": "Required to use the scoped driver (^3.3).", - "league/flysystem-read-only": "Required to use read-only disks (^3.3)", - "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.0).", + "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.25.1).", + "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.25.1).", + "league/flysystem-path-prefixing": "Required to use the scoped driver (^3.25.1).", + "league/flysystem-read-only": "Required to use read-only disks (^3.25.1)", + "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.25.1).", "mockery/mockery": "Required to use mocking (^1.6).", - "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).", "pda/pheanstalk": "Required to use the beanstalk queue driver (^5.0).", + "php-http/discovery": "Required to use PSR-7 bridging features (^1.15).", "phpunit/phpunit": "Required to use assertions and run tests (^10.5|^11.0).", - "predis/predis": "Required to use the predis connector (^2.0.2).", + "predis/predis": "Required to use the predis connector (^2.3).", "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).", "resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0).", @@ -1593,10 +1773,13 @@ }, "autoload": { "files": [ + "src/Illuminate/Collections/functions.php", "src/Illuminate/Collections/helpers.php", "src/Illuminate/Events/functions.php", "src/Illuminate/Filesystem/functions.php", "src/Illuminate/Foundation/helpers.php", + "src/Illuminate/Log/functions.php", + "src/Illuminate/Support/functions.php", "src/Illuminate/Support/helpers.php" ], "psr-4": { @@ -1628,25 +1811,25 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2024-03-08T08:37:44+00:00" + "time": "2024-12-10T16:09:29+00:00" }, { "name": "laravel/prompts", - "version": "v0.1.16", + "version": "v0.3.2", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "ca6872ab6aec3ab61db3a61f83a6caf764ec7781" + "reference": "0e0535747c6b8d6d10adca8b68293cf4517abb0f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/ca6872ab6aec3ab61db3a61f83a6caf764ec7781", - "reference": "ca6872ab6aec3ab61db3a61f83a6caf764ec7781", + "url": "https://api.github.com/repos/laravel/prompts/zipball/0e0535747c6b8d6d10adca8b68293cf4517abb0f", + "reference": "0e0535747c6b8d6d10adca8b68293cf4517abb0f", "shasum": "" }, "require": { + "composer-runtime-api": "^2.2", "ext-mbstring": "*", - "illuminate/collections": "^10.0|^11.0", "php": "^8.1", "symfony/console": "^6.2|^7.0" }, @@ -1655,8 +1838,9 @@ "laravel/framework": ">=10.17.0 <10.25.0" }, "require-dev": { + "illuminate/collections": "^10.0|^11.0", "mockery/mockery": "^1.5", - "pestphp/pest": "^2.3", + "pestphp/pest": "^2.3|^3.4", "phpstan/phpstan": "^1.11", "phpstan/phpstan-mockery": "^1.1" }, @@ -1666,7 +1850,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "0.1.x-dev" + "dev-main": "0.3.x-dev" } }, "autoload": { @@ -1681,39 +1865,41 @@ "license": [ "MIT" ], + "description": "Add beautiful and user-friendly forms to your command-line applications.", "support": { "issues": "https://github.com/laravel/prompts/issues", - "source": "https://github.com/laravel/prompts/tree/v0.1.16" + "source": "https://github.com/laravel/prompts/tree/v0.3.2" }, - "time": "2024-02-21T19:25:27+00:00" + "time": "2024-11-12T14:59:47+00:00" }, { "name": "laravel/serializable-closure", - "version": "v1.3.3", + "version": "v2.0.0", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "3dbf8a8e914634c48d389c1234552666b3d43754" + "reference": "0d8d3d8086984996df86596a86dea60398093a81" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/3dbf8a8e914634c48d389c1234552666b3d43754", - "reference": "3dbf8a8e914634c48d389c1234552666b3d43754", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/0d8d3d8086984996df86596a86dea60398093a81", + "reference": "0d8d3d8086984996df86596a86dea60398093a81", "shasum": "" }, "require": { - "php": "^7.3|^8.0" + "php": "^8.1" }, "require-dev": { - "nesbot/carbon": "^2.61", - "pestphp/pest": "^1.21.3", - "phpstan/phpstan": "^1.8.2", - "symfony/var-dumper": "^5.4.11" + "illuminate/support": "^10.0|^11.0", + "nesbot/carbon": "^2.67|^3.0", + "pestphp/pest": "^2.36", + "phpstan/phpstan": "^2.0", + "symfony/var-dumper": "^6.2.0|^7.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-master": "2.x-dev" } }, "autoload": { @@ -1745,20 +1931,20 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2023-11-08T14:08:06+00:00" + "time": "2024-11-19T01:38:44+00:00" }, { "name": "laravel/tinker", - "version": "v2.9.0", + "version": "v2.10.0", "source": { "type": "git", "url": "https://github.com/laravel/tinker.git", - "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe" + "reference": "ba4d51eb56de7711b3a37d63aa0643e99a339ae5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/502e0fe3f0415d06d5db1f83a472f0f3b754bafe", - "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe", + "url": "https://api.github.com/repos/laravel/tinker/zipball/ba4d51eb56de7711b3a37d63aa0643e99a339ae5", + "reference": "ba4d51eb56de7711b3a37d63aa0643e99a339ae5", "shasum": "" }, "require": { @@ -1809,22 +1995,22 @@ ], "support": { "issues": "https://github.com/laravel/tinker/issues", - "source": "https://github.com/laravel/tinker/tree/v2.9.0" + "source": "https://github.com/laravel/tinker/tree/v2.10.0" }, - "time": "2024-01-04T16:10:04+00:00" + "time": "2024-09-23T13:32:56+00:00" }, { "name": "league/commonmark", - "version": "2.4.2", + "version": "2.6.0", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "91c24291965bd6d7c46c46a12ba7492f83b1cadf" + "reference": "d150f911e0079e90ae3c106734c93137c184f932" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/91c24291965bd6d7c46c46a12ba7492f83b1cadf", - "reference": "91c24291965bd6d7c46c46a12ba7492f83b1cadf", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/d150f911e0079e90ae3c106734c93137c184f932", + "reference": "d150f911e0079e90ae3c106734c93137c184f932", "shasum": "" }, "require": { @@ -1837,8 +2023,8 @@ }, "require-dev": { "cebe/markdown": "^1.0", - "commonmark/cmark": "0.30.3", - "commonmark/commonmark.js": "0.30.0", + "commonmark/cmark": "0.31.1", + "commonmark/commonmark.js": "0.31.1", "composer/package-versions-deprecated": "^1.8", "embed/embed": "^4.4", "erusev/parsedown": "^1.0", @@ -1849,8 +2035,9 @@ "phpstan/phpstan": "^1.8.2", "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0", "scrutinizer/ocular": "^1.8.1", - "symfony/finder": "^5.3 | ^6.0 || ^7.0", - "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 || ^7.0", + "symfony/finder": "^5.3 | ^6.0 | ^7.0", + "symfony/process": "^5.4 | ^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" }, @@ -1860,7 +2047,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "2.7-dev" } }, "autoload": { @@ -1917,7 +2104,7 @@ "type": "tidelift" } ], - "time": "2024-02-02T11:59:32+00:00" + "time": "2024-12-07T15:34:16+00:00" }, { "name": "league/config", @@ -2003,16 +2190,16 @@ }, { "name": "league/flysystem", - "version": "3.25.0", + "version": "3.29.1", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "4c44347133618cccd9b3df1729647a1577b4ad99" + "reference": "edc1bb7c86fab0776c3287dbd19b5fa278347319" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/4c44347133618cccd9b3df1729647a1577b4ad99", - "reference": "4c44347133618cccd9b3df1729647a1577b4ad99", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/edc1bb7c86fab0776c3287dbd19b5fa278347319", + "reference": "edc1bb7c86fab0776c3287dbd19b5fa278347319", "shasum": "" }, "require": { @@ -2036,10 +2223,13 @@ "composer/semver": "^3.0", "ext-fileinfo": "*", "ext-ftp": "*", + "ext-mongodb": "^1.3", "ext-zip": "*", "friendsofphp/php-cs-fixer": "^3.5", "google/cloud-storage": "^1.23", + "guzzlehttp/psr7": "^2.6", "microsoft/azure-storage-blob": "^1.1", + "mongodb/mongodb": "^1.2", "phpseclib/phpseclib": "^3.0.36", "phpstan/phpstan": "^1.10", "phpunit/phpunit": "^9.5.11|^10.0", @@ -2077,32 +2267,22 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/3.25.0" + "source": "https://github.com/thephpleague/flysystem/tree/3.29.1" }, - "funding": [ - { - "url": "https://ecologi.com/frankdejonge", - "type": "custom" - }, - { - "url": "https://github.com/frankdejonge", - "type": "github" - } - ], - "time": "2024-03-09T17:06:45+00:00" + "time": "2024-10-08T08:58:34+00:00" }, { "name": "league/flysystem-local", - "version": "3.23.1", + "version": "3.29.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-local.git", - "reference": "b884d2bf9b53bb4804a56d2df4902bb51e253f00" + "reference": "e0e8d52ce4b2ed154148453d321e97c8e931bd27" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/b884d2bf9b53bb4804a56d2df4902bb51e253f00", - "reference": "b884d2bf9b53bb4804a56d2df4902bb51e253f00", + "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/e0e8d52ce4b2ed154148453d321e97c8e931bd27", + "reference": "e0e8d52ce4b2ed154148453d321e97c8e931bd27", "shasum": "" }, "require": { @@ -2136,33 +2316,22 @@ "local" ], "support": { - "issues": "https://github.com/thephpleague/flysystem-local/issues", - "source": "https://github.com/thephpleague/flysystem-local/tree/3.23.1" + "source": "https://github.com/thephpleague/flysystem-local/tree/3.29.0" }, - "funding": [ - { - "url": "https://ecologi.com/frankdejonge", - "type": "custom" - }, - { - "url": "https://github.com/frankdejonge", - "type": "github" - } - ], - "time": "2024-01-26T18:25:23+00:00" + "time": "2024-08-09T21:24:39+00:00" }, { "name": "league/mime-type-detection", - "version": "1.15.0", + "version": "1.16.0", "source": { "type": "git", "url": "https://github.com/thephpleague/mime-type-detection.git", - "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301" + "reference": "2d6702ff215bf922936ccc1ad31007edc76451b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301", - "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/2d6702ff215bf922936ccc1ad31007edc76451b9", + "reference": "2d6702ff215bf922936ccc1ad31007edc76451b9", "shasum": "" }, "require": { @@ -2193,7 +2362,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.15.0" + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.16.0" }, "funding": [ { @@ -2205,73 +2374,48 @@ "type": "tidelift" } ], - "time": "2024-01-28T23:22:08+00:00" + "time": "2024-09-21T08:32:55+00:00" }, { - "name": "monolog/monolog", - "version": "3.5.0", + "name": "league/uri", + "version": "7.5.1", "source": { "type": "git", - "url": "https://github.com/Seldaek/monolog.git", - "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448" + "url": "https://github.com/thephpleague/uri.git", + "reference": "81fb5145d2644324614cc532b28efd0215bda430" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c915e2634718dbc8a4a15c61b0e62e7a44e14448", - "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448", + "url": "https://api.github.com/repos/thephpleague/uri/zipball/81fb5145d2644324614cc532b28efd0215bda430", + "reference": "81fb5145d2644324614cc532b28efd0215bda430", "shasum": "" }, "require": { - "php": ">=8.1", - "psr/log": "^2.0 || ^3.0" - }, - "provide": { - "psr/log-implementation": "3.0.0" + "league/uri-interfaces": "^7.5", + "php": "^8.1" }, - "require-dev": { - "aws/aws-sdk-php": "^3.0", - "doctrine/couchdb": "~1.0@dev", - "elasticsearch/elasticsearch": "^7 || ^8", - "ext-json": "*", - "graylog2/gelf-php": "^1.4.2 || ^2.0", - "guzzlehttp/guzzle": "^7.4.5", - "guzzlehttp/psr7": "^2.2", - "mongodb/mongodb": "^1.8", - "php-amqplib/php-amqplib": "~2.4 || ^3", - "phpstan/phpstan": "^1.9", - "phpstan/phpstan-deprecation-rules": "^1.0", - "phpstan/phpstan-strict-rules": "^1.4", - "phpunit/phpunit": "^10.1", - "predis/predis": "^1.1 || ^2", - "ruflin/elastica": "^7", - "symfony/mailer": "^5.4 || ^6", - "symfony/mime": "^5.4 || ^6" + "conflict": { + "league/uri-schemes": "^1.0" }, "suggest": { - "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", - "doctrine/couchdb": "Allow sending log messages to a CouchDB server", - "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", - "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", - "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", - "ext-mbstring": "Allow to work properly with unicode symbols", - "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", - "ext-openssl": "Required to send log messages using SSL", - "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", - "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", - "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", - "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", - "rollbar/rollbar": "Allow sending log messages to Rollbar", - "ruflin/elastica": "Allow sending log messages to an Elastic Search server" + "ext-bcmath": "to improve IPV4 host parsing", + "ext-fileinfo": "to create Data URI from file contennts", + "ext-gmp": "to improve IPV4 host parsing", + "ext-intl": "to handle IDN host with the best performance", + "jeremykendall/php-domain-parser": "to resolve Public Suffix and Top Level Domain", + "league/uri-components": "Needed to easily manipulate URI objects components", + "php-64bit": "to improve IPV4 host parsing", + "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.x-dev" + "dev-master": "7.x-dev" } }, "autoload": { "psr-4": { - "Monolog\\": "src/Monolog" + "League\\Uri\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -2280,95 +2424,84 @@ ], "authors": [ { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "https://seld.be" + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" } ], - "description": "Sends your logs to files, sockets, inboxes, databases and various web services", - "homepage": "https://github.com/Seldaek/monolog", + "description": "URI manipulation library", + "homepage": "https://uri.thephpleague.com", "keywords": [ - "log", - "logging", - "psr-3" + "data-uri", + "file-uri", + "ftp", + "hostname", + "http", + "https", + "middleware", + "parse_str", + "parse_url", + "psr-7", + "query-string", + "querystring", + "rfc3986", + "rfc3987", + "rfc6570", + "uri", + "uri-template", + "url", + "ws" ], "support": { - "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.5.0" + "docs": "https://uri.thephpleague.com", + "forum": "https://thephpleague.slack.com", + "issues": "https://github.com/thephpleague/uri-src/issues", + "source": "https://github.com/thephpleague/uri/tree/7.5.1" }, "funding": [ { - "url": "https://github.com/Seldaek", + "url": "https://github.com/sponsors/nyamsprod", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", - "type": "tidelift" } ], - "time": "2023-10-27T15:32:31+00:00" + "time": "2024-12-08T08:40:02+00:00" }, { - "name": "nesbot/carbon", - "version": "3.0.2", + "name": "league/uri-interfaces", + "version": "7.5.0", "source": { "type": "git", - "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "cf30cfceac9693bdb339ffb51f091e6039bdf10d" + "url": "https://github.com/thephpleague/uri-interfaces.git", + "reference": "08cfc6c4f3d811584fb09c37e2849e6a7f9b0742" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/cf30cfceac9693bdb339ffb51f091e6039bdf10d", - "reference": "cf30cfceac9693bdb339ffb51f091e6039bdf10d", + "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/08cfc6c4f3d811584fb09c37e2849e6a7f9b0742", + "reference": "08cfc6c4f3d811584fb09c37e2849e6a7f9b0742", "shasum": "" }, "require": { - "carbonphp/carbon-doctrine-types": "*", - "ext-json": "*", + "ext-filter": "*", "php": "^8.1", - "psr/clock": "^1.0", - "symfony/clock": "^6.3 || ^7.0", - "symfony/polyfill-mbstring": "^1.0", - "symfony/translation": "^4.4.18 || ^5.2.1|| ^6.0 || ^7.0" - }, - "provide": { - "psr/clock-implementation": "1.0" + "psr/http-factory": "^1", + "psr/http-message": "^1.1 || ^2.0" }, - "require-dev": { - "doctrine/dbal": "^3.6.3 || ^4.0", - "doctrine/orm": "^2.15.2 || ^3.0", - "friendsofphp/php-cs-fixer": "^3.18.0", - "kylekatarnls/multi-tester": "^2.2.0", - "ondrejmirtes/better-reflection": "^6.11.0.0", - "phpmd/phpmd": "^2.13.0", - "phpstan/extension-installer": "^1.3.0", - "phpstan/phpstan": "^1.10.20", - "phpunit/phpunit": "^10.2.2", - "squizlabs/php_codesniffer": "^3.7.2" + "suggest": { + "ext-bcmath": "to improve IPV4 host parsing", + "ext-gmp": "to improve IPV4 host parsing", + "ext-intl": "to handle IDN host with the best performance", + "php-64bit": "to improve IPV4 host parsing", + "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" }, - "bin": [ - "bin/carbon" - ], "type": "library", "extra": { "branch-alias": { - "dev-master": "3.x-dev", - "dev-2.x": "2.x-dev" - }, - "laravel": { - "providers": [ - "Carbon\\Laravel\\ServiceProvider" - ] - }, - "phpstan": { - "includes": [ - "extension.neon" - ] + "dev-master": "7.x-dev" } }, "autoload": { "psr-4": { - "Carbon\\": "src/Carbon/" + "League\\Uri\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -2377,19 +2510,298 @@ ], "authors": [ { - "name": "Brian Nesbitt", - "email": "brian@nesbot.com", - "homepage": "https://markido.com" - }, - { - "name": "kylekatarnls", - "homepage": "https://github.com/kylekatarnls" + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" } ], - "description": "An API extension for DateTime that supports 281 different languages.", - "homepage": "https://carbon.nesbot.com", + "description": "Common interfaces and classes for URI representation and interaction", + "homepage": "https://uri.thephpleague.com", "keywords": [ - "date", + "data-uri", + "file-uri", + "ftp", + "hostname", + "http", + "https", + "parse_str", + "parse_url", + "psr-7", + "query-string", + "querystring", + "rfc3986", + "rfc3987", + "rfc6570", + "uri", + "url", + "ws" + ], + "support": { + "docs": "https://uri.thephpleague.com", + "forum": "https://thephpleague.slack.com", + "issues": "https://github.com/thephpleague/uri-src/issues", + "source": "https://github.com/thephpleague/uri-interfaces/tree/7.5.0" + }, + "funding": [ + { + "url": "https://github.com/sponsors/nyamsprod", + "type": "github" + } + ], + "time": "2024-12-08T08:18:47+00:00" + }, + { + "name": "masterminds/html5", + "version": "2.9.0", + "source": { + "type": "git", + "url": "https://github.com/Masterminds/html5-php.git", + "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f5ac2c0b0a2eefca70b2ce32a5809992227e75a6", + "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8 || ^9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Masterminds\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matt Butcher", + "email": "technosophos@gmail.com" + }, + { + "name": "Matt Farina", + "email": "matt@mattfarina.com" + }, + { + "name": "Asmir Mustafic", + "email": "goetas@gmail.com" + } + ], + "description": "An HTML5 parser and serializer.", + "homepage": "http://masterminds.github.io/html5-php", + "keywords": [ + "HTML5", + "dom", + "html", + "parser", + "querypath", + "serializer", + "xml" + ], + "support": { + "issues": "https://github.com/Masterminds/html5-php/issues", + "source": "https://github.com/Masterminds/html5-php/tree/2.9.0" + }, + "time": "2024-03-31T07:05:07+00:00" + }, + { + "name": "monolog/monolog", + "version": "3.8.1", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "aef6ee73a77a66e404dd6540934a9ef1b3c855b4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/aef6ee73a77a66e404dd6540934a9ef1b3c855b4", + "reference": "aef6ee73a77a66e404dd6540934a9ef1b3c855b4", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^2.0 || ^3.0" + }, + "provide": { + "psr/log-implementation": "3.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^3.0", + "doctrine/couchdb": "~1.0@dev", + "elasticsearch/elasticsearch": "^7 || ^8", + "ext-json": "*", + "graylog2/gelf-php": "^1.4.2 || ^2.0", + "guzzlehttp/guzzle": "^7.4.5", + "guzzlehttp/psr7": "^2.2", + "mongodb/mongodb": "^1.8", + "php-amqplib/php-amqplib": "~2.4 || ^3", + "php-console/php-console": "^3.1.8", + "phpstan/phpstan": "^2", + "phpstan/phpstan-deprecation-rules": "^2", + "phpstan/phpstan-strict-rules": "^2", + "phpunit/phpunit": "^10.5.17 || ^11.0.7", + "predis/predis": "^1.1 || ^2", + "rollbar/rollbar": "^4.0", + "ruflin/elastica": "^7 || ^8", + "symfony/mailer": "^5.4 || ^6", + "symfony/mime": "^5.4 || ^6" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", + "ext-mbstring": "Allow to work properly with unicode symbols", + "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", + "ext-openssl": "Required to send log messages using SSL", + "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "https://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "support": { + "issues": "https://github.com/Seldaek/monolog/issues", + "source": "https://github.com/Seldaek/monolog/tree/3.8.1" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], + "time": "2024-12-05T17:15:07+00:00" + }, + { + "name": "nesbot/carbon", + "version": "3.8.2", + "source": { + "type": "git", + "url": "https://github.com/briannesbitt/Carbon.git", + "reference": "e1268cdbc486d97ce23fef2c666dc3c6b6de9947" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/e1268cdbc486d97ce23fef2c666dc3c6b6de9947", + "reference": "e1268cdbc486d97ce23fef2c666dc3c6b6de9947", + "shasum": "" + }, + "require": { + "carbonphp/carbon-doctrine-types": "<100.0", + "ext-json": "*", + "php": "^8.1", + "psr/clock": "^1.0", + "symfony/clock": "^6.3 || ^7.0", + "symfony/polyfill-mbstring": "^1.0", + "symfony/translation": "^4.4.18 || ^5.2.1|| ^6.0 || ^7.0" + }, + "provide": { + "psr/clock-implementation": "1.0" + }, + "require-dev": { + "doctrine/dbal": "^3.6.3 || ^4.0", + "doctrine/orm": "^2.15.2 || ^3.0", + "friendsofphp/php-cs-fixer": "^3.57.2", + "kylekatarnls/multi-tester": "^2.5.3", + "ondrejmirtes/better-reflection": "^6.25.0.4", + "phpmd/phpmd": "^2.15.0", + "phpstan/extension-installer": "^1.3.1", + "phpstan/phpstan": "^1.11.2", + "phpunit/phpunit": "^10.5.20", + "squizlabs/php_codesniffer": "^3.9.0" + }, + "bin": [ + "bin/carbon" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev", + "dev-2.x": "2.x-dev" + }, + "laravel": { + "providers": [ + "Carbon\\Laravel\\ServiceProvider" + ] + }, + "phpstan": { + "includes": [ + "extension.neon" + ] + } + }, + "autoload": { + "psr-4": { + "Carbon\\": "src/Carbon/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Brian Nesbitt", + "email": "brian@nesbot.com", + "homepage": "https://markido.com" + }, + { + "name": "kylekatarnls", + "homepage": "https://github.com/kylekatarnls" + } + ], + "description": "An API extension for DateTime that supports 281 different languages.", + "homepage": "https://carbon.nesbot.com", + "keywords": [ + "date", "datetime", "time" ], @@ -2412,28 +2824,28 @@ "type": "tidelift" } ], - "time": "2024-02-06T09:28:31+00:00" + "time": "2024-11-07T17:46:48+00:00" }, { "name": "nette/schema", - "version": "v1.3.0", + "version": "v1.3.2", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188" + "reference": "da801d52f0354f70a638673c4a0f04e16529431d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/a6d3a6d1f545f01ef38e60f375d1cf1f4de98188", - "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188", + "url": "https://api.github.com/repos/nette/schema/zipball/da801d52f0354f70a638673c4a0f04e16529431d", + "reference": "da801d52f0354f70a638673c4a0f04e16529431d", "shasum": "" }, "require": { "nette/utils": "^4.0", - "php": "8.1 - 8.3" + "php": "8.1 - 8.4" }, "require-dev": { - "nette/tester": "^2.4", + "nette/tester": "^2.5.2", "phpstan/phpstan-nette": "^1.0", "tracy/tracy": "^2.8" }, @@ -2472,26 +2884,26 @@ ], "support": { "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.3.0" + "source": "https://github.com/nette/schema/tree/v1.3.2" }, - "time": "2023-12-11T11:54:22+00:00" + "time": "2024-10-06T23:10:23+00:00" }, { "name": "nette/utils", - "version": "v4.0.4", + "version": "v4.0.5", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218" + "reference": "736c567e257dbe0fcf6ce81b4d6dbe05c6899f96" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/d3ad0aa3b9f934602cb3e3902ebccf10be34d218", - "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218", + "url": "https://api.github.com/repos/nette/utils/zipball/736c567e257dbe0fcf6ce81b4d6dbe05c6899f96", + "reference": "736c567e257dbe0fcf6ce81b4d6dbe05c6899f96", "shasum": "" }, "require": { - "php": ">=8.0 <8.4" + "php": "8.0 - 8.4" }, "conflict": { "nette/finder": "<3", @@ -2558,22 +2970,22 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.0.4" + "source": "https://github.com/nette/utils/tree/v4.0.5" }, - "time": "2024-01-17T16:50:36+00:00" + "time": "2024-08-07T15:39:19+00:00" }, { "name": "nikic/php-parser", - "version": "v5.0.2", + "version": "v5.3.1", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13" + "reference": "8eea230464783aa9671db8eea6f8c6ac5285794b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/139676794dc1e9231bf7bcd123cfc0c99182cb13", - "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/8eea230464783aa9671db8eea6f8c6ac5285794b", + "reference": "8eea230464783aa9671db8eea6f8c6ac5285794b", "shasum": "" }, "require": { @@ -2584,7 +2996,7 @@ }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^9.0" }, "bin": [ "bin/php-parse" @@ -2616,38 +3028,37 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.2" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.3.1" }, - "time": "2024-03-05T20:51:40+00:00" + "time": "2024-10-08T18:51:32+00:00" }, { "name": "nunomaduro/termwind", - "version": "v2.0.1", + "version": "v2.3.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/termwind.git", - "reference": "58c4c58cf23df7f498daeb97092e34f5259feb6a" + "reference": "52915afe6a1044e8b9cee1bcff836fb63acf9cda" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/58c4c58cf23df7f498daeb97092e34f5259feb6a", - "reference": "58c4c58cf23df7f498daeb97092e34f5259feb6a", + "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/52915afe6a1044e8b9cee1bcff836fb63acf9cda", + "reference": "52915afe6a1044e8b9cee1bcff836fb63acf9cda", "shasum": "" }, "require": { "ext-mbstring": "*", "php": "^8.2", - "symfony/console": "^7.0.4" + "symfony/console": "^7.1.8" }, "require-dev": { - "ergebnis/phpstan-rules": "^2.2.0", - "illuminate/console": "^11.0.0", - "laravel/pint": "^1.14.0", - "mockery/mockery": "^1.6.7", - "pestphp/pest": "^2.34.1", - "phpstan/phpstan": "^1.10.59", - "phpstan/phpstan-strict-rules": "^1.5.2", - "symfony/var-dumper": "^7.0.4", + "illuminate/console": "^11.33.2", + "laravel/pint": "^1.18.2", + "mockery/mockery": "^1.6.12", + "pestphp/pest": "^2.36.0", + "phpstan/phpstan": "^1.12.11", + "phpstan/phpstan-strict-rules": "^1.6.1", + "symfony/var-dumper": "^7.1.8", "thecodingmachine/phpstan-strict-rules": "^1.0.0" }, "type": "library", @@ -2690,7 +3101,7 @@ ], "support": { "issues": "https://github.com/nunomaduro/termwind/issues", - "source": "https://github.com/nunomaduro/termwind/tree/v2.0.1" + "source": "https://github.com/nunomaduro/termwind/tree/v2.3.0" }, "funding": [ { @@ -2706,28 +3117,88 @@ "type": "github" } ], - "time": "2024-03-06T16:17:14+00:00" + "time": "2024-11-21T10:39:51+00:00" + }, + { + "name": "owenvoke/blade-fontawesome", + "version": "v2.8.0", + "source": { + "type": "git", + "url": "https://github.com/owenvoke/blade-fontawesome.git", + "reference": "eaac6c31336b2667fdb1f4fd66b49181124a6ec4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/owenvoke/blade-fontawesome/zipball/eaac6c31336b2667fdb1f4fd66b49181124a6ec4", + "reference": "eaac6c31336b2667fdb1f4fd66b49181124a6ec4", + "shasum": "" + }, + "require": { + "blade-ui-kit/blade-icons": "^1.5", + "illuminate/support": "^10.34|^11.0", + "php": "^8.1" + }, + "require-dev": { + "laravel/pint": "^1.13", + "orchestra/testbench": "^8.12|^9.0", + "pestphp/pest": "^2.26", + "phpstan/phpstan": "^1.10", + "symfony/var-dumper": "^6.3" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "OwenVoke\\BladeFontAwesome\\BladeFontAwesomeServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "OwenVoke\\BladeFontAwesome\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A package to easily make use of Font Awesome in your Laravel Blade views", + "support": { + "issues": "https://github.com/owenvoke/blade-fontawesome/issues", + "source": "https://github.com/owenvoke/blade-fontawesome/tree/v2.8.0" + }, + "funding": [ + { + "url": "https://ecologi.com/owenvoke?gift-trees", + "type": "custom" + }, + { + "url": "https://github.com/owenvoke", + "type": "github" + } + ], + "time": "2024-11-25T09:18:49+00:00" }, { "name": "paragonie/constant_time_encoding", - "version": "v2.6.3", + "version": "v3.0.0", "source": { "type": "git", "url": "https://github.com/paragonie/constant_time_encoding.git", - "reference": "58c3f47f650c94ec05a151692652a868995d2938" + "reference": "df1e7fde177501eee2037dd159cf04f5f301a512" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/58c3f47f650c94ec05a151692652a868995d2938", - "reference": "58c3f47f650c94ec05a151692652a868995d2938", + "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/df1e7fde177501eee2037dd159cf04f5f301a512", + "reference": "df1e7fde177501eee2037dd159cf04f5f301a512", "shasum": "" }, "require": { - "php": "^7|^8" + "php": "^8" }, "require-dev": { - "phpunit/phpunit": "^6|^7|^8|^9", - "vimeo/psalm": "^1|^2|^3|^4" + "phpunit/phpunit": "^9", + "vimeo/psalm": "^4|^5" }, "type": "library", "autoload": { @@ -2773,20 +3244,20 @@ "issues": "https://github.com/paragonie/constant_time_encoding/issues", "source": "https://github.com/paragonie/constant_time_encoding" }, - "time": "2022-06-14T06:56:20+00:00" + "time": "2024-05-08T12:36:18+00:00" }, { "name": "phpoption/phpoption", - "version": "1.9.2", + "version": "1.9.3", "source": { "type": "git", "url": "https://github.com/schmittjoh/php-option.git", - "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820" + "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/80735db690fe4fc5c76dfa7f9b770634285fa820", - "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/e3fac8b24f56113f7cb96af14958c0dd16330f54", + "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54", "shasum": "" }, "require": { @@ -2794,13 +3265,13 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" + "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28" }, "type": "library", "extra": { "bamarni-bin": { "bin-links": true, - "forward-command": true + "forward-command": false }, "branch-alias": { "dev-master": "1.9-dev" @@ -2836,7 +3307,7 @@ ], "support": { "issues": "https://github.com/schmittjoh/php-option/issues", - "source": "https://github.com/schmittjoh/php-option/tree/1.9.2" + "source": "https://github.com/schmittjoh/php-option/tree/1.9.3" }, "funding": [ { @@ -2848,28 +3319,28 @@ "type": "tidelift" } ], - "time": "2023-11-12T21:59:55+00:00" + "time": "2024-07-20T21:41:07+00:00" }, { "name": "pragmarx/google2fa", - "version": "v8.0.1", + "version": "v8.0.3", "source": { "type": "git", "url": "https://github.com/antonioribeiro/google2fa.git", - "reference": "80c3d801b31fe165f8fe99ea085e0a37834e1be3" + "reference": "6f8d87ebd5afbf7790bde1ffc7579c7c705e0fad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/antonioribeiro/google2fa/zipball/80c3d801b31fe165f8fe99ea085e0a37834e1be3", - "reference": "80c3d801b31fe165f8fe99ea085e0a37834e1be3", + "url": "https://api.github.com/repos/antonioribeiro/google2fa/zipball/6f8d87ebd5afbf7790bde1ffc7579c7c705e0fad", + "reference": "6f8d87ebd5afbf7790bde1ffc7579c7c705e0fad", "shasum": "" }, "require": { - "paragonie/constant_time_encoding": "^1.0|^2.0", + "paragonie/constant_time_encoding": "^1.0|^2.0|^3.0", "php": "^7.1|^8.0" }, "require-dev": { - "phpstan/phpstan": "^0.12.18", + "phpstan/phpstan": "^1.9", "phpunit/phpunit": "^7.5.15|^8.5|^9.0" }, "type": "library", @@ -2898,9 +3369,9 @@ ], "support": { "issues": "https://github.com/antonioribeiro/google2fa/issues", - "source": "https://github.com/antonioribeiro/google2fa/tree/v8.0.1" + "source": "https://github.com/antonioribeiro/google2fa/tree/v8.0.3" }, - "time": "2022-06-13T21:57:56+00:00" + "time": "2024-09-05T11:56:40+00:00" }, { "name": "psr/clock", @@ -3107,20 +3578,20 @@ }, { "name": "psr/http-factory", - "version": "1.0.2", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/php-fig/http-factory.git", - "reference": "e616d01114759c4c489f93b099585439f795fe35" + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35", - "reference": "e616d01114759c4c489f93b099585439f795fe35", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", "shasum": "" }, "require": { - "php": ">=7.0.0", + "php": ">=7.1", "psr/http-message": "^1.0 || ^2.0" }, "type": "library", @@ -3144,7 +3615,7 @@ "homepage": "https://www.php-fig.org/" } ], - "description": "Common interfaces for PSR-7 HTTP message factories", + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", "keywords": [ "factory", "http", @@ -3156,9 +3627,9 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-factory/tree/1.0.2" + "source": "https://github.com/php-fig/http-factory" }, - "time": "2023-04-10T20:10:41+00:00" + "time": "2024-04-15T12:06:14+00:00" }, { "name": "psr/http-message", @@ -3215,16 +3686,16 @@ }, { "name": "psr/log", - "version": "3.0.0", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", "shasum": "" }, "require": { @@ -3259,9 +3730,9 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/3.0.0" + "source": "https://github.com/php-fig/log/tree/3.0.2" }, - "time": "2021-07-14T16:46:02+00:00" + "time": "2024-09-11T13:17:53+00:00" }, { "name": "psr/simple-cache", @@ -3316,16 +3787,16 @@ }, { "name": "psy/psysh", - "version": "v0.12.0", + "version": "v0.12.7", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "750bf031a48fd07c673dbe3f11f72362ea306d0d" + "reference": "d73fa3c74918ef4522bb8a3bf9cab39161c4b57c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/750bf031a48fd07c673dbe3f11f72362ea306d0d", - "reference": "750bf031a48fd07c673dbe3f11f72362ea306d0d", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/d73fa3c74918ef4522bb8a3bf9cab39161c4b57c", + "reference": "d73fa3c74918ef4522bb8a3bf9cab39161c4b57c", "shasum": "" }, "require": { @@ -3352,12 +3823,12 @@ ], "type": "library", "extra": { - "branch-alias": { - "dev-main": "0.12.x-dev" - }, "bamarni-bin": { "bin-links": false, "forward-command": false + }, + "branch-alias": { + "dev-main": "0.12.x-dev" } }, "autoload": { @@ -3389,9 +3860,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.12.0" + "source": "https://github.com/bobthecow/psysh/tree/v0.12.7" }, - "time": "2023-12-20T15:28:09+00:00" + "time": "2024-12-10T01:58:33+00:00" }, { "name": "ralouphie/getallheaders", @@ -3528,20 +3999,20 @@ }, { "name": "ramsey/uuid", - "version": "4.7.5", + "version": "4.7.6", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e" + "reference": "91039bc1faa45ba123c4328958e620d382ec7088" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e", - "reference": "5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/91039bc1faa45ba123c4328958e620d382ec7088", + "reference": "91039bc1faa45ba123c4328958e620d382ec7088", "shasum": "" }, "require": { - "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11", + "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12", "ext-json": "*", "php": "^8.0", "ramsey/collection": "^1.2 || ^2.0" @@ -3604,7 +4075,7 @@ ], "support": { "issues": "https://github.com/ramsey/uuid/issues", - "source": "https://github.com/ramsey/uuid/tree/4.7.5" + "source": "https://github.com/ramsey/uuid/tree/4.7.6" }, "funding": [ { @@ -3616,20 +4087,20 @@ "type": "tidelift" } ], - "time": "2023-11-08T05:53:05+00:00" + "time": "2024-04-27T21:32:50+00:00" }, { "name": "spatie/image-optimizer", - "version": "1.7.2", + "version": "1.8.0", "source": { "type": "git", "url": "https://github.com/spatie/image-optimizer.git", - "reference": "62f7463483d1bd975f6f06025d89d42a29608fe1" + "reference": "4fd22035e81d98fffced65a8c20d9ec4daa9671c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/image-optimizer/zipball/62f7463483d1bd975f6f06025d89d42a29608fe1", - "reference": "62f7463483d1bd975f6f06025d89d42a29608fe1", + "url": "https://api.github.com/repos/spatie/image-optimizer/zipball/4fd22035e81d98fffced65a8c20d9ec4daa9671c", + "reference": "4fd22035e81d98fffced65a8c20d9ec4daa9671c", "shasum": "" }, "require": { @@ -3669,22 +4140,22 @@ ], "support": { "issues": "https://github.com/spatie/image-optimizer/issues", - "source": "https://github.com/spatie/image-optimizer/tree/1.7.2" + "source": "https://github.com/spatie/image-optimizer/tree/1.8.0" }, - "time": "2023-11-03T10:08:02+00:00" + "time": "2024-11-04T08:24:54+00:00" }, { "name": "spatie/laravel-package-tools", - "version": "1.16.3", + "version": "1.17.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-package-tools.git", - "reference": "59db18c2e20d49a0b6d447bb1c654f6c123beb9e" + "reference": "9ab30fd24f677e5aa370ea4cf6b41c517d16cf85" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/59db18c2e20d49a0b6d447bb1c654f6c123beb9e", - "reference": "59db18c2e20d49a0b6d447bb1c654f6c123beb9e", + "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/9ab30fd24f677e5aa370ea4cf6b41c517d16cf85", + "reference": "9ab30fd24f677e5aa370ea4cf6b41c517d16cf85", "shasum": "" }, "require": { @@ -3693,10 +4164,10 @@ }, "require-dev": { "mockery/mockery": "^1.5", - "orchestra/testbench": "^7.7|^8.0", - "pestphp/pest": "^1.22", - "phpunit/phpunit": "^9.5.24", - "spatie/pest-plugin-test-time": "^1.1" + "orchestra/testbench": "^7.7|^8.0|^9.0", + "pestphp/pest": "^1.22|^2", + "phpunit/phpunit": "^9.5.24|^10.5", + "spatie/pest-plugin-test-time": "^1.1|^2.2" }, "type": "library", "autoload": { @@ -3723,7 +4194,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-package-tools/issues", - "source": "https://github.com/spatie/laravel-package-tools/tree/1.16.3" + "source": "https://github.com/spatie/laravel-package-tools/tree/1.17.0" }, "funding": [ { @@ -3731,20 +4202,20 @@ "type": "github" } ], - "time": "2024-03-07T07:35:57+00:00" + "time": "2024-12-09T16:29:14+00:00" }, { "name": "spatie/laravel-translatable", - "version": "6.6.2", + "version": "6.9.2", "source": { "type": "git", "url": "https://github.com/spatie/laravel-translatable.git", - "reference": "529b4e89ad0b0982d9c635696260661d1cf2612c" + "reference": "a7c6aa171bd252dfef7729788a050a7346f83a5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-translatable/zipball/529b4e89ad0b0982d9c635696260661d1cf2612c", - "reference": "529b4e89ad0b0982d9c635696260661d1cf2612c", + "url": "https://api.github.com/repos/spatie/laravel-translatable/zipball/a7c6aa171bd252dfef7729788a050a7346f83a5e", + "reference": "a7c6aa171bd252dfef7729788a050a7346f83a5e", "shasum": "" }, "require": { @@ -3754,19 +4225,20 @@ "spatie/laravel-package-tools": "^1.11" }, "require-dev": { + "friendsofphp/php-cs-fixer": "^3.64", "mockery/mockery": "^1.4", "orchestra/testbench": "^7.0|^8.0|^9.0", "pestphp/pest": "^1.20|^2.0" }, "type": "library", "extra": { + "aliases": { + "Translatable": "Spatie\\Translatable\\Facades\\Translatable" + }, "laravel": { "providers": [ "Spatie\\Translatable\\TranslatableServiceProvider" ] - }, - "aliases": { - "Translatable": "Spatie\\Translatable\\Facades\\Translatable" } }, "autoload": { @@ -3805,7 +4277,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-translatable/issues", - "source": "https://github.com/spatie/laravel-translatable/tree/6.6.2" + "source": "https://github.com/spatie/laravel-translatable/tree/6.9.2" }, "funding": [ { @@ -3813,20 +4285,20 @@ "type": "github" } ], - "time": "2024-03-01T10:24:53+00:00" + "time": "2024-12-11T09:51:14+00:00" }, { "name": "symfony/clock", - "version": "v7.0.5", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/clock.git", - "reference": "8b9d08887353d627d5f6c3bf3373b398b49051c2" + "reference": "b81435fbd6648ea425d1ee96a2d8e68f4ceacd24" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/clock/zipball/8b9d08887353d627d5f6c3bf3373b398b49051c2", - "reference": "8b9d08887353d627d5f6c3bf3373b398b49051c2", + "url": "https://api.github.com/repos/symfony/clock/zipball/b81435fbd6648ea425d1ee96a2d8e68f4ceacd24", + "reference": "b81435fbd6648ea425d1ee96a2d8e68f4ceacd24", "shasum": "" }, "require": { @@ -3871,7 +4343,7 @@ "time" ], "support": { - "source": "https://github.com/symfony/clock/tree/v7.0.5" + "source": "https://github.com/symfony/clock/tree/v7.2.0" }, "funding": [ { @@ -3887,20 +4359,20 @@ "type": "tidelift" } ], - "time": "2024-03-02T12:46:12+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/console", - "version": "v7.0.4", + "version": "v7.2.1", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "6b099f3306f7c9c2d2786ed736d0026b2903205f" + "reference": "fefcc18c0f5d0efe3ab3152f15857298868dc2c3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/6b099f3306f7c9c2d2786ed736d0026b2903205f", - "reference": "6b099f3306f7c9c2d2786ed736d0026b2903205f", + "url": "https://api.github.com/repos/symfony/console/zipball/fefcc18c0f5d0efe3ab3152f15857298868dc2c3", + "reference": "fefcc18c0f5d0efe3ab3152f15857298868dc2c3", "shasum": "" }, "require": { @@ -3964,7 +4436,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.0.4" + "source": "https://github.com/symfony/console/tree/v7.2.1" }, "funding": [ { @@ -3980,20 +4452,20 @@ "type": "tidelift" } ], - "time": "2024-02-22T20:27:20+00:00" + "time": "2024-12-11T03:49:26+00:00" }, { "name": "symfony/css-selector", - "version": "v7.0.3", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "ec60a4edf94e63b0556b6a0888548bb400a3a3be" + "reference": "601a5ce9aaad7bf10797e3663faefce9e26c24e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/ec60a4edf94e63b0556b6a0888548bb400a3a3be", - "reference": "ec60a4edf94e63b0556b6a0888548bb400a3a3be", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/601a5ce9aaad7bf10797e3663faefce9e26c24e2", + "reference": "601a5ce9aaad7bf10797e3663faefce9e26c24e2", "shasum": "" }, "require": { @@ -4029,7 +4501,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v7.0.3" + "source": "https://github.com/symfony/css-selector/tree/v7.2.0" }, "funding": [ { @@ -4045,20 +4517,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.4.0", + "version": "v3.5.1", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" + "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf", - "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", + "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", "shasum": "" }, "require": { @@ -4067,7 +4539,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.4-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -4096,7 +4568,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1" }, "funding": [ { @@ -4112,20 +4584,20 @@ "type": "tidelift" } ], - "time": "2023-05-23T14:45:45+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/error-handler", - "version": "v7.0.4", + "version": "v7.2.1", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "677b24759decff69e65b1e9d1471d90f95ced880" + "reference": "6150b89186573046167796fa5f3f76601d5145f8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/677b24759decff69e65b1e9d1471d90f95ced880", - "reference": "677b24759decff69e65b1e9d1471d90f95ced880", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/6150b89186573046167796fa5f3f76601d5145f8", + "reference": "6150b89186573046167796fa5f3f76601d5145f8", "shasum": "" }, "require": { @@ -4171,7 +4643,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/v7.0.4" + "source": "https://github.com/symfony/error-handler/tree/v7.2.1" }, "funding": [ { @@ -4187,20 +4659,20 @@ "type": "tidelift" } ], - "time": "2024-02-22T20:27:20+00:00" + "time": "2024-12-07T08:50:44+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v7.0.3", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "834c28d533dd0636f910909d01b9ff45cc094b5e" + "reference": "910c5db85a5356d0fea57680defec4e99eb9c8c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/834c28d533dd0636f910909d01b9ff45cc094b5e", - "reference": "834c28d533dd0636f910909d01b9ff45cc094b5e", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/910c5db85a5356d0fea57680defec4e99eb9c8c1", + "reference": "910c5db85a5356d0fea57680defec4e99eb9c8c1", "shasum": "" }, "require": { @@ -4251,7 +4723,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.3" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.2.0" }, "funding": [ { @@ -4267,20 +4739,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.4.0", + "version": "v3.5.1", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "a76aed96a42d2b521153fb382d418e30d18b59df" + "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df", - "reference": "a76aed96a42d2b521153fb382d418e30d18b59df", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7642f5e970b672283b7823222ae8ef8bbc160b9f", + "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f", "shasum": "" }, "require": { @@ -4290,7 +4762,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.4-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -4327,7 +4799,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.4.0" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.1" }, "funding": [ { @@ -4343,20 +4815,20 @@ "type": "tidelift" } ], - "time": "2023-05-23T14:45:45+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/finder", - "version": "v7.0.0", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "6e5688d69f7cfc4ed4a511e96007e06c2d34ce56" + "reference": "6de263e5868b9a137602dd1e33e4d48bfae99c49" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/6e5688d69f7cfc4ed4a511e96007e06c2d34ce56", - "reference": "6e5688d69f7cfc4ed4a511e96007e06c2d34ce56", + "url": "https://api.github.com/repos/symfony/finder/zipball/6de263e5868b9a137602dd1e33e4d48bfae99c49", + "reference": "6de263e5868b9a137602dd1e33e4d48bfae99c49", "shasum": "" }, "require": { @@ -4391,7 +4863,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.0.0" + "source": "https://github.com/symfony/finder/tree/v7.2.0" }, "funding": [ { @@ -4407,35 +4879,36 @@ "type": "tidelift" } ], - "time": "2023-10-31T17:59:56+00:00" + "time": "2024-10-23T06:56:12+00:00" }, { "name": "symfony/http-foundation", - "version": "v7.0.4", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "439fdfdd344943254b1ef6278613e79040548045" + "reference": "e88a66c3997859532bc2ddd6dd8f35aba2711744" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/439fdfdd344943254b1ef6278613e79040548045", - "reference": "439fdfdd344943254b1ef6278613e79040548045", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e88a66c3997859532bc2ddd6dd8f35aba2711744", + "reference": "e88a66c3997859532bc2ddd6dd8f35aba2711744", "shasum": "" }, "require": { "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3.0", "symfony/polyfill-mbstring": "~1.1", "symfony/polyfill-php83": "^1.27" }, "conflict": { "doctrine/dbal": "<3.6", - "symfony/cache": "<6.4" + "symfony/cache": "<6.4.12|>=7.0,<7.1.5" }, "require-dev": { "doctrine/dbal": "^3.6|^4", "predis/predis": "^1.1|^2.0", - "symfony/cache": "^6.4|^7.0", + "symfony/cache": "^6.4.12|^7.1.5", "symfony/dependency-injection": "^6.4|^7.0", "symfony/expression-language": "^6.4|^7.0", "symfony/http-kernel": "^6.4|^7.0", @@ -4468,7 +4941,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v7.0.4" + "source": "https://github.com/symfony/http-foundation/tree/v7.2.0" }, "funding": [ { @@ -4484,25 +4957,26 @@ "type": "tidelift" } ], - "time": "2024-02-08T19:22:56+00:00" + "time": "2024-11-13T18:58:46+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.0.5", + "version": "v7.2.1", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "37c24ca28f65e3121a68f3dd4daeb36fb1fa2a72" + "reference": "d8ae58eecae44c8e66833e76cc50a4ad3c002d97" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/37c24ca28f65e3121a68f3dd4daeb36fb1fa2a72", - "reference": "37c24ca28f65e3121a68f3dd4daeb36fb1fa2a72", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/d8ae58eecae44c8e66833e76cc50a4ad3c002d97", + "reference": "d8ae58eecae44c8e66833e76cc50a4ad3c002d97", "shasum": "" }, "require": { "php": ">=8.2", "psr/log": "^1|^2|^3", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/error-handler": "^6.4|^7.0", "symfony/event-dispatcher": "^6.4|^7.0", "symfony/http-foundation": "^6.4|^7.0", @@ -4525,7 +4999,7 @@ "symfony/twig-bridge": "<6.4", "symfony/validator": "<6.4", "symfony/var-dumper": "<6.4", - "twig/twig": "<3.0.4" + "twig/twig": "<3.12" }, "provide": { "psr/log-implementation": "1.0|2.0|3.0" @@ -4543,16 +5017,17 @@ "symfony/finder": "^6.4|^7.0", "symfony/http-client-contracts": "^2.5|^3", "symfony/process": "^6.4|^7.0", - "symfony/property-access": "^6.4|^7.0", + "symfony/property-access": "^7.1", "symfony/routing": "^6.4|^7.0", - "symfony/serializer": "^6.4.4|^7.0.4", + "symfony/serializer": "^7.1", "symfony/stopwatch": "^6.4|^7.0", "symfony/translation": "^6.4|^7.0", "symfony/translation-contracts": "^2.5|^3", "symfony/uid": "^6.4|^7.0", "symfony/validator": "^6.4|^7.0", + "symfony/var-dumper": "^6.4|^7.0", "symfony/var-exporter": "^6.4|^7.0", - "twig/twig": "^3.0.4" + "twig/twig": "^3.12" }, "type": "library", "autoload": { @@ -4580,7 +5055,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/v7.0.5" + "source": "https://github.com/symfony/http-kernel/tree/v7.2.1" }, "funding": [ { @@ -4596,20 +5071,20 @@ "type": "tidelift" } ], - "time": "2024-03-04T21:05:24+00:00" + "time": "2024-12-11T12:09:10+00:00" }, { "name": "symfony/mailer", - "version": "v7.0.4", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "72e16d87bf50a3ce195b9470c06bb9d7b816ea85" + "reference": "e4d358702fb66e4c8a2af08e90e7271a62de39cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/72e16d87bf50a3ce195b9470c06bb9d7b816ea85", - "reference": "72e16d87bf50a3ce195b9470c06bb9d7b816ea85", + "url": "https://api.github.com/repos/symfony/mailer/zipball/e4d358702fb66e4c8a2af08e90e7271a62de39cc", + "reference": "e4d358702fb66e4c8a2af08e90e7271a62de39cc", "shasum": "" }, "require": { @@ -4618,7 +5093,7 @@ "psr/event-dispatcher": "^1", "psr/log": "^1|^2|^3", "symfony/event-dispatcher": "^6.4|^7.0", - "symfony/mime": "^6.4|^7.0", + "symfony/mime": "^7.2", "symfony/service-contracts": "^2.5|^3" }, "conflict": { @@ -4660,7 +5135,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v7.0.4" + "source": "https://github.com/symfony/mailer/tree/v7.2.0" }, "funding": [ { @@ -4676,20 +5151,20 @@ "type": "tidelift" } ], - "time": "2024-02-03T21:34:19+00:00" + "time": "2024-11-25T15:21:05+00:00" }, { "name": "symfony/mime", - "version": "v7.0.3", + "version": "v7.2.1", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "c1ffe24ba6fdc3e3f0f3fcb93519103b326a3716" + "reference": "7f9617fcf15cb61be30f8b252695ed5e2bfac283" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/c1ffe24ba6fdc3e3f0f3fcb93519103b326a3716", - "reference": "c1ffe24ba6fdc3e3f0f3fcb93519103b326a3716", + "url": "https://api.github.com/repos/symfony/mime/zipball/7f9617fcf15cb61be30f8b252695ed5e2bfac283", + "reference": "7f9617fcf15cb61be30f8b252695ed5e2bfac283", "shasum": "" }, "require": { @@ -4702,16 +5177,17 @@ "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", "symfony/mailer": "<6.4", - "symfony/serializer": "<6.4" + "symfony/serializer": "<6.4.3|>7.0,<7.0.3" }, "require-dev": { "egulias/email-validator": "^2.1.10|^3.1|^4", "league/html-to-markdown": "^5.0", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", "symfony/dependency-injection": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", "symfony/property-access": "^6.4|^7.0", "symfony/property-info": "^6.4|^7.0", - "symfony/serializer": "^6.4|^7.0" + "symfony/serializer": "^6.4.3|^7.0.3" }, "type": "library", "autoload": { @@ -4743,7 +5219,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v7.0.3" + "source": "https://github.com/symfony/mime/tree/v7.2.1" }, "funding": [ { @@ -4759,24 +5235,24 @@ "type": "tidelift" } ], - "time": "2024-01-30T08:34:29+00:00" + "time": "2024-12-07T08:50:44+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.29.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4" + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4", - "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638", + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "provide": { "ext-ctype": "*" @@ -4787,8 +5263,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -4822,7 +5298,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0" }, "funding": [ { @@ -4838,24 +5314,24 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.29.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f" + "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f", - "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", + "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "suggest": { "ext-intl": "For best performance" @@ -4863,8 +5339,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -4900,7 +5376,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0" }, "funding": [ { @@ -4916,108 +5392,25 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.29.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "a287ed7475f85bf6f61890146edbc932c0fff919" + "reference": "c36586dcf89a12315939e00ec9b4474adcb1d773" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a287ed7475f85bf6f61890146edbc932c0fff919", - "reference": "a287ed7475f85bf6f61890146edbc932c0fff919", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/c36586dcf89a12315939e00ec9b4474adcb1d773", + "reference": "c36586dcf89a12315939e00ec9b4474adcb1d773", "shasum": "" }, "require": { - "php": ">=7.1", - "symfony/polyfill-intl-normalizer": "^1.10", - "symfony/polyfill-php72": "^1.10" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Idn\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Laurent Bassin", - "email": "laurent@bassin.info" - }, - { - "name": "Trevor Rowbotham", - "email": "trevor.rowbotham@pm.me" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "idn", - "intl", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.29.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-01-29T20:11:03+00:00" - }, - { - "name": "symfony/polyfill-intl-normalizer", - "version": "v1.29.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "bc45c394692b948b4d383a08d7753968bed9a83d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d", - "reference": "bc45c394692b948b4d383a08d7753968bed9a83d", - "shasum": "" - }, - "require": { - "php": ">=7.1" + "php": ">=7.2", + "symfony/polyfill-intl-normalizer": "^1.10" }, "suggest": { "ext-intl": "For best performance" @@ -5025,20 +5418,17 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { "files": [ "bootstrap.php" ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, - "classmap": [ - "Resources/stubs" - ] + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5046,26 +5436,30 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for intl's Normalizer class and related functions", + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", "homepage": "https://symfony.com", "keywords": [ "compatibility", + "idn", "intl", - "normalizer", "polyfill", "portable", "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.31.0" }, "funding": [ { @@ -5081,36 +5475,33 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { - "name": "symfony/polyfill-mbstring", - "version": "v1.29.0", + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.31.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec" + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "3833d7255cc303546435cb650316bff708a1c75c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec", - "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c", + "reference": "3833d7255cc303546435cb650316bff708a1c75c", "shasum": "" }, "require": { - "php": ">=7.1" - }, - "provide": { - "ext-mbstring": "*" + "php": ">=7.2" }, "suggest": { - "ext-mbstring": "For best performance" + "ext-intl": "For best performance" }, "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -5118,8 +5509,11 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - } + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5135,17 +5529,18 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for the Mbstring extension", + "description": "Symfony polyfill for intl's Normalizer class and related functions", "homepage": "https://symfony.com", "keywords": [ "compatibility", - "mbstring", + "intl", + "normalizer", "polyfill", "portable", "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0" }, "funding": [ { @@ -5161,30 +5556,36 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { - "name": "symfony/polyfill-php72", - "version": "v1.29.0", + "name": "symfony/polyfill-mbstring", + "version": "v1.31.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25" + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/861391a8da9a04cbad2d232ddd9e4893220d6e25", - "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341", + "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" }, "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -5192,7 +5593,7 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" + "Symfony\\Polyfill\\Mbstring\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -5209,16 +5610,17 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "description": "Symfony polyfill for the Mbstring extension", "homepage": "https://symfony.com", "keywords": [ "compatibility", + "mbstring", "polyfill", "portable", "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0" }, "funding": [ { @@ -5234,30 +5636,30 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.29.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b" + "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", - "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", + "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -5298,7 +5700,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0" }, "funding": [ { @@ -5314,31 +5716,30 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-php83", - "version": "v1.29.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "86fcae159633351e5fd145d1c47de6c528f8caff" + "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/86fcae159633351e5fd145d1c47de6c528f8caff", - "reference": "86fcae159633351e5fd145d1c47de6c528f8caff", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/2fb86d65e2d424369ad2905e83b236a8805ba491", + "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491", "shasum": "" }, "require": { - "php": ">=7.1", - "symfony/polyfill-php80": "^1.14" + "php": ">=7.2" }, "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -5375,7 +5776,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.31.0" }, "funding": [ { @@ -5391,24 +5792,24 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-uuid", - "version": "v1.29.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-uuid.git", - "reference": "3abdd21b0ceaa3000ee950097bc3cf9efc137853" + "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/3abdd21b0ceaa3000ee950097bc3cf9efc137853", - "reference": "3abdd21b0ceaa3000ee950097bc3cf9efc137853", + "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/21533be36c24be3f4b1669c4725c7d1d2bab4ae2", + "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "provide": { "ext-uuid": "*" @@ -5419,8 +5820,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -5454,7 +5855,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/polyfill-uuid/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-uuid/tree/v1.31.0" }, "funding": [ { @@ -5470,20 +5871,20 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/process", - "version": "v7.0.4", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "0e7727191c3b71ebec6d529fa0e50a01ca5679e9" + "reference": "d34b22ba9390ec19d2dd966c40aa9e8462f27a7e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/0e7727191c3b71ebec6d529fa0e50a01ca5679e9", - "reference": "0e7727191c3b71ebec6d529fa0e50a01ca5679e9", + "url": "https://api.github.com/repos/symfony/process/zipball/d34b22ba9390ec19d2dd966c40aa9e8462f27a7e", + "reference": "d34b22ba9390ec19d2dd966c40aa9e8462f27a7e", "shasum": "" }, "require": { @@ -5515,7 +5916,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.0.4" + "source": "https://github.com/symfony/process/tree/v7.2.0" }, "funding": [ { @@ -5531,20 +5932,20 @@ "type": "tidelift" } ], - "time": "2024-02-22T20:27:20+00:00" + "time": "2024-11-06T14:24:19+00:00" }, { "name": "symfony/routing", - "version": "v7.0.5", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "ba6bf07d43289c6a4b4591ddb75bc3bc5f069c19" + "reference": "e10a2450fa957af6c448b9b93c9010a4e4c0725e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/ba6bf07d43289c6a4b4591ddb75bc3bc5f069c19", - "reference": "ba6bf07d43289c6a4b4591ddb75bc3bc5f069c19", + "url": "https://api.github.com/repos/symfony/routing/zipball/e10a2450fa957af6c448b9b93c9010a4e4c0725e", + "reference": "e10a2450fa957af6c448b9b93c9010a4e4c0725e", "shasum": "" }, "require": { @@ -5596,7 +5997,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v7.0.5" + "source": "https://github.com/symfony/routing/tree/v7.2.0" }, "funding": [ { @@ -5612,25 +6013,26 @@ "type": "tidelift" } ], - "time": "2024-02-27T12:34:35+00:00" + "time": "2024-11-25T11:08:51+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.4.1", + "version": "v3.5.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0" + "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/fe07cbc8d837f60caf7018068e350cc5163681a0", - "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/e53260aabf78fb3d63f8d79d69ece59f80d5eda0", + "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0", "shasum": "" }, "require": { "php": ">=8.1", - "psr/container": "^1.1|^2.0" + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" }, "conflict": { "ext-psr": "<1.1|>=2" @@ -5638,7 +6040,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.4-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -5678,7 +6080,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.4.1" + "source": "https://github.com/symfony/service-contracts/tree/v3.5.1" }, "funding": [ { @@ -5694,20 +6096,20 @@ "type": "tidelift" } ], - "time": "2023-12-26T14:02:43+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/string", - "version": "v7.0.4", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "f5832521b998b0bec40bee688ad5de98d4cf111b" + "reference": "446e0d146f991dde3e73f45f2c97a9faad773c82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/f5832521b998b0bec40bee688ad5de98d4cf111b", - "reference": "f5832521b998b0bec40bee688ad5de98d4cf111b", + "url": "https://api.github.com/repos/symfony/string/zipball/446e0d146f991dde3e73f45f2c97a9faad773c82", + "reference": "446e0d146f991dde3e73f45f2c97a9faad773c82", "shasum": "" }, "require": { @@ -5721,6 +6123,7 @@ "symfony/translation-contracts": "<2.5" }, "require-dev": { + "symfony/emoji": "^7.1", "symfony/error-handler": "^6.4|^7.0", "symfony/http-client": "^6.4|^7.0", "symfony/intl": "^6.4|^7.0", @@ -5764,7 +6167,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.0.4" + "source": "https://github.com/symfony/string/tree/v7.2.0" }, "funding": [ { @@ -5780,24 +6183,25 @@ "type": "tidelift" } ], - "time": "2024-02-01T13:17:36+00:00" + "time": "2024-11-13T13:31:26+00:00" }, { "name": "symfony/translation", - "version": "v7.0.4", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "5b75e872f7d135d7abb4613809fadc8d9f3d30a0" + "reference": "dc89e16b44048ceecc879054e5b7f38326ab6cc5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/5b75e872f7d135d7abb4613809fadc8d9f3d30a0", - "reference": "5b75e872f7d135d7abb4613809fadc8d9f3d30a0", + "url": "https://api.github.com/repos/symfony/translation/zipball/dc89e16b44048ceecc879054e5b7f38326ab6cc5", + "reference": "dc89e16b44048ceecc879054e5b7f38326ab6cc5", "shasum": "" }, "require": { "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", "symfony/translation-contracts": "^2.5|^3.0" }, @@ -5858,7 +6262,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v7.0.4" + "source": "https://github.com/symfony/translation/tree/v7.2.0" }, "funding": [ { @@ -5874,20 +6278,20 @@ "type": "tidelift" } ], - "time": "2024-02-22T20:27:20+00:00" + "time": "2024-11-12T20:47:56+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.4.1", + "version": "v3.5.1", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "06450585bf65e978026bda220cdebca3f867fde7" + "reference": "4667ff3bd513750603a09c8dedbea942487fb07c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/06450585bf65e978026bda220cdebca3f867fde7", - "reference": "06450585bf65e978026bda220cdebca3f867fde7", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/4667ff3bd513750603a09c8dedbea942487fb07c", + "reference": "4667ff3bd513750603a09c8dedbea942487fb07c", "shasum": "" }, "require": { @@ -5896,7 +6300,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.4-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -5936,7 +6340,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.4.1" + "source": "https://github.com/symfony/translation-contracts/tree/v3.5.1" }, "funding": [ { @@ -5952,20 +6356,20 @@ "type": "tidelift" } ], - "time": "2023-12-26T14:02:43+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/uid", - "version": "v7.0.3", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "87cedaf3fabd7b733859d4d77aa4ca598259054b" + "reference": "2d294d0c48df244c71c105a169d0190bfb080426" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/87cedaf3fabd7b733859d4d77aa4ca598259054b", - "reference": "87cedaf3fabd7b733859d4d77aa4ca598259054b", + "url": "https://api.github.com/repos/symfony/uid/zipball/2d294d0c48df244c71c105a169d0190bfb080426", + "reference": "2d294d0c48df244c71c105a169d0190bfb080426", "shasum": "" }, "require": { @@ -6010,7 +6414,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v7.0.3" + "source": "https://github.com/symfony/uid/tree/v7.2.0" }, "funding": [ { @@ -6026,20 +6430,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/var-dumper", - "version": "v7.0.4", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "e03ad7c1535e623edbb94c22cc42353e488c6670" + "reference": "c6a22929407dec8765d6e2b6ff85b800b245879c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/e03ad7c1535e623edbb94c22cc42353e488c6670", - "reference": "e03ad7c1535e623edbb94c22cc42353e488c6670", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c6a22929407dec8765d6e2b6ff85b800b245879c", + "reference": "c6a22929407dec8765d6e2b6ff85b800b245879c", "shasum": "" }, "require": { @@ -6055,7 +6459,7 @@ "symfony/http-kernel": "^6.4|^7.0", "symfony/process": "^6.4|^7.0", "symfony/uid": "^6.4|^7.0", - "twig/twig": "^3.0.4" + "twig/twig": "^3.12" }, "bin": [ "Resources/bin/var-dump-server" @@ -6093,7 +6497,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.0.4" + "source": "https://github.com/symfony/var-dumper/tree/v7.2.0" }, "funding": [ { @@ -6109,7 +6513,74 @@ "type": "tidelift" } ], - "time": "2024-02-15T11:33:06+00:00" + "time": "2024-11-08T15:48:14+00:00" + }, + { + "name": "tightenco/ziggy", + "version": "v1.8.2", + "source": { + "type": "git", + "url": "https://github.com/tighten/ziggy.git", + "reference": "939576ad0f3d3e633a9401c8c377bc7bc873ff35" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/tighten/ziggy/zipball/939576ad0f3d3e633a9401c8c377bc7bc873ff35", + "reference": "939576ad0f3d3e633a9401c8c377bc7bc873ff35", + "shasum": "" + }, + "require": { + "ext-json": "*", + "laravel/framework": ">=5.4@dev" + }, + "require-dev": { + "orchestra/testbench": "^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0", + "phpunit/phpunit": "^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Tightenco\\Ziggy\\ZiggyServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Tightenco\\Ziggy\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Coulbourne", + "email": "daniel@tighten.co" + }, + { + "name": "Jake Bathman", + "email": "jake@tighten.co" + }, + { + "name": "Jacob Baker-Kretzmar", + "email": "jacob@tighten.co" + } + ], + "description": "Generates a Blade directive exporting all of your named Laravel routes. Also provides a nice route() helper function in JavaScript.", + "homepage": "https://github.com/tighten/ziggy", + "keywords": [ + "Ziggy", + "javascript", + "laravel", + "routes" + ], + "support": { + "issues": "https://github.com/tighten/ziggy/issues", + "source": "https://github.com/tighten/ziggy/tree/v1.8.2" + }, + "time": "2024-02-20T19:56:04+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -6166,23 +6637,23 @@ }, { "name": "vlucas/phpdotenv", - "version": "v5.6.0", + "version": "v5.6.1", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4" + "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4", - "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/a59a13791077fe3d44f90e7133eb68e7d22eaff2", + "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2", "shasum": "" }, "require": { "ext-pcre": "*", - "graham-campbell/result-type": "^1.1.2", + "graham-campbell/result-type": "^1.1.3", "php": "^7.2.5 || ^8.0", - "phpoption/phpoption": "^1.9.2", + "phpoption/phpoption": "^1.9.3", "symfony/polyfill-ctype": "^1.24", "symfony/polyfill-mbstring": "^1.24", "symfony/polyfill-php80": "^1.24" @@ -6199,7 +6670,7 @@ "extra": { "bamarni-bin": { "bin-links": true, - "forward-command": true + "forward-command": false }, "branch-alias": { "dev-master": "5.6-dev" @@ -6234,7 +6705,7 @@ ], "support": { "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.0" + "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.1" }, "funding": [ { @@ -6246,20 +6717,20 @@ "type": "tidelift" } ], - "time": "2023-11-12T22:43:29+00:00" + "time": "2024-07-20T21:52:34+00:00" }, { "name": "voku/portable-ascii", - "version": "2.0.1", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/voku/portable-ascii.git", - "reference": "b56450eed252f6801410d810c8e1727224ae0743" + "reference": "b1d923f88091c6bf09699efcd7c8a1b1bfd7351d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743", - "reference": "b56450eed252f6801410d810c8e1727224ae0743", + "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b1d923f88091c6bf09699efcd7c8a1b1bfd7351d", + "reference": "b1d923f88091c6bf09699efcd7c8a1b1bfd7351d", "shasum": "" }, "require": { @@ -6284,7 +6755,7 @@ "authors": [ { "name": "Lars Moelleken", - "homepage": "http://www.moelleken.org/" + "homepage": "https://www.moelleken.org/" } ], "description": "Portable ASCII library - performance optimized (ascii) string functions for php.", @@ -6296,7 +6767,7 @@ ], "support": { "issues": "https://github.com/voku/portable-ascii/issues", - "source": "https://github.com/voku/portable-ascii/tree/2.0.1" + "source": "https://github.com/voku/portable-ascii/tree/2.0.3" }, "funding": [ { @@ -6320,7 +6791,7 @@ "type": "tidelift" } ], - "time": "2022-03-08T17:03:00+00:00" + "time": "2024-11-21T01:49:47+00:00" }, { "name": "webmozart/assert", @@ -6382,18 +6853,63 @@ } ], "packages-dev": [ + { + "name": "doctrine/deprecations", + "version": "1.1.4", + "source": { + "type": "git", + "url": "https://github.com/doctrine/deprecations.git", + "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/31610dbb31faa98e6b5447b62340826f54fbc4e9", + "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9 || ^12", + "phpstan/phpstan": "1.4.10 || 2.0.3", + "phpstan/phpstan-phpunit": "^1.0 || ^2", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psr/log": "^1 || ^2 || ^3" + }, + "suggest": { + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Deprecations\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", + "support": { + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/1.1.4" + }, + "time": "2024-12-07T21:18:45+00:00" + }, { "name": "fakerphp/faker", - "version": "v1.23.1", + "version": "v1.24.1", "source": { "type": "git", "url": "https://github.com/FakerPHP/Faker.git", - "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b" + "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/bfb4fe148adbf78eff521199619b93a52ae3554b", - "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5", + "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5", "shasum": "" }, "require": { @@ -6441,32 +6957,32 @@ ], "support": { "issues": "https://github.com/FakerPHP/Faker/issues", - "source": "https://github.com/FakerPHP/Faker/tree/v1.23.1" + "source": "https://github.com/FakerPHP/Faker/tree/v1.24.1" }, - "time": "2024-01-02T13:46:09+00:00" + "time": "2024-11-21T13:46:39+00:00" }, { "name": "filp/whoops", - "version": "2.15.4", + "version": "2.16.0", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546" + "reference": "befcdc0e5dce67252aa6322d82424be928214fa2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/a139776fa3f5985a50b509f2a02ff0f709d2a546", - "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546", + "url": "https://api.github.com/repos/filp/whoops/zipball/befcdc0e5dce67252aa6322d82424be928214fa2", + "reference": "befcdc0e5dce67252aa6322d82424be928214fa2", "shasum": "" }, "require": { - "php": "^5.5.9 || ^7.0 || ^8.0", + "php": "^7.1 || ^8.0", "psr/log": "^1.0.1 || ^2.0 || ^3.0" }, "require-dev": { - "mockery/mockery": "^0.9 || ^1.0", - "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.3", - "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0" + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^7.5.20 || ^8.5.8 || ^9.3.3", + "symfony/var-dumper": "^4.0 || ^5.0" }, "suggest": { "symfony/var-dumper": "Pretty print complex values better with var-dumper available", @@ -6506,7 +7022,7 @@ ], "support": { "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.15.4" + "source": "https://github.com/filp/whoops/tree/2.16.0" }, "funding": [ { @@ -6514,7 +7030,7 @@ "type": "github" } ], - "time": "2023-11-03T12:00:00+00:00" + "time": "2024-09-25T12:00:00+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -6567,18 +7083,94 @@ }, "time": "2020-07-09T08:09:16+00:00" }, + { + "name": "itsgoingd/clockwork", + "version": "v5.3.2", + "source": { + "type": "git", + "url": "https://github.com/itsgoingd/clockwork.git", + "reference": "ffd1f1626830005e92461a538ad58372641e065a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/itsgoingd/clockwork/zipball/ffd1f1626830005e92461a538ad58372641e065a", + "reference": "ffd1f1626830005e92461a538ad58372641e065a", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": ">=7.1" + }, + "suggest": { + "ext-pdo": "Needed in order to use a SQL database for metadata storage", + "ext-pdo_mysql": "Needed in order to use MySQL for metadata storage", + "ext-pdo_postgres": "Needed in order to use Postgres for metadata storage", + "ext-pdo_sqlite": "Needed in order to use a SQLite for metadata storage", + "ext-redis": "Needed in order to use Redis for metadata storage", + "php-http/discovery": "Vanilla integration - required for the middleware zero-configuration setup" + }, + "type": "library", + "extra": { + "laravel": { + "aliases": { + "Clockwork": "Clockwork\\Support\\Laravel\\Facade" + }, + "providers": [ + "Clockwork\\Support\\Laravel\\ClockworkServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Clockwork\\": "Clockwork/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "itsgoingd", + "email": "itsgoingd@luzer.sk", + "homepage": "https://twitter.com/itsgoingd" + } + ], + "description": "php dev tools in your browser", + "homepage": "https://underground.works/clockwork", + "keywords": [ + "Devtools", + "debugging", + "laravel", + "logging", + "lumen", + "profiling", + "slim" + ], + "support": { + "issues": "https://github.com/itsgoingd/clockwork/issues", + "source": "https://github.com/itsgoingd/clockwork/tree/v5.3.2" + }, + "funding": [ + { + "url": "https://github.com/itsgoingd", + "type": "github" + } + ], + "time": "2024-12-02T22:59:59+00:00" + }, { "name": "laravel/sail", - "version": "v1.28.2", + "version": "v1.39.1", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "057777403b8ab79222dcc04983beaab10b6de6a0" + "reference": "1a3c7291bc88de983b66688919a4d298d68ddec7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/057777403b8ab79222dcc04983beaab10b6de6a0", - "reference": "057777403b8ab79222dcc04983beaab10b6de6a0", + "url": "https://api.github.com/repos/laravel/sail/zipball/1a3c7291bc88de983b66688919a4d298d68ddec7", + "reference": "1a3c7291bc88de983b66688919a4d298d68ddec7", "shasum": "" }, "require": { @@ -6586,6 +7178,7 @@ "illuminate/contracts": "^9.52.16|^10.0|^11.0", "illuminate/support": "^9.52.16|^10.0|^11.0", "php": "^8.0", + "symfony/console": "^6.0|^7.0", "symfony/yaml": "^6.0|^7.0" }, "require-dev": { @@ -6627,20 +7220,20 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2024-03-04T14:58:29+00:00" + "time": "2024-11-27T15:42:28+00:00" }, { "name": "mockery/mockery", - "version": "1.6.7", + "version": "1.6.12", "source": { "type": "git", "url": "https://github.com/mockery/mockery.git", - "reference": "0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06" + "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06", - "reference": "0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06", + "url": "https://api.github.com/repos/mockery/mockery/zipball/1f4efdd7d3beafe9807b08156dfcb176d18f1699", + "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699", "shasum": "" }, "require": { @@ -6652,8 +7245,8 @@ "phpunit/phpunit": "<8.0" }, "require-dev": { - "phpunit/phpunit": "^8.5 || ^9.6.10", - "symplify/easy-coding-standard": "^12.0.8" + "phpunit/phpunit": "^8.5 || ^9.6.17", + "symplify/easy-coding-standard": "^12.1.14" }, "type": "library", "autoload": { @@ -6710,20 +7303,20 @@ "security": "https://github.com/mockery/mockery/security/advisories", "source": "https://github.com/mockery/mockery" }, - "time": "2023-12-10T02:24:34+00:00" + "time": "2024-05-16T03:13:13+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.11.1", + "version": "1.12.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" + "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/123267b2c49fbf30d78a7b2d333f6be754b94845", + "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845", "shasum": "" }, "require": { @@ -6731,11 +7324,12 @@ }, "conflict": { "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3,<3.2.2" + "doctrine/common": "<2.13.3 || >=3 <3.2.2" }, "require-dev": { "doctrine/collections": "^1.6.8", "doctrine/common": "^2.13.3 || ^3.2.2", + "phpspec/prophecy": "^1.10", "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", @@ -6761,7 +7355,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" + "source": "https://github.com/myclabs/DeepCopy/tree/1.12.1" }, "funding": [ { @@ -6769,42 +7363,42 @@ "type": "tidelift" } ], - "time": "2023-03-08T13:26:56+00:00" + "time": "2024-11-08T17:47:46+00:00" }, { "name": "nunomaduro/collision", - "version": "v8.1.1", + "version": "v8.5.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "13e5d538b95a744d85f447a321ce10adb28e9af9" + "reference": "f5c101b929c958e849a633283adff296ed5f38f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/13e5d538b95a744d85f447a321ce10adb28e9af9", - "reference": "13e5d538b95a744d85f447a321ce10adb28e9af9", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/f5c101b929c958e849a633283adff296ed5f38f5", + "reference": "f5c101b929c958e849a633283adff296ed5f38f5", "shasum": "" }, "require": { - "filp/whoops": "^2.15.4", - "nunomaduro/termwind": "^2.0.1", + "filp/whoops": "^2.16.0", + "nunomaduro/termwind": "^2.1.0", "php": "^8.2.0", - "symfony/console": "^7.0.4" + "symfony/console": "^7.1.5" }, "conflict": { "laravel/framework": "<11.0.0 || >=12.0.0", "phpunit/phpunit": "<10.5.1 || >=12.0.0" }, "require-dev": { - "larastan/larastan": "^2.9.2", - "laravel/framework": "^11.0.0", - "laravel/pint": "^1.14.0", - "laravel/sail": "^1.28.2", - "laravel/sanctum": "^4.0.0", - "laravel/tinker": "^2.9.0", - "orchestra/testbench-core": "^9.0.0", - "pestphp/pest": "^2.34.1 || ^3.0.0", - "sebastian/environment": "^6.0.1 || ^7.0.0" + "larastan/larastan": "^2.9.8", + "laravel/framework": "^11.28.0", + "laravel/pint": "^1.18.1", + "laravel/sail": "^1.36.0", + "laravel/sanctum": "^4.0.3", + "laravel/tinker": "^2.10.0", + "orchestra/testbench-core": "^9.5.3", + "pestphp/pest": "^2.36.0 || ^3.4.0", + "sebastian/environment": "^6.1.0 || ^7.2.0" }, "type": "library", "extra": { @@ -6866,7 +7460,7 @@ "type": "patreon" } ], - "time": "2024-03-06T16:20:09+00:00" + "time": "2024-10-15T16:06:32+00:00" }, { "name": "phar-io/manifest", @@ -6974,108 +7568,204 @@ "role": "Developer" }, { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" + }, + "time": "2022-02-21T01:04:05+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" + }, + "time": "2020-06-27T09:03:43+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "1.10.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/679e3ce485b99e84c775d28e2e96fade9a7fb50a", + "reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a", + "shasum": "" + }, + "require": { + "doctrine/deprecations": "^1.0", + "php": "^7.3 || ^8.0", + "phpdocumentor/reflection-common": "^2.0", + "phpstan/phpdoc-parser": "^1.18|^2.0" + }, + "require-dev": { + "ext-tokenizer": "*", + "phpbench/phpbench": "^1.2", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^9.5", + "rector/rector": "^0.13.9", + "vimeo/psalm": "^4.25" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" } ], - "description": "Library for handling version information and constraints", + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { - "issues": "https://github.com/phar-io/version/issues", - "source": "https://github.com/phar-io/version/tree/3.2.1" + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.10.0" }, - "time": "2022-02-21T01:04:05+00:00" + "time": "2024-11-09T15:12:26+00:00" }, { - "name": "phpstan/phpstan", - "version": "1.10.60", + "name": "phpstan/phpdoc-parser", + "version": "2.0.0", "source": { "type": "git", - "url": "https://github.com/phpstan/phpstan.git", - "reference": "95dcea7d6c628a3f2f56d091d8a0219485a86bbe" + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "c00d78fb6b29658347f9d37ebe104bffadf36299" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/95dcea7d6c628a3f2f56d091d8a0219485a86bbe", - "reference": "95dcea7d6c628a3f2f56d091d8a0219485a86bbe", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/c00d78fb6b29658347f9d37ebe104bffadf36299", + "reference": "c00d78fb6b29658347f9d37ebe104bffadf36299", "shasum": "" }, "require": { - "php": "^7.2|^8.0" + "php": "^7.4 || ^8.0" }, - "conflict": { - "phpstan/phpstan-shim": "*" + "require-dev": { + "doctrine/annotations": "^2.0", + "nikic/php-parser": "^5.3.0", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpstan/phpstan-strict-rules": "^2.0", + "phpunit/phpunit": "^9.6", + "symfony/process": "^5.2" }, - "bin": [ - "phpstan", - "phpstan.phar" - ], "type": "library", "autoload": { - "files": [ - "bootstrap.php" - ] + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "PHPStan - PHP Static Analysis Tool", - "keywords": [ - "dev", - "static analysis" - ], + "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { - "docs": "https://phpstan.org/user-guide/getting-started", - "forum": "https://github.com/phpstan/phpstan/discussions", - "issues": "https://github.com/phpstan/phpstan/issues", - "security": "https://github.com/phpstan/phpstan/security/policy", - "source": "https://github.com/phpstan/phpstan-src" + "issues": "https://github.com/phpstan/phpdoc-parser/issues", + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.0.0" }, - "funding": [ - { - "url": "https://github.com/ondrejmirtes", - "type": "github" - }, - { - "url": "https://github.com/phpstan", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", - "type": "tidelift" - } - ], - "time": "2024-03-07T13:30:19+00:00" + "time": "2024-10-13T11:29:49+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "10.1.13", + "version": "10.1.16", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "d51c3aec14896d5e80b354fad58e998d1980f8f8" + "reference": "7e308268858ed6baedc8704a304727d20bc07c77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/d51c3aec14896d5e80b354fad58e998d1980f8f8", - "reference": "d51c3aec14896d5e80b354fad58e998d1980f8f8", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/7e308268858ed6baedc8704a304727d20bc07c77", + "reference": "7e308268858ed6baedc8704a304727d20bc07c77", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.18 || ^5.0", + "nikic/php-parser": "^4.19.1 || ^5.1.0", "php": ">=8.1", - "phpunit/php-file-iterator": "^4.0", - "phpunit/php-text-template": "^3.0", - "sebastian/code-unit-reverse-lookup": "^3.0", - "sebastian/complexity": "^3.0", - "sebastian/environment": "^6.0", - "sebastian/lines-of-code": "^2.0", - "sebastian/version": "^4.0", - "theseer/tokenizer": "^1.2.0" + "phpunit/php-file-iterator": "^4.1.0", + "phpunit/php-text-template": "^3.0.1", + "sebastian/code-unit-reverse-lookup": "^3.0.0", + "sebastian/complexity": "^3.2.0", + "sebastian/environment": "^6.1.0", + "sebastian/lines-of-code": "^2.0.2", + "sebastian/version": "^4.0.1", + "theseer/tokenizer": "^1.2.3" }, "require-dev": { "phpunit/phpunit": "^10.1" @@ -7087,7 +7777,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "10.1-dev" + "dev-main": "10.1.x-dev" } }, "autoload": { @@ -7116,7 +7806,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.13" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.16" }, "funding": [ { @@ -7124,7 +7814,7 @@ "type": "github" } ], - "time": "2024-03-09T16:54:15+00:00" + "time": "2024-08-22T04:31:57+00:00" }, { "name": "phpunit/php-file-iterator", @@ -7371,16 +8061,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.5.12", + "version": "10.5.39", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "41a9886b85ac7bf3929853baf96b95361cd69d2b" + "reference": "4e89eff200b801db58f3d580ad7426431949eaa9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/41a9886b85ac7bf3929853baf96b95361cd69d2b", - "reference": "41a9886b85ac7bf3929853baf96b95361cd69d2b", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4e89eff200b801db58f3d580ad7426431949eaa9", + "reference": "4e89eff200b801db58f3d580ad7426431949eaa9", "shasum": "" }, "require": { @@ -7390,26 +8080,26 @@ "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.3", - "phar-io/version": "^3.0.2", + "myclabs/deep-copy": "^1.12.1", + "phar-io/manifest": "^2.0.4", + "phar-io/version": "^3.2.1", "php": ">=8.1", - "phpunit/php-code-coverage": "^10.1.5", - "phpunit/php-file-iterator": "^4.0", - "phpunit/php-invoker": "^4.0", - "phpunit/php-text-template": "^3.0", - "phpunit/php-timer": "^6.0", - "sebastian/cli-parser": "^2.0", - "sebastian/code-unit": "^2.0", - "sebastian/comparator": "^5.0", - "sebastian/diff": "^5.0", - "sebastian/environment": "^6.0", - "sebastian/exporter": "^5.1", - "sebastian/global-state": "^6.0.1", - "sebastian/object-enumerator": "^5.0", - "sebastian/recursion-context": "^5.0", - "sebastian/type": "^4.0", - "sebastian/version": "^4.0" + "phpunit/php-code-coverage": "^10.1.16", + "phpunit/php-file-iterator": "^4.1.0", + "phpunit/php-invoker": "^4.0.0", + "phpunit/php-text-template": "^3.0.1", + "phpunit/php-timer": "^6.0.0", + "sebastian/cli-parser": "^2.0.1", + "sebastian/code-unit": "^2.0.0", + "sebastian/comparator": "^5.0.3", + "sebastian/diff": "^5.1.1", + "sebastian/environment": "^6.1.0", + "sebastian/exporter": "^5.1.2", + "sebastian/global-state": "^6.0.2", + "sebastian/object-enumerator": "^5.0.0", + "sebastian/recursion-context": "^5.0.0", + "sebastian/type": "^4.0.0", + "sebastian/version": "^4.0.1" }, "suggest": { "ext-soap": "To be able to generate mocks based on WSDL files" @@ -7452,7 +8142,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.5.12" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.39" }, "funding": [ { @@ -7468,7 +8158,7 @@ "type": "tidelift" } ], - "time": "2024-03-09T12:04:07+00:00" + "time": "2024-12-11T10:51:07+00:00" }, { "name": "pimple/pimple", @@ -7523,62 +8213,6 @@ }, "time": "2021-10-28T11:13:42+00:00" }, - { - "name": "rector/rector", - "version": "1.0.2", - "source": { - "type": "git", - "url": "https://github.com/rectorphp/rector.git", - "reference": "7596fa6da06c6a20c012efe6bb3d9188a9113b11" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/7596fa6da06c6a20c012efe6bb3d9188a9113b11", - "reference": "7596fa6da06c6a20c012efe6bb3d9188a9113b11", - "shasum": "" - }, - "require": { - "php": "^7.2|^8.0", - "phpstan/phpstan": "^1.10.57" - }, - "conflict": { - "rector/rector-doctrine": "*", - "rector/rector-downgrade-php": "*", - "rector/rector-phpunit": "*", - "rector/rector-symfony": "*" - }, - "bin": [ - "bin/rector" - ], - "type": "library", - "autoload": { - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Instant Upgrade and Automated Refactoring of any PHP code", - "keywords": [ - "automation", - "dev", - "migration", - "refactoring" - ], - "support": { - "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/1.0.2" - }, - "funding": [ - { - "url": "https://github.com/tomasvotruba", - "type": "github" - } - ], - "time": "2024-03-03T12:32:31+00:00" - }, { "name": "sebastian/cli-parser", "version": "2.0.1", @@ -7749,16 +8383,16 @@ }, { "name": "sebastian/comparator", - "version": "5.0.1", + "version": "5.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "2db5010a484d53ebf536087a70b4a5423c102372" + "reference": "a18251eb0b7a2dcd2f7aa3d6078b18545ef0558e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2db5010a484d53ebf536087a70b4a5423c102372", - "reference": "2db5010a484d53ebf536087a70b4a5423c102372", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/a18251eb0b7a2dcd2f7aa3d6078b18545ef0558e", + "reference": "a18251eb0b7a2dcd2f7aa3d6078b18545ef0558e", "shasum": "" }, "require": { @@ -7769,7 +8403,7 @@ "sebastian/exporter": "^5.0" }, "require-dev": { - "phpunit/phpunit": "^10.3" + "phpunit/phpunit": "^10.5" }, "type": "library", "extra": { @@ -7814,7 +8448,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", "security": "https://github.com/sebastianbergmann/comparator/security/policy", - "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.1" + "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.3" }, "funding": [ { @@ -7822,7 +8456,7 @@ "type": "github" } ], - "time": "2023-08-14T13:18:12+00:00" + "time": "2024-10-18T14:56:07+00:00" }, { "name": "sebastian/complexity", @@ -7951,16 +8585,16 @@ }, { "name": "sebastian/environment", - "version": "6.0.1", + "version": "6.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951" + "reference": "8074dbcd93529b357029f5cc5058fd3e43666984" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/43c751b41d74f96cbbd4e07b7aec9675651e2951", - "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/8074dbcd93529b357029f5cc5058fd3e43666984", + "reference": "8074dbcd93529b357029f5cc5058fd3e43666984", "shasum": "" }, "require": { @@ -7975,7 +8609,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "6.1-dev" } }, "autoload": { @@ -8003,7 +8637,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", "security": "https://github.com/sebastianbergmann/environment/security/policy", - "source": "https://github.com/sebastianbergmann/environment/tree/6.0.1" + "source": "https://github.com/sebastianbergmann/environment/tree/6.1.0" }, "funding": [ { @@ -8011,7 +8645,7 @@ "type": "github" } ], - "time": "2023-04-11T05:39:26+00:00" + "time": "2024-03-23T08:47:14+00:00" }, { "name": "sebastian/exporter", @@ -8497,26 +9131,27 @@ }, { "name": "spatie/backtrace", - "version": "1.5.3", + "version": "1.7.1", "source": { "type": "git", "url": "https://github.com/spatie/backtrace.git", - "reference": "483f76a82964a0431aa836b6ed0edde0c248e3ab" + "reference": "0f2477c520e3729de58e061b8192f161c99f770b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/backtrace/zipball/483f76a82964a0431aa836b6ed0edde0c248e3ab", - "reference": "483f76a82964a0431aa836b6ed0edde0c248e3ab", + "url": "https://api.github.com/repos/spatie/backtrace/zipball/0f2477c520e3729de58e061b8192f161c99f770b", + "reference": "0f2477c520e3729de58e061b8192f161c99f770b", "shasum": "" }, "require": { - "php": "^7.3|^8.0" + "php": "^7.3 || ^8.0" }, "require-dev": { "ext-json": "*", - "phpunit/phpunit": "^9.3", - "spatie/phpunit-snapshot-assertions": "^4.2", - "symfony/var-dumper": "^5.1" + "laravel/serializable-closure": "^1.3 || ^2.0", + "phpunit/phpunit": "^9.3 || ^11.4.3", + "spatie/phpunit-snapshot-assertions": "^4.2 || ^5.1.6", + "symfony/var-dumper": "^5.1 || ^6.0 || ^7.0" }, "type": "library", "autoload": { @@ -8543,7 +9178,7 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/backtrace/tree/1.5.3" + "source": "https://github.com/spatie/backtrace/tree/1.7.1" }, "funding": [ { @@ -8555,26 +9190,100 @@ "type": "other" } ], - "time": "2023-06-28T12:59:17+00:00" + "time": "2024-12-02T13:28:15+00:00" + }, + { + "name": "spatie/error-solutions", + "version": "1.1.2", + "source": { + "type": "git", + "url": "https://github.com/spatie/error-solutions.git", + "reference": "d239a65235a1eb128dfa0a4e4c4ef032ea11b541" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/error-solutions/zipball/d239a65235a1eb128dfa0a4e4c4ef032ea11b541", + "reference": "d239a65235a1eb128dfa0a4e4c4ef032ea11b541", + "shasum": "" + }, + "require": { + "php": "^8.0" + }, + "require-dev": { + "illuminate/broadcasting": "^10.0|^11.0", + "illuminate/cache": "^10.0|^11.0", + "illuminate/support": "^10.0|^11.0", + "livewire/livewire": "^2.11|^3.3.5", + "openai-php/client": "^0.10.1", + "orchestra/testbench": "^7.0|8.22.3|^9.0", + "pestphp/pest": "^2.20", + "phpstan/phpstan": "^1.11", + "psr/simple-cache": "^3.0", + "psr/simple-cache-implementation": "^3.0", + "spatie/ray": "^1.28", + "symfony/cache": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", + "vlucas/phpdotenv": "^5.5" + }, + "suggest": { + "openai-php/client": "Require get solutions from OpenAI", + "simple-cache-implementation": "To cache solutions from OpenAI" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\Ignition\\": "legacy/ignition", + "Spatie\\ErrorSolutions\\": "src", + "Spatie\\LaravelIgnition\\": "legacy/laravel-ignition" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ruben Van Assche", + "email": "ruben@spatie.be", + "role": "Developer" + } + ], + "description": "This is my package error-solutions", + "homepage": "https://github.com/spatie/error-solutions", + "keywords": [ + "error-solutions", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/error-solutions/issues", + "source": "https://github.com/spatie/error-solutions/tree/1.1.2" + }, + "funding": [ + { + "url": "https://github.com/Spatie", + "type": "github" + } + ], + "time": "2024-12-11T09:51:56+00:00" }, { "name": "spatie/flare-client-php", - "version": "1.4.4", + "version": "1.10.0", "source": { "type": "git", "url": "https://github.com/spatie/flare-client-php.git", - "reference": "17082e780752d346c2db12ef5d6bee8e835e399c" + "reference": "140a42b2c5d59ac4ecf8f5b493386a4f2eb28272" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/17082e780752d346c2db12ef5d6bee8e835e399c", - "reference": "17082e780752d346c2db12ef5d6bee8e835e399c", + "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/140a42b2c5d59ac4ecf8f5b493386a4f2eb28272", + "reference": "140a42b2c5d59ac4ecf8f5b493386a4f2eb28272", "shasum": "" }, "require": { "illuminate/pipeline": "^8.0|^9.0|^10.0|^11.0", "php": "^8.0", - "spatie/backtrace": "^1.5.2", + "spatie/backtrace": "^1.6.1", "symfony/http-foundation": "^5.2|^6.0|^7.0", "symfony/mime": "^5.2|^6.0|^7.0", "symfony/process": "^5.2|^6.0|^7.0", @@ -8586,7 +9295,7 @@ "phpstan/extension-installer": "^1.1", "phpstan/phpstan-deprecation-rules": "^1.0", "phpstan/phpstan-phpunit": "^1.0", - "spatie/phpunit-snapshot-assertions": "^4.0|^5.0" + "spatie/pest-plugin-snapshots": "^1.0|^2.0" }, "type": "library", "extra": { @@ -8616,7 +9325,7 @@ ], "support": { "issues": "https://github.com/spatie/flare-client-php/issues", - "source": "https://github.com/spatie/flare-client-php/tree/1.4.4" + "source": "https://github.com/spatie/flare-client-php/tree/1.10.0" }, "funding": [ { @@ -8624,28 +9333,28 @@ "type": "github" } ], - "time": "2024-01-31T14:18:45+00:00" + "time": "2024-12-02T14:30:06+00:00" }, { "name": "spatie/ignition", - "version": "1.12.0", + "version": "1.15.0", "source": { "type": "git", "url": "https://github.com/spatie/ignition.git", - "reference": "5b6f801c605a593106b623e45ca41496a6e7d56d" + "reference": "e3a68e137371e1eb9edc7f78ffa733f3b98991d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/ignition/zipball/5b6f801c605a593106b623e45ca41496a6e7d56d", - "reference": "5b6f801c605a593106b623e45ca41496a6e7d56d", + "url": "https://api.github.com/repos/spatie/ignition/zipball/e3a68e137371e1eb9edc7f78ffa733f3b98991d2", + "reference": "e3a68e137371e1eb9edc7f78ffa733f3b98991d2", "shasum": "" }, "require": { "ext-json": "*", "ext-mbstring": "*", "php": "^8.0", - "spatie/backtrace": "^1.5.3", - "spatie/flare-client-php": "^1.4.0", + "spatie/error-solutions": "^1.0", + "spatie/flare-client-php": "^1.7", "symfony/console": "^5.4|^6.0|^7.0", "symfony/var-dumper": "^5.4|^6.0|^7.0" }, @@ -8707,20 +9416,20 @@ "type": "github" } ], - "time": "2024-01-03T15:49:39+00:00" + "time": "2024-06-12T14:55:22+00:00" }, { "name": "spatie/laravel-ignition", - "version": "2.4.2", + "version": "2.9.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ignition.git", - "reference": "351504f4570e32908839fc5a2dc53bf77d02f85e" + "reference": "62042df15314b829d0f26e02108f559018e2aad0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/351504f4570e32908839fc5a2dc53bf77d02f85e", - "reference": "351504f4570e32908839fc5a2dc53bf77d02f85e", + "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/62042df15314b829d0f26e02108f559018e2aad0", + "reference": "62042df15314b829d0f26e02108f559018e2aad0", "shasum": "" }, "require": { @@ -8729,8 +9438,7 @@ "ext-mbstring": "*", "illuminate/support": "^10.0|^11.0", "php": "^8.1", - "spatie/flare-client-php": "^1.3.5", - "spatie/ignition": "^1.9", + "spatie/ignition": "^1.15", "symfony/console": "^6.2.3|^7.0", "symfony/var-dumper": "^6.2.3|^7.0" }, @@ -8738,11 +9446,11 @@ "livewire/livewire": "^2.11|^3.3.5", "mockery/mockery": "^1.5.1", "openai-php/client": "^0.8.1", - "orchestra/testbench": "^8.0|^9.0", - "pestphp/pest": "^2.30", - "phpstan/extension-installer": "^1.2", + "orchestra/testbench": "8.22.3|^9.0", + "pestphp/pest": "^2.34", + "phpstan/extension-installer": "^1.3.1", "phpstan/phpstan-deprecation-rules": "^1.1.1", - "phpstan/phpstan-phpunit": "^1.3.3", + "phpstan/phpstan-phpunit": "^1.3.16", "vlucas/phpdotenv": "^5.5" }, "suggest": { @@ -8752,12 +9460,12 @@ "type": "library", "extra": { "laravel": { - "providers": [ - "Spatie\\LaravelIgnition\\IgnitionServiceProvider" - ], "aliases": { "Flare": "Spatie\\LaravelIgnition\\Facades\\Flare" - } + }, + "providers": [ + "Spatie\\LaravelIgnition\\IgnitionServiceProvider" + ] } }, "autoload": { @@ -8799,54 +9507,55 @@ "type": "github" } ], - "time": "2024-02-09T16:08:40+00:00" + "time": "2024-12-02T08:43:31+00:00" }, { "name": "spatie/laravel-ray", - "version": "1.35.1", + "version": "1.39.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ray.git", - "reference": "f504d3787d88c7e5de7a4290658f7ad9b1352f22" + "reference": "31b601f98590606d20e76b5dd68578dc1642cd2c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ray/zipball/f504d3787d88c7e5de7a4290658f7ad9b1352f22", - "reference": "f504d3787d88c7e5de7a4290658f7ad9b1352f22", + "url": "https://api.github.com/repos/spatie/laravel-ray/zipball/31b601f98590606d20e76b5dd68578dc1642cd2c", + "reference": "31b601f98590606d20e76b5dd68578dc1642cd2c", "shasum": "" }, "require": { + "composer-runtime-api": "^2.2", "ext-json": "*", - "illuminate/contracts": "^7.20|^8.19|^9.0|^10.0|^11.0", - "illuminate/database": "^7.20|^8.19|^9.0|^10.0|^11.0", - "illuminate/queue": "^7.20|^8.19|^9.0|^10.0|^11.0", - "illuminate/support": "^7.20|^8.19|^9.0|^10.0|^11.0", - "php": "^7.4|^8.0", - "rector/rector": "^0.19.2|^1.0", + "illuminate/contracts": "^7.20 || ^8.19 || ^9.0 || ^10.0 || ^11.0", + "illuminate/database": "^7.20 || ^8.19 || ^9.0 || ^10.0 || ^11.0", + "illuminate/queue": "^7.20 || ^8.19 || ^9.0 || ^10.0 || ^11.0", + "illuminate/support": "^7.20 || ^8.19 || ^9.0 || ^10.0 || ^11.0", + "php": "^7.4 || ^8.0", "spatie/backtrace": "^1.0", - "spatie/ray": "^1.41.1", - "symfony/stopwatch": "4.2|^5.1|^6.0|^7.0", - "zbateson/mail-mime-parser": "^1.3.1|^2.0" + "spatie/ray": "^1.41.3", + "symfony/stopwatch": "4.2 || ^5.1 || ^6.0 || ^7.0", + "zbateson/mail-mime-parser": "^1.3.1 || ^2.0 || ^3.0" }, "require-dev": { "guzzlehttp/guzzle": "^7.3", - "laravel/framework": "^7.20|^8.19|^9.0|^10.0|^11.0", - "orchestra/testbench-core": "^5.0|^6.0|^7.0|^8.0|^9.0", - "pestphp/pest": "^1.22|^2.0", - "phpstan/phpstan": "^1.10.57", - "phpunit/phpunit": "^9.3|^10.1", - "spatie/pest-plugin-snapshots": "^1.1|^2.0", - "symfony/var-dumper": "^4.2|^5.1|^6.0|^7.0.3" + "laravel/framework": "^7.20 || ^8.19 || ^9.0 || ^10.0 || ^11.0", + "orchestra/testbench-core": "^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0", + "pestphp/pest": "^1.22 || ^2.0", + "phpstan/phpstan": "^1.10.57 || ^2.0.2", + "phpunit/phpunit": "^9.3 || ^10.1", + "rector/rector": "dev-main", + "spatie/pest-plugin-snapshots": "^1.1 || ^2.0", + "symfony/var-dumper": "^4.2 || ^5.1 || ^6.0 || ^7.0.3" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.29.x-dev" - }, "laravel": { "providers": [ "Spatie\\LaravelRay\\RayServiceProvider" ] + }, + "branch-alias": { + "dev-main": "1.x-dev" } }, "autoload": { @@ -8874,7 +9583,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-ray/issues", - "source": "https://github.com/spatie/laravel-ray/tree/1.35.1" + "source": "https://github.com/spatie/laravel-ray/tree/1.39.0" }, "funding": [ { @@ -8886,7 +9595,88 @@ "type": "other" } ], - "time": "2024-02-13T14:19:41+00:00" + "time": "2024-12-11T09:34:41+00:00" + }, + { + "name": "spatie/laravel-typescript-transformer", + "version": "2.5.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-typescript-transformer.git", + "reference": "cdf82498b7e02f89f5a3c0eeed78ac0d633a212b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-typescript-transformer/zipball/cdf82498b7e02f89f5a3c0eeed78ac0d633a212b", + "reference": "cdf82498b7e02f89f5a3c0eeed78ac0d633a212b", + "shasum": "" + }, + "require": { + "illuminate/console": "^8.83|^9.30|^10.0|^11.0", + "php": "^8.1", + "spatie/laravel-package-tools": "^1.12", + "spatie/typescript-transformer": "^2.4" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.0", + "mockery/mockery": "^1.4", + "nesbot/carbon": "^2.63", + "orchestra/testbench": "^6.0|^7.0|^8.0|^9.0", + "pestphp/pest": "^1.22|^2.0", + "phpunit/phpunit": "^9.0|^10.0|^11.0", + "spatie/data-transfer-object": "^2.0", + "spatie/enum": "^3.0", + "spatie/laravel-model-states": "^1.6|^2.0", + "spatie/pest-plugin-snapshots": "^1.1|^2.0", + "spatie/phpunit-snapshot-assertions": "^4.2|^5.0", + "spatie/temporary-directory": "^1.2" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Spatie\\LaravelTypeScriptTransformer\\TypeScriptTransformerServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Spatie\\LaravelTypeScriptTransformer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ruben Van Assche", + "email": "ruben@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Transform your PHP structures to TypeScript types", + "homepage": "https://github.com/spatie/typescript-transformer", + "keywords": [ + "spatie", + "typescript-transformer" + ], + "support": { + "issues": "https://github.com/spatie/laravel-typescript-transformer/issues", + "source": "https://github.com/spatie/laravel-typescript-transformer/tree/2.5.0" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2024-10-04T13:26:07+00:00" }, { "name": "spatie/macroable", @@ -8940,35 +9730,35 @@ }, { "name": "spatie/ray", - "version": "1.41.1", + "version": "1.41.4", "source": { "type": "git", "url": "https://github.com/spatie/ray.git", - "reference": "051a0facb1d2462fafef87ff77eb74d6f2d12944" + "reference": "c5dbda0548c1881b30549ccc0b6d485f7471aaa5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/ray/zipball/051a0facb1d2462fafef87ff77eb74d6f2d12944", - "reference": "051a0facb1d2462fafef87ff77eb74d6f2d12944", + "url": "https://api.github.com/repos/spatie/ray/zipball/c5dbda0548c1881b30549ccc0b6d485f7471aaa5", + "reference": "c5dbda0548c1881b30549ccc0b6d485f7471aaa5", "shasum": "" }, "require": { "ext-curl": "*", "ext-json": "*", - "php": "^7.3|^8.0", - "ramsey/uuid": "^3.0|^4.1", + "php": "^7.4 || ^8.0", + "ramsey/uuid": "^3.0 || ^4.1", "spatie/backtrace": "^1.1", - "spatie/macroable": "^1.0|^2.0", - "symfony/stopwatch": "^4.0|^5.1|^6.0|^7.0", - "symfony/var-dumper": "^4.2|^5.1|^6.0|^7.0" + "spatie/macroable": "^1.0 || ^2.0", + "symfony/stopwatch": "^4.2 || ^5.1 || ^6.0 || ^7.0", + "symfony/var-dumper": "^4.2 || ^5.1 || ^6.0 || ^7.0.3" }, "require-dev": { - "illuminate/support": "6.x|^8.18|^9.0", + "illuminate/support": "^7.20 || ^8.18 || ^9.0 || ^10.0 || ^11.0", "nesbot/carbon": "^2.63", "pestphp/pest": "^1.22", - "phpstan/phpstan": "^1.10", + "phpstan/phpstan": "^1.10.57 || ^2.0.2", "phpunit/phpunit": "^9.5", - "rector/rector": "^0.19.2", + "rector/rector": "dev-main", "spatie/phpunit-snapshot-assertions": "^4.2", "spatie/test-time": "^1.2" }, @@ -8976,6 +9766,11 @@ "bin/remove-ray.sh" ], "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, "autoload": { "files": [ "src/helpers.php" @@ -9004,7 +9799,7 @@ ], "support": { "issues": "https://github.com/spatie/ray/issues", - "source": "https://github.com/spatie/ray/tree/1.41.1" + "source": "https://github.com/spatie/ray/tree/1.41.4" }, "funding": [ { @@ -9016,24 +9811,96 @@ "type": "other" } ], - "time": "2024-01-25T10:15:50+00:00" + "time": "2024-12-09T11:32:15+00:00" + }, + { + "name": "spatie/typescript-transformer", + "version": "2.4.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/typescript-transformer.git", + "reference": "130c2447e0aa83f8d8d0ff590bc5bc402b17d641" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/typescript-transformer/zipball/130c2447e0aa83f8d8d0ff590bc5bc402b17d641", + "reference": "130c2447e0aa83f8d8d0ff590bc5bc402b17d641", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.18|^5.0", + "php": "^8.0", + "phpdocumentor/type-resolver": "^1.6.2", + "symfony/process": "^5.2|^6.0|^7.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.40", + "larapack/dd": "^1.1", + "myclabs/php-enum": "^1.7", + "pestphp/pest": "^1.22", + "phpstan/extension-installer": "^1.1", + "phpunit/phpunit": "^9.0", + "spatie/data-transfer-object": "^2.0", + "spatie/enum": "^3.0", + "spatie/pest-plugin-snapshots": "^1.1", + "spatie/temporary-directory": "^1.2|^2.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\TypeScriptTransformer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ruben Van Assche", + "email": "ruben@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Transform your PHP structures to TypeScript types", + "homepage": "https://github.com/spatie/typescript-transformer", + "keywords": [ + "spatie", + "typescript-transformer" + ], + "support": { + "issues": "https://github.com/spatie/typescript-transformer/issues", + "source": "https://github.com/spatie/typescript-transformer/tree/2.4.0" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2024-10-04T13:13:08+00:00" }, { "name": "symfony/polyfill-iconv", - "version": "v1.29.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "cd4226d140ecd3d0f13d32ed0a4a095ffe871d2f" + "reference": "48becf00c920479ca2e910c22a5a39e5d47ca956" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/cd4226d140ecd3d0f13d32ed0a4a095ffe871d2f", - "reference": "cd4226d140ecd3d0f13d32ed0a4a095ffe871d2f", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/48becf00c920479ca2e910c22a5a39e5d47ca956", + "reference": "48becf00c920479ca2e910c22a5a39e5d47ca956", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "provide": { "ext-iconv": "*" @@ -9080,7 +9947,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-iconv/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-iconv/tree/v1.31.0" }, "funding": [ { @@ -9096,20 +9963,20 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/stopwatch", - "version": "v7.0.3", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "983900d6fddf2b0cbaacacbbad07610854bd8112" + "reference": "696f418b0d722a4225e1c3d95489d262971ca924" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/983900d6fddf2b0cbaacacbbad07610854bd8112", - "reference": "983900d6fddf2b0cbaacacbbad07610854bd8112", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/696f418b0d722a4225e1c3d95489d262971ca924", + "reference": "696f418b0d722a4225e1c3d95489d262971ca924", "shasum": "" }, "require": { @@ -9142,7 +10009,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v7.0.3" + "source": "https://github.com/symfony/stopwatch/tree/v7.2.0" }, "funding": [ { @@ -9158,24 +10025,25 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/yaml", - "version": "v7.0.3", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "2d4fca631c00700597e9442a0b2451ce234513d3" + "reference": "099581e99f557e9f16b43c5916c26380b54abb22" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/2d4fca631c00700597e9442a0b2451ce234513d3", - "reference": "2d4fca631c00700597e9442a0b2451ce234513d3", + "url": "https://api.github.com/repos/symfony/yaml/zipball/099581e99f557e9f16b43c5916c26380b54abb22", + "reference": "099581e99f557e9f16b43c5916c26380b54abb22", "shasum": "" }, "require": { "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3.0", "symfony/polyfill-ctype": "^1.8" }, "conflict": { @@ -9213,7 +10081,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.0.3" + "source": "https://github.com/symfony/yaml/tree/v7.2.0" }, "funding": [ { @@ -9229,7 +10097,7 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-10-23T06:56:12+00:00" }, { "name": "theseer/tokenizer", @@ -9283,16 +10151,16 @@ }, { "name": "zbateson/mail-mime-parser", - "version": "2.4.0", + "version": "2.4.1", "source": { "type": "git", "url": "https://github.com/zbateson/mail-mime-parser.git", - "reference": "20b3e48eb799537683780bc8782fbbe9bc25934a" + "reference": "ff49e02f6489b38f7cc3d1bd3971adc0f872569c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zbateson/mail-mime-parser/zipball/20b3e48eb799537683780bc8782fbbe9bc25934a", - "reference": "20b3e48eb799537683780bc8782fbbe9bc25934a", + "url": "https://api.github.com/repos/zbateson/mail-mime-parser/zipball/ff49e02f6489b38f7cc3d1bd3971adc0f872569c", + "reference": "ff49e02f6489b38f7cc3d1bd3971adc0f872569c", "shasum": "" }, "require": { @@ -9354,20 +10222,20 @@ "type": "github" } ], - "time": "2023-02-14T22:58:03+00:00" + "time": "2024-04-28T00:58:54+00:00" }, { "name": "zbateson/mb-wrapper", - "version": "1.2.0", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/zbateson/mb-wrapper.git", - "reference": "faf35dddfacfc5d4d5f9210143eafd7a7fe74334" + "reference": "09a8b77eb94af3823a9a6623dcc94f8d988da67f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zbateson/mb-wrapper/zipball/faf35dddfacfc5d4d5f9210143eafd7a7fe74334", - "reference": "faf35dddfacfc5d4d5f9210143eafd7a7fe74334", + "url": "https://api.github.com/repos/zbateson/mb-wrapper/zipball/09a8b77eb94af3823a9a6623dcc94f8d988da67f", + "reference": "09a8b77eb94af3823a9a6623dcc94f8d988da67f", "shasum": "" }, "require": { @@ -9378,7 +10246,7 @@ "require-dev": { "friendsofphp/php-cs-fixer": "*", "phpstan/phpstan": "*", - "phpunit/phpunit": "<=9.0" + "phpunit/phpunit": "<10.0" }, "suggest": { "ext-iconv": "For best support/performance", @@ -9415,7 +10283,7 @@ ], "support": { "issues": "https://github.com/zbateson/mb-wrapper/issues", - "source": "https://github.com/zbateson/mb-wrapper/tree/1.2.0" + "source": "https://github.com/zbateson/mb-wrapper/tree/1.2.1" }, "funding": [ { @@ -9423,7 +10291,7 @@ "type": "github" } ], - "time": "2023-01-11T23:05:44+00:00" + "time": "2024-03-18T04:31:04+00:00" }, { "name": "zbateson/stream-decorators", @@ -9491,12 +10359,12 @@ ], "aliases": [], "minimum-stability": "dev", - "stability-flags": [], + "stability-flags": {}, "prefer-stable": true, "prefer-lowest": false, "platform": { "php": "^8.2" }, - "platform-dev": [], + "platform-dev": {}, "plugin-api-version": "2.6.0" } diff --git a/demo/config/sharp-old.php b/demo/config/sharp-old.php new file mode 100644 index 000000000..2c0a4e767 --- /dev/null +++ b/demo/config/sharp-old.php @@ -0,0 +1,101 @@ + 'Demo project', + 'custom_url_segment' => 'sharp', + 'display_sharp_version_in_title' => true, + 'display_breadcrumb' => true, + 'entities' => [ + 'z_z_zaaaas' => \App\Sharp\Entities\ZZZaaaaEntity::class, + 'posts' => \App\Sharp\Entities\PostEntity::class, + 'blocks' => \App\Sharp\Entities\PostBlockEntity::class, + 'categories' => \App\Sharp\Entities\CategoryEntity::class, + 'authors' => \App\Sharp\Entities\AuthorEntity::class, + 'profile' => \App\Sharp\Entities\ProfileEntity::class, + + 'test' => \App\Sharp\Entities\TestEntity::class, + ], + + 'dashboards' => [ + 'dashboard' => \App\Sharp\Entities\DemoDashboardEntity::class, + ], + + 'global_filters' => fn () => auth()->id() === 1 ? [] : [\App\Sharp\DummyGlobalFilter::class], + + 'search' => [ + 'enabled' => true, + 'placeholder' => 'Search for posts or authors...', + 'engine' => \App\Sharp\AppSearchEngine::class, + ], + + 'menu' => \App\Sharp\SharpMenu::class, + + 'uploads' => [ + 'tmp_dir' => env('SHARP_UPLOADS_TMP_DIR', 'tmp'), + 'thumbnails_disk' => env('SHARP_UPLOADS_THUMBS_DISK', 'public'), + 'thumbnails_dir' => env('SHARP_UPLOADS_THUMBS_DIR', 'thumbnails'), + 'transform_keep_original_image' => true, + 'model_class' => \App\Models\Media::class, + ], + + 'auth' => [ + 'login_attribute' => 'email', + 'password_attribute' => 'password', + 'rate_limiting' => [ + 'enabled' => true, + 'max_attempts' => 5, + ], + '2fa' => [ + 'enabled' => true, + 'handler' => env('DEMO_2FA_TOTP_ENABLED', false) + ? 'totp' + : \App\Sharp\Demo2faNotificationHandler::class, + ], + 'forgotten_password' => [ + 'enabled' => true, + // 'password_broker' => null, + // 'reset_password_callback' => null, + ], + 'display_attribute' => 'name', + 'impersonate' => [ + 'enabled' => env('SHARP_IMPERSONATE', false), + 'handler' => Code16\Sharp\Auth\Impersonate\SharpDefaultEloquentImpersonationHandler::class, + ], + 'login_form' => [ + 'suggest_remember_me' => true, + 'display_app_name' => true, + // 'logo_url' => '/img/sharp/login-icon.png', + 'message_blade_path' => 'sharp/_login-page-message', + + /** @internal */ + 'prefill' => [ + 'login' => 'admin@example.org', + 'password' => 'password', + ], + ], + + // "check_handler" => \App\Sharp\Auth\MySharpCheckHandler::class, + ], + + 'theme' => [ + 'primary_color' => '#0c4589', + 'favicon_url' => '/img/sharp/favicon-32x32.png', + 'logo_url' => '/img/sharp/logo.svg', + 'logo_height' => '1rem', + ], + + 'extensions' => [ + 'assets' => [ + 'strategy' => 'vite', + 'head' => [ + 'resources/css/sharp-extension.css', + ], + ], + 'activate_custom_fields' => true, + ], + + 'markdown_editor' => [ + 'nl2br' => false, + 'tight_lists_only' => true, + ], +]; diff --git a/demo/config/sharp.php b/demo/config/sharp.php deleted file mode 100644 index 28db7d7d4..000000000 --- a/demo/config/sharp.php +++ /dev/null @@ -1,81 +0,0 @@ - 'Demo project', - 'custom_url_segment' => 'sharp', - 'display_sharp_version_in_title' => true, - 'display_breadcrumb' => true, - 'locale' => 'fr_FR.UTF-8', - 'entities' => [ - 'posts' => \App\Sharp\Entities\PostEntity::class, - 'blocks' => \App\Sharp\Entities\PostBlockEntity::class, - 'categories' => \App\Sharp\Entities\CategoryEntity::class, - 'authors' => \App\Sharp\Entities\AuthorEntity::class, - 'profile' => \App\Sharp\Entities\ProfileEntity::class, - 'dashboard' => \App\Sharp\Entities\DemoDashboardEntity::class, - - 'test' => \App\Sharp\Entities\TestEntity::class, - ], - - 'global_filters' => fn () => auth()->id() === 1 ? [] : [\App\Sharp\DummyGlobalFilter::class], - - 'search' => [ - 'enabled' => true, - 'placeholder' => 'Search for posts or authors...', - 'engine' => \App\Sharp\AppSearchEngine::class, - ], - - 'menu' => \App\Sharp\SharpMenu::class, - - 'uploads' => [ - 'tmp_dir' => env('SHARP_UPLOADS_TMP_DIR', 'tmp'), - 'thumbnails_disk' => env('SHARP_UPLOADS_THUMBS_DISK', 'public'), - 'thumbnails_dir' => env('SHARP_UPLOADS_THUMBS_DIR', 'thumbnails'), - 'transform_keep_original_image' => true, - 'model_class' => \App\Models\Media::class, - ], - - 'auth' => [ - 'login_attribute' => 'email', - 'password_attribute' => 'password', - 'suggest_remember_me' => false, - 'rate_limiting' => [ - 'enabled' => true, - 'max_attempts' => 5, - ], - '2fa' => [ - 'enabled' => true, - 'handler' => env('DEMO_2FA_TOTP_ENABLED', false) - ? 'totp' - : \App\Sharp\Demo2faNotificationHandler::class, - ], - 'display_attribute' => 'name', - // "check_handler" => \App\Sharp\Auth\MySharpCheckHandler::class, - ], - - 'theme' => [ - 'primary_color' => '#0c4589', - 'favicon_url' => '/img/sharp/favicon-32x32.png', - 'logo_urls' => [ - 'menu' => '/img/sharp/menu-icon.png', - 'login' => '/img/sharp/login-icon.png', - ], - ], - - 'login_page_message_blade_path' => env('SHARP_LOGIN_PAGE_MESSAGE_BLADE_PATH', 'sharp/_login-page-message'), - - 'extensions' => [ - 'assets' => [ - 'strategy' => 'vite', - 'head' => [ - 'resources/css/sharp-extension.css', - ], - ], - 'activate_custom_fields' => true, - ], - - 'markdown_editor' => [ - 'nl2br' => false, - 'tight_lists_only' => true, - ], -]; diff --git a/demo/config/ziggy.php b/demo/config/ziggy.php new file mode 100644 index 000000000..ee2fd231f --- /dev/null +++ b/demo/config/ziggy.php @@ -0,0 +1,5 @@ + ['ignition.*'], +]; diff --git a/demo/database/factories/CategoryFactory.php b/demo/database/factories/CategoryFactory.php index 2f3c70616..6dca4af16 100644 --- a/demo/database/factories/CategoryFactory.php +++ b/demo/database/factories/CategoryFactory.php @@ -13,6 +13,7 @@ public function definition() { return [ 'name' => $this->faker->unique()->randomElement(static::$categoryNames), + 'description' => $this->faker->paragraph(), ]; } } diff --git a/demo/database/factories/MediaFactory.php b/demo/database/factories/MediaFactory.php index 2bd46bbc7..1e8d1ccc6 100644 --- a/demo/database/factories/MediaFactory.php +++ b/demo/database/factories/MediaFactory.php @@ -4,6 +4,7 @@ use App\Models\Media; use Illuminate\Database\Eloquent\Factories\Factory; +use Illuminate\Support\Facades\File; class MediaFactory extends Factory { @@ -25,6 +26,8 @@ public function withFile(string $srcFullPath, string $destRelativePath) return [ 'file_name' => sprintf("data/$destRelativePath/%s", basename($srcFullPath)), + 'size' => filesize($srcFullPath), + 'mime_type' => File::mimeType($srcFullPath), ]; }); } diff --git a/demo/database/migrations/2014_10_12_100000_create_password_resets_table.php b/demo/database/migrations/2014_10_12_100000_create_password_resets_table.php index 601e30038..c44797ab7 100644 --- a/demo/database/migrations/2014_10_12_100000_create_password_resets_table.php +++ b/demo/database/migrations/2014_10_12_100000_create_password_resets_table.php @@ -6,11 +6,6 @@ return new class() extends Migration { - /** - * Run the migrations. - * - * @return void - */ public function up() { Schema::create('password_resets', function (Blueprint $table) { @@ -19,14 +14,4 @@ public function up() $table->timestamp('created_at')->nullable(); }); } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('password_resets'); - } }; diff --git a/demo/database/migrations/2019_08_19_000000_create_failed_jobs_table.php b/demo/database/migrations/2019_08_19_000000_create_failed_jobs_table.php index 962b5e872..b4e718df8 100644 --- a/demo/database/migrations/2019_08_19_000000_create_failed_jobs_table.php +++ b/demo/database/migrations/2019_08_19_000000_create_failed_jobs_table.php @@ -6,11 +6,6 @@ return new class() extends Migration { - /** - * Run the migrations. - * - * @return void - */ public function up() { Schema::create('failed_jobs', function (Blueprint $table) { @@ -23,14 +18,4 @@ public function up() $table->timestamp('failed_at')->useCurrent(); }); } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('failed_jobs'); - } }; diff --git a/demo/database/migrations/2022_03_02_145244_create_categories_table.php b/demo/database/migrations/2022_03_02_145244_create_categories_table.php index 5fa102c89..b1681a87c 100644 --- a/demo/database/migrations/2022_03_02_145244_create_categories_table.php +++ b/demo/database/migrations/2022_03_02_145244_create_categories_table.php @@ -11,7 +11,8 @@ public function up() Schema::create('categories', function (Blueprint $table) { $table->id(); $table->string('name'); - $table->unsignedSmallInteger('order'); + $table->text('description')->nullable(); + $table->unsignedSmallInteger('order')->default(100); $table->timestamps(); }); diff --git a/demo/package-lock.json b/demo/package-lock.json index 6e0ccf58b..ef5b93b0b 100644 --- a/demo/package-lock.json +++ b/demo/package-lock.json @@ -5,10 +5,11 @@ "packages": { "": { "devDependencies": { - "laravel-vite-plugin": "^0.7.8", + "@tailwindcss/typography": "^0.5.15", + "laravel-vite-plugin": "^1.0.6", "postcss": "^8.4.27", "tailwindcss": "^3.3.3", - "vite": "^4.4.8" + "vite": "^5.4.11" } }, "node_modules/@alloc/quick-lru": { @@ -23,10 +24,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@esbuild/android-arm": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.17.tgz", - "integrity": "sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", "cpu": [ "arm" ], @@ -40,9 +57,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.17.tgz", - "integrity": "sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", "cpu": [ "arm64" ], @@ -56,9 +73,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.17.tgz", - "integrity": "sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", "cpu": [ "x64" ], @@ -72,9 +89,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.17.tgz", - "integrity": "sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", "cpu": [ "arm64" ], @@ -88,9 +105,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.17.tgz", - "integrity": "sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", "cpu": [ "x64" ], @@ -104,9 +121,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.17.tgz", - "integrity": "sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", "cpu": [ "arm64" ], @@ -120,9 +137,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.17.tgz", - "integrity": "sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", "cpu": [ "x64" ], @@ -136,9 +153,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.17.tgz", - "integrity": "sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", "cpu": [ "arm" ], @@ -152,9 +169,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.17.tgz", - "integrity": "sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", "cpu": [ "arm64" ], @@ -168,9 +185,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.17.tgz", - "integrity": "sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", "cpu": [ "ia32" ], @@ -184,9 +201,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.17.tgz", - "integrity": "sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", "cpu": [ "loong64" ], @@ -200,9 +217,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.17.tgz", - "integrity": "sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", "cpu": [ "mips64el" ], @@ -216,9 +233,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.17.tgz", - "integrity": "sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", "cpu": [ "ppc64" ], @@ -232,9 +249,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.17.tgz", - "integrity": "sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", "cpu": [ "riscv64" ], @@ -248,9 +265,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.17.tgz", - "integrity": "sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", "cpu": [ "s390x" ], @@ -264,9 +281,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.17.tgz", - "integrity": "sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", "cpu": [ "x64" ], @@ -280,9 +297,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.17.tgz", - "integrity": "sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", "cpu": [ "x64" ], @@ -296,9 +313,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.17.tgz", - "integrity": "sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", "cpu": [ "x64" ], @@ -312,9 +329,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.17.tgz", - "integrity": "sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", "cpu": [ "x64" ], @@ -328,9 +345,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.17.tgz", - "integrity": "sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", "cpu": [ "arm64" ], @@ -344,9 +361,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.17.tgz", - "integrity": "sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", "cpu": [ "ia32" ], @@ -360,9 +377,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.17.tgz", - "integrity": "sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", "cpu": [ "x64" ], @@ -464,6 +481,274 @@ "node": ">= 8" } }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.27.3.tgz", + "integrity": "sha512-EzxVSkIvCFxUd4Mgm4xR9YXrcp976qVaHnqom/Tgm+vU79k4vV4eYTjmRvGfeoW8m9LVcsAy/lGjcgVegKEhLQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.27.3.tgz", + "integrity": "sha512-LJc5pDf1wjlt9o/Giaw9Ofl+k/vLUaYsE2zeQGH85giX2F+wn/Cg8b3c5CDP3qmVmeO5NzwVUzQQxwZvC2eQKw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.27.3.tgz", + "integrity": "sha512-OuRysZ1Mt7wpWJ+aYKblVbJWtVn3Cy52h8nLuNSzTqSesYw1EuN6wKp5NW/4eSre3mp12gqFRXOKTcN3AI3LqA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.27.3.tgz", + "integrity": "sha512-xW//zjJMlJs2sOrCmXdB4d0uiilZsOdlGQIC/jjmMWT47lkLLoB1nsNhPUcnoqyi5YR6I4h+FjBpILxbEy8JRg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.27.3.tgz", + "integrity": "sha512-58E0tIcwZ+12nK1WiLzHOD8I0d0kdrY/+o7yFVPRHuVGY3twBwzwDdTIBGRxLmyjciMYl1B/U515GJy+yn46qw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.27.3.tgz", + "integrity": "sha512-78fohrpcVwTLxg1ZzBMlwEimoAJmY6B+5TsyAZ3Vok7YabRBUvjYTsRXPTjGEvv/mfgVBepbW28OlMEz4w8wGA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.27.3.tgz", + "integrity": "sha512-h2Ay79YFXyQi+QZKo3ISZDyKaVD7uUvukEHTOft7kh00WF9mxAaxZsNs3o/eukbeKuH35jBvQqrT61fzKfAB/Q==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.27.3.tgz", + "integrity": "sha512-Sv2GWmrJfRY57urktVLQ0VKZjNZGogVtASAgosDZ1aUB+ykPxSi3X1nWORL5Jk0sTIIwQiPH7iE3BMi9zGWfkg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.27.3.tgz", + "integrity": "sha512-FPoJBLsPW2bDNWjSrwNuTPUt30VnfM8GPGRoLCYKZpPx0xiIEdFip3dH6CqgoT0RnoGXptaNziM0WlKgBc+OWQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.27.3.tgz", + "integrity": "sha512-TKxiOvBorYq4sUpA0JT+Fkh+l+G9DScnG5Dqx7wiiqVMiRSkzTclP35pE6eQQYjP4Gc8yEkJGea6rz4qyWhp3g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.27.3.tgz", + "integrity": "sha512-v2M/mPvVUKVOKITa0oCFksnQQ/TqGrT+yD0184/cWHIu0LoIuYHwox0Pm3ccXEz8cEQDLk6FPKd1CCm+PlsISw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.27.3.tgz", + "integrity": "sha512-LdrI4Yocb1a/tFVkzmOE5WyYRgEBOyEhWYJe4gsDWDiwnjYKjNs7PS6SGlTDB7maOHF4kxevsuNBl2iOcj3b4A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.27.3.tgz", + "integrity": "sha512-d4wVu6SXij/jyiwPvI6C4KxdGzuZOvJ6y9VfrcleHTwo68fl8vZC5ZYHsCVPUi4tndCfMlFniWgwonQ5CUpQcA==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.27.3.tgz", + "integrity": "sha512-/6bn6pp1fsCGEY5n3yajmzZQAh+mW4QPItbiWxs69zskBzJuheb3tNynEjL+mKOsUSFK11X4LYF2BwwXnzWleA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.27.3.tgz", + "integrity": "sha512-nBXOfJds8OzUT1qUreT/en3eyOXd2EH5b0wr2bVB5999qHdGKkzGzIyKYaKj02lXk6wpN71ltLIaQpu58YFBoQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.27.3.tgz", + "integrity": "sha512-ogfbEVQgIZOz5WPWXF2HVb6En+kWzScuxJo/WdQTqEgeyGkaa2ui5sQav9Zkr7bnNCLK48uxmmK0TySm22eiuw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.27.3.tgz", + "integrity": "sha512-ecE36ZBMLINqiTtSNQ1vzWc5pXLQHlf/oqGp/bSbi7iedcjcNb6QbCBNG73Euyy2C+l/fn8qKWEwxr+0SSfs3w==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.27.3.tgz", + "integrity": "sha512-vliZLrDmYKyaUoMzEbMTg2JkerfBjn03KmAw9CykO0Zzkzoyd7o3iZNam/TpyWNjNT+Cz2iO3P9Smv2wgrR+Eg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@tailwindcss/typography": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.15.tgz", + "integrity": "sha512-AqhlCXl+8grUz8uqExv5OTtgpjuVIwFTSXTrh8y9/pw6q2ek7fJ+Y8ZEVw7EB2DCcuCOtEjf9w3+J3rzts01uA==", + "dev": true, + "dependencies": { + "lodash.castarray": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "postcss-selector-parser": "6.0.10" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20" + } + }, + "node_modules/@tailwindcss/typography/node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, "node_modules/any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", @@ -614,9 +899,9 @@ "dev": true }, "node_modules/esbuild": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.17.tgz", - "integrity": "sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, "hasInstallScript": true, "bin": { @@ -626,28 +911,29 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.18.17", - "@esbuild/android-arm64": "0.18.17", - "@esbuild/android-x64": "0.18.17", - "@esbuild/darwin-arm64": "0.18.17", - "@esbuild/darwin-x64": "0.18.17", - "@esbuild/freebsd-arm64": "0.18.17", - "@esbuild/freebsd-x64": "0.18.17", - "@esbuild/linux-arm": "0.18.17", - "@esbuild/linux-arm64": "0.18.17", - "@esbuild/linux-ia32": "0.18.17", - "@esbuild/linux-loong64": "0.18.17", - "@esbuild/linux-mips64el": "0.18.17", - "@esbuild/linux-ppc64": "0.18.17", - "@esbuild/linux-riscv64": "0.18.17", - "@esbuild/linux-s390x": "0.18.17", - "@esbuild/linux-x64": "0.18.17", - "@esbuild/netbsd-x64": "0.18.17", - "@esbuild/openbsd-x64": "0.18.17", - "@esbuild/sunos-x64": "0.18.17", - "@esbuild/win32-arm64": "0.18.17", - "@esbuild/win32-ia32": "0.18.17", - "@esbuild/win32-x64": "0.18.17" + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" } }, "node_modules/fast-glob": { @@ -706,9 +992,9 @@ "dev": true }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, "optional": true, @@ -849,19 +1135,22 @@ } }, "node_modules/laravel-vite-plugin": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-0.7.8.tgz", - "integrity": "sha512-HWYqpQYHR3kEQ1LsHX7gHJoNNf0bz5z5mDaHBLzS+PGLCTmYqlU5/SZyeEgObV7z7bC/cnStYcY9H1DI1D5Udg==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-1.0.6.tgz", + "integrity": "sha512-B34OqmZc/rV1KvSjst8SsUm/LKHsuDusw8jiZCIhlnTHXbXnK89JUM9pTJuk6E/Vc/1DT2gX7qNfhipak1WS8w==", "dev": true, "dependencies": { "picocolors": "^1.0.0", - "vite-plugin-full-reload": "^1.0.5" + "vite-plugin-full-reload": "^1.1.0" + }, + "bin": { + "clean-orphaned-assets": "bin/clean.js" }, "engines": { - "node": ">=14" + "node": "^18.0.0 || >=20.0.0" }, "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0" + "vite": "^5.0.0" } }, "node_modules/lilconfig": { @@ -879,6 +1168,24 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, + "node_modules/lodash.castarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", + "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==", + "dev": true + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -925,9 +1232,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true, "funding": [ { @@ -994,9 +1301,9 @@ "dev": true }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true }, "node_modules/picomatch": { @@ -1030,9 +1337,9 @@ } }, "node_modules/postcss": { - "version": "8.4.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.27.tgz", - "integrity": "sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "dev": true, "funding": [ { @@ -1049,9 +1356,9 @@ } ], "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" @@ -1229,18 +1536,39 @@ } }, "node_modules/rollup": { - "version": "3.27.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.27.1.tgz", - "integrity": "sha512-tXNDFwOkN6C2w5Blj1g6ForKeFw6c1mDu5jxoeDO3/pmYjgt+8yvIFjKzH5FQUq70OKZBkOt0zzv0THXL7vwzQ==", + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.27.3.tgz", + "integrity": "sha512-SLsCOnlmGt9VoZ9Ek8yBK8tAdmPHeppkw+Xa7yDlCEhDTvwYei03JlWo1fdc7YTfLZ4tD8riJCUyAgTbszk1fQ==", "dev": true, + "dependencies": { + "@types/estree": "1.0.6" + }, "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=14.18.0", + "node": ">=18.0.0", "npm": ">=8.0.0" }, "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.27.3", + "@rollup/rollup-android-arm64": "4.27.3", + "@rollup/rollup-darwin-arm64": "4.27.3", + "@rollup/rollup-darwin-x64": "4.27.3", + "@rollup/rollup-freebsd-arm64": "4.27.3", + "@rollup/rollup-freebsd-x64": "4.27.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.27.3", + "@rollup/rollup-linux-arm-musleabihf": "4.27.3", + "@rollup/rollup-linux-arm64-gnu": "4.27.3", + "@rollup/rollup-linux-arm64-musl": "4.27.3", + "@rollup/rollup-linux-powerpc64le-gnu": "4.27.3", + "@rollup/rollup-linux-riscv64-gnu": "4.27.3", + "@rollup/rollup-linux-s390x-gnu": "4.27.3", + "@rollup/rollup-linux-x64-gnu": "4.27.3", + "@rollup/rollup-linux-x64-musl": "4.27.3", + "@rollup/rollup-win32-arm64-msvc": "4.27.3", + "@rollup/rollup-win32-ia32-msvc": "4.27.3", + "@rollup/rollup-win32-x64-msvc": "4.27.3", "fsevents": "~2.3.2" } }, @@ -1268,9 +1596,9 @@ } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -1393,32 +1721,33 @@ "dev": true }, "node_modules/vite": { - "version": "4.4.8", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.8.tgz", - "integrity": "sha512-LONawOUUjxQridNWGQlNizfKH89qPigK36XhMI7COMGztz8KNY0JHim7/xDd71CZwGT4HtSRgI7Hy+RlhG0Gvg==", + "version": "5.4.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.11.tgz", + "integrity": "sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==", "dev": true, "dependencies": { - "esbuild": "^0.18.10", - "postcss": "^8.4.26", - "rollup": "^3.25.2" + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": "^18.0.0 || >=20.0.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" }, "optionalDependencies": { - "fsevents": "~2.3.2" + "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": ">= 14", + "@types/node": "^18.0.0 || >=20.0.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", + "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" @@ -1436,6 +1765,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, @@ -1448,16 +1780,13 @@ } }, "node_modules/vite-plugin-full-reload": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.0.5.tgz", - "integrity": "sha512-kVZFDFWr0DxiHn6MuDVTQf7gnWIdETGlZh0hvTiMXzRN80vgF4PKbONSq8U1d0WtHsKaFODTQgJeakLacoPZEQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.2.0.tgz", + "integrity": "sha512-kz18NW79x0IHbxRSHm0jttP4zoO9P9gXh+n6UTwlNKnviTTEpOlum6oS9SmecrTtSr+muHEn5TUuC75UovQzcA==", "dev": true, "dependencies": { "picocolors": "^1.0.0", "picomatch": "^2.3.1" - }, - "peerDependencies": { - "vite": "^2 || ^3 || ^4" } }, "node_modules/wrappy": { @@ -1483,157 +1812,164 @@ "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", "dev": true }, + "@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "dev": true, + "optional": true + }, "@esbuild/android-arm": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.17.tgz", - "integrity": "sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", "dev": true, "optional": true }, "@esbuild/android-arm64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.17.tgz", - "integrity": "sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", "dev": true, "optional": true }, "@esbuild/android-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.17.tgz", - "integrity": "sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", "dev": true, "optional": true }, "@esbuild/darwin-arm64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.17.tgz", - "integrity": "sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", "dev": true, "optional": true }, "@esbuild/darwin-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.17.tgz", - "integrity": "sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", "dev": true, "optional": true }, "@esbuild/freebsd-arm64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.17.tgz", - "integrity": "sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", "dev": true, "optional": true }, "@esbuild/freebsd-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.17.tgz", - "integrity": "sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", "dev": true, "optional": true }, "@esbuild/linux-arm": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.17.tgz", - "integrity": "sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", "dev": true, "optional": true }, "@esbuild/linux-arm64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.17.tgz", - "integrity": "sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", "dev": true, "optional": true }, "@esbuild/linux-ia32": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.17.tgz", - "integrity": "sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", "dev": true, "optional": true }, "@esbuild/linux-loong64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.17.tgz", - "integrity": "sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", "dev": true, "optional": true }, "@esbuild/linux-mips64el": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.17.tgz", - "integrity": "sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", "dev": true, "optional": true }, "@esbuild/linux-ppc64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.17.tgz", - "integrity": "sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", "dev": true, "optional": true }, "@esbuild/linux-riscv64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.17.tgz", - "integrity": "sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", "dev": true, "optional": true }, "@esbuild/linux-s390x": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.17.tgz", - "integrity": "sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", "dev": true, "optional": true }, "@esbuild/linux-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.17.tgz", - "integrity": "sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", "dev": true, "optional": true }, "@esbuild/netbsd-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.17.tgz", - "integrity": "sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", "dev": true, "optional": true }, "@esbuild/openbsd-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.17.tgz", - "integrity": "sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", "dev": true, "optional": true }, "@esbuild/sunos-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.17.tgz", - "integrity": "sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", "dev": true, "optional": true }, "@esbuild/win32-arm64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.17.tgz", - "integrity": "sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", "dev": true, "optional": true }, "@esbuild/win32-ia32": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.17.tgz", - "integrity": "sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", "dev": true, "optional": true }, "@esbuild/win32-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.17.tgz", - "integrity": "sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", "dev": true, "optional": true }, @@ -1710,6 +2046,162 @@ "fastq": "^1.6.0" } }, + "@rollup/rollup-android-arm-eabi": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.27.3.tgz", + "integrity": "sha512-EzxVSkIvCFxUd4Mgm4xR9YXrcp976qVaHnqom/Tgm+vU79k4vV4eYTjmRvGfeoW8m9LVcsAy/lGjcgVegKEhLQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-android-arm64": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.27.3.tgz", + "integrity": "sha512-LJc5pDf1wjlt9o/Giaw9Ofl+k/vLUaYsE2zeQGH85giX2F+wn/Cg8b3c5CDP3qmVmeO5NzwVUzQQxwZvC2eQKw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-darwin-arm64": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.27.3.tgz", + "integrity": "sha512-OuRysZ1Mt7wpWJ+aYKblVbJWtVn3Cy52h8nLuNSzTqSesYw1EuN6wKp5NW/4eSre3mp12gqFRXOKTcN3AI3LqA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-darwin-x64": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.27.3.tgz", + "integrity": "sha512-xW//zjJMlJs2sOrCmXdB4d0uiilZsOdlGQIC/jjmMWT47lkLLoB1nsNhPUcnoqyi5YR6I4h+FjBpILxbEy8JRg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-freebsd-arm64": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.27.3.tgz", + "integrity": "sha512-58E0tIcwZ+12nK1WiLzHOD8I0d0kdrY/+o7yFVPRHuVGY3twBwzwDdTIBGRxLmyjciMYl1B/U515GJy+yn46qw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-freebsd-x64": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.27.3.tgz", + "integrity": "sha512-78fohrpcVwTLxg1ZzBMlwEimoAJmY6B+5TsyAZ3Vok7YabRBUvjYTsRXPTjGEvv/mfgVBepbW28OlMEz4w8wGA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.27.3.tgz", + "integrity": "sha512-h2Ay79YFXyQi+QZKo3ISZDyKaVD7uUvukEHTOft7kh00WF9mxAaxZsNs3o/eukbeKuH35jBvQqrT61fzKfAB/Q==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm-musleabihf": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.27.3.tgz", + "integrity": "sha512-Sv2GWmrJfRY57urktVLQ0VKZjNZGogVtASAgosDZ1aUB+ykPxSi3X1nWORL5Jk0sTIIwQiPH7iE3BMi9zGWfkg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm64-gnu": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.27.3.tgz", + "integrity": "sha512-FPoJBLsPW2bDNWjSrwNuTPUt30VnfM8GPGRoLCYKZpPx0xiIEdFip3dH6CqgoT0RnoGXptaNziM0WlKgBc+OWQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm64-musl": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.27.3.tgz", + "integrity": "sha512-TKxiOvBorYq4sUpA0JT+Fkh+l+G9DScnG5Dqx7wiiqVMiRSkzTclP35pE6eQQYjP4Gc8yEkJGea6rz4qyWhp3g==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.27.3.tgz", + "integrity": "sha512-v2M/mPvVUKVOKITa0oCFksnQQ/TqGrT+yD0184/cWHIu0LoIuYHwox0Pm3ccXEz8cEQDLk6FPKd1CCm+PlsISw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-riscv64-gnu": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.27.3.tgz", + "integrity": "sha512-LdrI4Yocb1a/tFVkzmOE5WyYRgEBOyEhWYJe4gsDWDiwnjYKjNs7PS6SGlTDB7maOHF4kxevsuNBl2iOcj3b4A==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-s390x-gnu": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.27.3.tgz", + "integrity": "sha512-d4wVu6SXij/jyiwPvI6C4KxdGzuZOvJ6y9VfrcleHTwo68fl8vZC5ZYHsCVPUi4tndCfMlFniWgwonQ5CUpQcA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-x64-gnu": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.27.3.tgz", + "integrity": "sha512-/6bn6pp1fsCGEY5n3yajmzZQAh+mW4QPItbiWxs69zskBzJuheb3tNynEjL+mKOsUSFK11X4LYF2BwwXnzWleA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-x64-musl": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.27.3.tgz", + "integrity": "sha512-nBXOfJds8OzUT1qUreT/en3eyOXd2EH5b0wr2bVB5999qHdGKkzGzIyKYaKj02lXk6wpN71ltLIaQpu58YFBoQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-arm64-msvc": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.27.3.tgz", + "integrity": "sha512-ogfbEVQgIZOz5WPWXF2HVb6En+kWzScuxJo/WdQTqEgeyGkaa2ui5sQav9Zkr7bnNCLK48uxmmK0TySm22eiuw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-ia32-msvc": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.27.3.tgz", + "integrity": "sha512-ecE36ZBMLINqiTtSNQ1vzWc5pXLQHlf/oqGp/bSbi7iedcjcNb6QbCBNG73Euyy2C+l/fn8qKWEwxr+0SSfs3w==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-x64-msvc": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.27.3.tgz", + "integrity": "sha512-vliZLrDmYKyaUoMzEbMTg2JkerfBjn03KmAw9CykO0Zzkzoyd7o3iZNam/TpyWNjNT+Cz2iO3P9Smv2wgrR+Eg==", + "dev": true, + "optional": true + }, + "@tailwindcss/typography": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.15.tgz", + "integrity": "sha512-AqhlCXl+8grUz8uqExv5OTtgpjuVIwFTSXTrh8y9/pw6q2ek7fJ+Y8ZEVw7EB2DCcuCOtEjf9w3+J3rzts01uA==", + "dev": true, + "requires": { + "lodash.castarray": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "postcss-selector-parser": "6.0.10" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + } + } + }, + "@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, "any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", @@ -1827,33 +2319,34 @@ "dev": true }, "esbuild": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.17.tgz", - "integrity": "sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, "requires": { - "@esbuild/android-arm": "0.18.17", - "@esbuild/android-arm64": "0.18.17", - "@esbuild/android-x64": "0.18.17", - "@esbuild/darwin-arm64": "0.18.17", - "@esbuild/darwin-x64": "0.18.17", - "@esbuild/freebsd-arm64": "0.18.17", - "@esbuild/freebsd-x64": "0.18.17", - "@esbuild/linux-arm": "0.18.17", - "@esbuild/linux-arm64": "0.18.17", - "@esbuild/linux-ia32": "0.18.17", - "@esbuild/linux-loong64": "0.18.17", - "@esbuild/linux-mips64el": "0.18.17", - "@esbuild/linux-ppc64": "0.18.17", - "@esbuild/linux-riscv64": "0.18.17", - "@esbuild/linux-s390x": "0.18.17", - "@esbuild/linux-x64": "0.18.17", - "@esbuild/netbsd-x64": "0.18.17", - "@esbuild/openbsd-x64": "0.18.17", - "@esbuild/sunos-x64": "0.18.17", - "@esbuild/win32-arm64": "0.18.17", - "@esbuild/win32-ia32": "0.18.17", - "@esbuild/win32-x64": "0.18.17" + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" } }, "fast-glob": { @@ -1905,9 +2398,9 @@ "dev": true }, "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "optional": true }, @@ -2011,13 +2504,13 @@ "dev": true }, "laravel-vite-plugin": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-0.7.8.tgz", - "integrity": "sha512-HWYqpQYHR3kEQ1LsHX7gHJoNNf0bz5z5mDaHBLzS+PGLCTmYqlU5/SZyeEgObV7z7bC/cnStYcY9H1DI1D5Udg==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-1.0.6.tgz", + "integrity": "sha512-B34OqmZc/rV1KvSjst8SsUm/LKHsuDusw8jiZCIhlnTHXbXnK89JUM9pTJuk6E/Vc/1DT2gX7qNfhipak1WS8w==", "dev": true, "requires": { "picocolors": "^1.0.0", - "vite-plugin-full-reload": "^1.0.5" + "vite-plugin-full-reload": "^1.1.0" } }, "lilconfig": { @@ -2032,6 +2525,24 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, + "lodash.castarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", + "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==", + "dev": true + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -2069,9 +2580,9 @@ } }, "nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true }, "normalize-path": { @@ -2114,9 +2625,9 @@ "dev": true }, "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true }, "picomatch": { @@ -2138,14 +2649,14 @@ "dev": true }, "postcss": { - "version": "8.4.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.27.tgz", - "integrity": "sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "dev": true, "requires": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" } }, "postcss-import": { @@ -2245,11 +2756,30 @@ "dev": true }, "rollup": { - "version": "3.27.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.27.1.tgz", - "integrity": "sha512-tXNDFwOkN6C2w5Blj1g6ForKeFw6c1mDu5jxoeDO3/pmYjgt+8yvIFjKzH5FQUq70OKZBkOt0zzv0THXL7vwzQ==", + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.27.3.tgz", + "integrity": "sha512-SLsCOnlmGt9VoZ9Ek8yBK8tAdmPHeppkw+Xa7yDlCEhDTvwYei03JlWo1fdc7YTfLZ4tD8riJCUyAgTbszk1fQ==", "dev": true, "requires": { + "@rollup/rollup-android-arm-eabi": "4.27.3", + "@rollup/rollup-android-arm64": "4.27.3", + "@rollup/rollup-darwin-arm64": "4.27.3", + "@rollup/rollup-darwin-x64": "4.27.3", + "@rollup/rollup-freebsd-arm64": "4.27.3", + "@rollup/rollup-freebsd-x64": "4.27.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.27.3", + "@rollup/rollup-linux-arm-musleabihf": "4.27.3", + "@rollup/rollup-linux-arm64-gnu": "4.27.3", + "@rollup/rollup-linux-arm64-musl": "4.27.3", + "@rollup/rollup-linux-powerpc64le-gnu": "4.27.3", + "@rollup/rollup-linux-riscv64-gnu": "4.27.3", + "@rollup/rollup-linux-s390x-gnu": "4.27.3", + "@rollup/rollup-linux-x64-gnu": "4.27.3", + "@rollup/rollup-linux-x64-musl": "4.27.3", + "@rollup/rollup-win32-arm64-msvc": "4.27.3", + "@rollup/rollup-win32-ia32-msvc": "4.27.3", + "@rollup/rollup-win32-x64-msvc": "4.27.3", + "@types/estree": "1.0.6", "fsevents": "~2.3.2" } }, @@ -2263,9 +2793,9 @@ } }, "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true }, "sucrase": { @@ -2359,21 +2889,21 @@ "dev": true }, "vite": { - "version": "4.4.8", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.8.tgz", - "integrity": "sha512-LONawOUUjxQridNWGQlNizfKH89qPigK36XhMI7COMGztz8KNY0JHim7/xDd71CZwGT4HtSRgI7Hy+RlhG0Gvg==", + "version": "5.4.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.11.tgz", + "integrity": "sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==", "dev": true, "requires": { - "esbuild": "^0.18.10", - "fsevents": "~2.3.2", - "postcss": "^8.4.26", - "rollup": "^3.25.2" + "esbuild": "^0.21.3", + "fsevents": "~2.3.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" } }, "vite-plugin-full-reload": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.0.5.tgz", - "integrity": "sha512-kVZFDFWr0DxiHn6MuDVTQf7gnWIdETGlZh0hvTiMXzRN80vgF4PKbONSq8U1d0WtHsKaFODTQgJeakLacoPZEQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.2.0.tgz", + "integrity": "sha512-kz18NW79x0IHbxRSHm0jttP4zoO9P9gXh+n6UTwlNKnviTTEpOlum6oS9SmecrTtSr+muHEn5TUuC75UovQzcA==", "dev": true, "requires": { "picocolors": "^1.0.0", diff --git a/demo/package.json b/demo/package.json index fa514b20d..d31cf5424 100644 --- a/demo/package.json +++ b/demo/package.json @@ -4,10 +4,12 @@ "dev": "vite", "build": "vite build" }, + "type": "module", "devDependencies": { - "laravel-vite-plugin": "^0.7.8", + "@tailwindcss/typography": "^0.5.15", + "laravel-vite-plugin": "^1.0.6", "postcss": "^8.4.27", "tailwindcss": "^3.3.3", - "vite": "^4.4.8" + "vite": "^5.4.11" } } diff --git a/demo/phpunit.xml b/demo/phpunit.xml index 43cdb67cf..c29076a88 100644 --- a/demo/phpunit.xml +++ b/demo/phpunit.xml @@ -1,28 +1,24 @@ - - - - ./tests/Feature - - - - - ./app - - - - - - - - - - - - - + + + + ./tests/Feature + + + + + + + + + + + + + + + + ./app + + diff --git a/demo/postcss.config.js b/demo/postcss.config.js new file mode 100644 index 000000000..f2a56796f --- /dev/null +++ b/demo/postcss.config.js @@ -0,0 +1,7 @@ +export default { + plugins: { + // 'postcss-import': {}, + tailwindcss: {}, + // autoprefixer: {}, + }, +}; diff --git a/demo/public/build/assets/app-DAu-k9ui.css b/demo/public/build/assets/app-DAu-k9ui.css new file mode 100644 index 000000000..8d5d581c5 --- /dev/null +++ b/demo/public/build/assets/app-DAu-k9ui.css @@ -0,0 +1 @@ +*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;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-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){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,samp,pre{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{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-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,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--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: rgb(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: rgb(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-top:1.25em;margin-bottom: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-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.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-top:1.25em;margin-bottom:1.25em;padding-inline-start: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-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.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-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.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-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%),0 3px rgb(var(--tw-prose-kbd-shadows) / 10%);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.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] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.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] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.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-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom: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: rgb(0 0 0 / 50%);--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-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p: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-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start: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-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom: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-lg{font-size:1.125rem;line-height:1.7777778}.prose-lg :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em}.prose-lg :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2222222em;line-height:1.4545455;margin-top:1.0909091em;margin-bottom:1.0909091em}.prose-lg :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.6666667em;margin-bottom:1.6666667em;padding-inline-start:1em}.prose-lg :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.6666667em;margin-top:0;margin-bottom:.8333333em;line-height:1}.prose-lg :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.6666667em;margin-top:1.8666667em;margin-bottom:1.0666667em;line-height:1.3333333}.prose-lg :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.3333333em;margin-top:1.6666667em;margin-bottom:.6666667em;line-height:1.5}.prose-lg :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:.4444444em;line-height:1.5555556}.prose-lg :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-lg :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;border-radius:.3125rem;padding-top:.2222222em;padding-inline-end:.4444444em;padding-bottom:.2222222em;padding-inline-start:.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] *)){font-size:.8888889em;line-height:1.75;margin-top:2em;margin-bottom:2em;border-radius:.375rem;padding-top:1em;padding-inline-end:1.5em;padding-bottom:1em;padding-inline-start:1.5em}.prose-lg :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em;padding-inline-start:1.5555556em}.prose-lg :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em;padding-inline-start:1.5555556em}.prose-lg :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.6666667em;margin-bottom:.6666667em}.prose-lg :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4444444em}.prose-lg :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4444444em}.prose-lg :where(.prose-lg>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.8888889em;margin-bottom:.8888889em}.prose-lg :where(.prose-lg>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose-lg>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(.prose-lg>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose-lg>ol>li>p: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-top:.8888889em;margin-bottom:.8888889em}.prose-lg :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom: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-inline-start:1.5555556em}.prose-lg :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:3.1111111em;margin-bottom: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-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.prose-lg :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-lg :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-lg :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.75em;padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.prose-lg :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-lg :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-lg :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom: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}.mx-auto{margin-left:auto;margin-right:auto}.my-4{margin-top:1rem;margin-bottom:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-8{margin-bottom:2rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.block{display:block}.flex{display:flex}.grid{display:grid}.w-full{width:100%}.max-w-full{max-width:100%}.max-w-screen-lg{max-width:1024px}.flex-1{flex:1 1 0%}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.items-start{align-items:flex-start}.gap-4{gap:1rem}.rounded-2xl{border-radius:1rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.pb-24{padding-bottom:6rem}.pb-4{padding-bottom:1rem}.pt-12{padding-top:3rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.text-neutral-500{--tw-text-opacity: 1;color:rgb(115 115 115 / var(--tw-text-opacity))}.text-neutral-900{--tw-text-opacity: 1;color:rgb(23 23 23 / var(--tw-text-opacity))}@media (min-width: 768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.\[\&_iframe\]\:max-w-full iframe{max-width:100%} diff --git a/demo/public/build/assets/sharp-extension-SggIrOo2.css b/demo/public/build/assets/sharp-extension-SggIrOo2.css new file mode 100644 index 000000000..418891f40 --- /dev/null +++ b/demo/public/build/assets/sharp-extension-SggIrOo2.css @@ -0,0 +1 @@ +.custom-tw :is(.mx-auto){margin-left:auto;margin-right:auto}.custom-tw :is(.my-4){margin-top:1rem;margin-bottom:1rem}.custom-tw :is(.mb-3){margin-bottom:.75rem}.custom-tw :is(.mb-8){margin-bottom:2rem}.custom-tw :is(.mt-16){margin-top:4rem}.custom-tw :is(.block){display:block}.custom-tw :is(.flex){display:flex}.custom-tw :is(.grid){display:grid}.custom-tw :is(.w-full){width:100%}.custom-tw :is(.max-w-full){max-width:100%}.custom-tw :is(.max-w-screen-lg){max-width:1024px}.custom-tw :is(.grid-cols-1){grid-template-columns:repeat(1,minmax(0,1fr))}.custom-tw :is(.gap-4){gap:1rem}.custom-tw :is(.rounded-2xl){border-radius:1rem}.custom-tw :is(.border-b){border-bottom-width:1px}.custom-tw :is(.px-6){padding-left:1.5rem;padding-right:1.5rem}.custom-tw :is(.pb-24){padding-bottom:6rem}.custom-tw :is(.pb-4){padding-bottom:1rem}.custom-tw :is(.pt-12){padding-top:3rem}.custom-tw :is(.text-3xl){font-size:1.875rem;line-height:2.25rem}.custom-tw :is(.text-xl){font-size:1.25rem;line-height:1.75rem}.custom-tw :is(.font-bold){font-weight:700}.badge{display:inline-block;padding:.25em .4em;font-size:.75em!important;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;background:#ccc;color:#444}.badge-bloc{background:#fff;border:1px solid #0dcaf0;color:#0dcaf0}.badge-bloc-video{border:1px solid #2ca02c;color:#2ca02c}.badge-bloc-visuals{border:1px solid #d39e00;color:#d39e00}@media (min-width: 768px){.custom-tw :is(.md\:grid-cols-2){grid-template-columns:repeat(2,minmax(0,1fr))}}.custom-tw :is(.\[\&_iframe\]\:max-w-full iframe){max-width:100%} diff --git a/demo/public/build/assets/sharp-extension-e295d086.css b/demo/public/build/assets/sharp-extension-e295d086.css deleted file mode 100644 index 4ac1f6d1e..000000000 --- a/demo/public/build/assets/sharp-extension-e295d086.css +++ /dev/null @@ -1 +0,0 @@ -.badge{display:inline-block;padding:.25em .4em;font-size:.75em!important;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;background:#ccc;color:#444}.badge-bloc{background:white;border:1px solid #0dcaf0;color:#0dcaf0}.badge-bloc-video{border:1px solid #2ca02c;color:#2ca02c}.badge-bloc-visuals{border:1px solid #d39e00;color:#d39e00} diff --git a/demo/public/build/assets/sharp-plugin-4ed993c7.js b/demo/public/build/assets/sharp-plugin-l0sNRNKZ.js similarity index 100% rename from demo/public/build/assets/sharp-plugin-4ed993c7.js rename to demo/public/build/assets/sharp-plugin-l0sNRNKZ.js diff --git a/demo/public/build/manifest.json b/demo/public/build/manifest.json index 423807acb..786f5c2b8 100644 --- a/demo/public/build/manifest.json +++ b/demo/public/build/manifest.json @@ -1,12 +1,18 @@ { + "resources/css/app.css": { + "file": "assets/app-DAu-k9ui.css", + "src": "resources/css/app.css", + "isEntry": true + }, "resources/css/sharp-extension.css": { - "file": "assets/sharp-extension-e295d086.css", - "isEntry": true, - "src": "resources/css/sharp-extension.css" + "file": "assets/sharp-extension-SggIrOo2.css", + "src": "resources/css/sharp-extension.css", + "isEntry": true }, "resources/js/sharp-plugin.js": { - "file": "assets/sharp-plugin-4ed993c7.js", - "isEntry": true, - "src": "resources/js/sharp-plugin.js" + "file": "assets/sharp-plugin-l0sNRNKZ.js", + "name": "sharp-plugin", + "src": "resources/js/sharp-plugin.js", + "isEntry": true } } \ No newline at end of file diff --git a/demo/public/img/sharp/login-icon.png b/demo/public/img/sharp/login-icon.png deleted file mode 100644 index f2caa4f13..000000000 Binary files a/demo/public/img/sharp/login-icon.png and /dev/null differ diff --git a/demo/public/img/sharp/logo.svg b/demo/public/img/sharp/logo.svg new file mode 100644 index 000000000..97b022dc8 --- /dev/null +++ b/demo/public/img/sharp/logo.svg @@ -0,0 +1 @@ + diff --git a/demo/public/img/sharp/menu-icon.png b/demo/public/img/sharp/menu-icon.png deleted file mode 100644 index b30d0b1f2..000000000 Binary files a/demo/public/img/sharp/menu-icon.png and /dev/null differ diff --git a/demo/resources/css/app.css b/demo/resources/css/app.css index e69de29bb..9bb37ee65 100644 --- a/demo/resources/css/app.css +++ b/demo/resources/css/app.css @@ -0,0 +1,4 @@ + +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/demo/resources/css/sharp-extension.css b/demo/resources/css/sharp-extension.css index cec7e0177..8a32283bb 100644 --- a/demo/resources/css/sharp-extension.css +++ b/demo/resources/css/sharp-extension.css @@ -1,28 +1,3 @@ -.badge { - display: inline-block; - padding: .25em .4em; - font-size: .75em !important; - line-height: 1; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: .25rem; - background: #ccc; - color: #444; -} +@config "../../tailwind.sharp.config.js"; -.badge-bloc { - background: white; - border: 1px solid #0dcaf0; - color: #0dcaf0; -} - -.badge-bloc-video { - border: 1px solid #2ca02c; - color: #2ca02c; -} - -.badge-bloc-visuals { - border: 1px solid #d39e00; - color: #d39e00; -} +@tailwind utilities; diff --git a/demo/resources/views/components/author.blade.php b/demo/resources/views/components/author.blade.php index bf36f4afe..47fe96b70 100644 --- a/demo/resources/views/components/author.blade.php +++ b/demo/resources/views/components/author.blade.php @@ -4,18 +4,14 @@ ]) @if($author = is_string($author) ? \App\Models\User::find($author) : $author) -
-
-
- @if($picture = json_decode($picture ?? 'null', true)) -
- {{ $author->name }} -
- @endif -
-

{{ $author->name }}

- {{ $slot }} -
+
+ @if($picture = json_decode($picture ?? 'null', true)) + {{ $author->name }} + @endif +
+

{{ $author->name }}

+
+ {{ $slot }}
diff --git a/demo/resources/views/components/codeblock.blade.php b/demo/resources/views/components/codeblock.blade.php index f9a68e2e4..8e8aab067 100644 --- a/demo/resources/views/components/codeblock.blade.php +++ b/demo/resources/views/components/codeblock.blade.php @@ -2,8 +2,4 @@ 'code', ]) -
-
- {{ $code }} -
-
+
{{ $code }}
diff --git a/demo/resources/views/components/related-post.blade.php b/demo/resources/views/components/related-post.blade.php index 5e97bd5f8..ec84ae6a9 100644 --- a/demo/resources/views/components/related-post.blade.php +++ b/demo/resources/views/components/related-post.blade.php @@ -3,15 +3,13 @@ ]) @if($post = is_string($post) ? \App\Models\Post::find($post) : $post) -
-
-

Related post

-

- {{ $post->title }} -

-
- {{ Str::limit(strip_tags($post->content), 200) }} -
+
+

Related post

+

+ {{ $post->title }} +

+
+ {{ Str::limit(strip_tags($post->content), 200) }}
@endif diff --git a/demo/resources/views/components/table-of-contents.blade.php b/demo/resources/views/components/table-of-contents.blade.php index ca6f18595..c32d2a044 100644 --- a/demo/resources/views/components/table-of-contents.blade.php +++ b/demo/resources/views/components/table-of-contents.blade.php @@ -2,7 +2,6 @@ 'content' ]) - @if(count($titles = Str::matchAll('/

(.+)<\/h2>/U', $content)))
    @foreach($titles as $title) diff --git a/demo/resources/views/pages/post.blade.php b/demo/resources/views/pages/post.blade.php new file mode 100644 index 000000000..0c5477b47 --- /dev/null +++ b/demo/resources/views/pages/post.blade.php @@ -0,0 +1,54 @@ + + + + + + Post + @vite(['resources/css/app.css']) + + + @php + /** + * @var \App\Models\Post $post + */ + @endphp +
    +
    + @if($post->cover) + + @endif +

    + {{ $post->title }} +

    + + + {!! $post->content !!} + +
    +

    + Blocks +

    + @foreach($post->blocks as $block) + @if($block->type === 'text') +
    + {!! $block->content !!} +
    + @elseif($block->type === 'visuals') +
    + @foreach($block->files as $visual) + + @endforeach +
    + @elseif($block->type === 'video') +
    + {!! $block->content !!} +
    + @endif + @endforeach +
    + + diff --git a/demo/resources/views/sharp/_login-page-message.blade.php b/demo/resources/views/sharp/_login-page-message.blade.php index 49159f9ad..9abc8663e 100644 --- a/demo/resources/views/sharp/_login-page-message.blade.php +++ b/demo/resources/views/sharp/_login-page-message.blade.php @@ -1,33 +1,7 @@ - -
    -
    -
    - Use these accounts to login : -
    - - -
    -
    - -@push('script') - -@endpush + + You can log with: +
      +
    • - admin@example.org / password
    • +
    • - editor@example.org / password (with 2fa)
    • +
    +
    diff --git a/demo/resources/views/sharp/post-preview.blade.php b/demo/resources/views/sharp/post-preview.blade.php deleted file mode 100644 index 9a515b279..000000000 --- a/demo/resources/views/sharp/post-preview.blade.php +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - Post - - - - @php - /** - * @var \App\Models\Post $post - */ - @endphp -
    - @if($post->cover) -
    - -
    - @endif - -

    - {{ $post->title }} -

    - - - - {!! $post->content !!} - - - @foreach($post->blocks as $block) - @if($block->type === 'text') -
    - {!! $block->content !!} -
    - @elseif($block->type === 'visuals') -
    -
    - @foreach($block->files as $visual) -
    - -
    - @endforeach -
    -
    - @elseif($block->type === 'video') -
    - {!! $block->content !!} -
    - @endif - @endforeach - -
    - - diff --git a/demo/resources/views/sharp/templates/author-embed.blade.php b/demo/resources/views/sharp/templates/author-embed.blade.php new file mode 100644 index 000000000..4f4a11deb --- /dev/null +++ b/demo/resources/views/sharp/templates/author-embed.blade.php @@ -0,0 +1,12 @@ + +
    + @if($picture) + + @endif +
    +
    {{ $name }}
    +
    + {{ $slot }} +
    +
    +
    diff --git a/demo/resources/views/sharp/templates/author_embed.vue b/demo/resources/views/sharp/templates/author_embed.vue deleted file mode 100644 index de7d17a37..000000000 --- a/demo/resources/views/sharp/templates/author_embed.vue +++ /dev/null @@ -1,16 +0,0 @@ - -
    - - -
    diff --git a/demo/resources/views/sharp/templates/codeblock-show-embed.blade.php b/demo/resources/views/sharp/templates/codeblock-show-embed.blade.php new file mode 100644 index 000000000..ab8fd5c8d --- /dev/null +++ b/demo/resources/views/sharp/templates/codeblock-show-embed.blade.php @@ -0,0 +1,5 @@ +
    {{ $code }}
    diff --git a/demo/resources/views/sharp/templates/codeblock_show_embed.vue b/demo/resources/views/sharp/templates/codeblock_show_embed.vue deleted file mode 100644 index 858ba03e5..000000000 --- a/demo/resources/views/sharp/templates/codeblock_show_embed.vue +++ /dev/null @@ -1,5 +0,0 @@ -
    {{ code }}
    diff --git a/demo/resources/views/sharp/templates/dashboard_ranking.blade.php b/demo/resources/views/sharp/templates/dashboard_ranking.blade.php new file mode 100644 index 000000000..dc649c932 --- /dev/null +++ b/demo/resources/views/sharp/templates/dashboard_ranking.blade.php @@ -0,0 +1,13 @@ +@if($author) +

    + Congrats 🥳 to {{ $author->name }}, + for the + {!! $post->categories->map(fn ($category) => \Code16\Sharp\Utils\Links\LinkToShowPage::make('categories', $category->id)->renderAsText('#'.$category->name))->implode(' / ') !!} + post: +

    + @if($post) +

    + {{ $post->title }} +

    + @endif +@endif diff --git a/demo/routes/api.php b/demo/routes/api.php index 457a02b14..b3d9bbc7f 100644 --- a/demo/routes/api.php +++ b/demo/routes/api.php @@ -1,19 +1 @@ get('/admin/users', function (Request $request) { - $users = User::orderBy('name'); - - foreach (explode(' ', trim($request->query('query'))) as $word) { - $users->where(function (Builder $query) use ($word) { - $query->orWhere('name', 'like', "%$word%") - ->orWhere('email', 'like', "%$word%"); - }); - } - - return $users->limit(10)->get(); -}); diff --git a/demo/routes/web.php b/demo/routes/web.php index fd6e5c421..5d2399781 100644 --- a/demo/routes/web.php +++ b/demo/routes/web.php @@ -1,5 +1,8 @@ $post]); }); + +Route::get('/admin/users', function (Request $request) { + $users = User::orderBy('name'); + + foreach (explode(' ', trim($request->query('query'))) as $word) { + $users->where(function (Builder $query) use ($word) { + $query->orWhere('name', 'like', "%$word%") + ->orWhere('email', 'like', "%$word%"); + }); + } + + return $users->limit(10)->get(); +})->name('sharp.autocompletes.users.index'); diff --git a/demo/tailwind.config.js b/demo/tailwind.config.js new file mode 100644 index 000000000..c8e323939 --- /dev/null +++ b/demo/tailwind.config.js @@ -0,0 +1,11 @@ +import typography from '@tailwindcss/typography'; + +/** @type {import('tailwindcss').Config} */ +export default { + content: [ + './resources/views/**/*.blade.php', + ], + plugins: [ + typography, + ], +} diff --git a/demo/tailwind.sharp.config.js b/demo/tailwind.sharp.config.js new file mode 100644 index 000000000..ae8d06783 --- /dev/null +++ b/demo/tailwind.sharp.config.js @@ -0,0 +1,9 @@ + +/** @type {import('tailwindcss').Config} */ +export default { + content: [ + './resources/views/sharp/**/*.blade.php', + ], + plugins: [ + ], +}; diff --git a/demo/tests/Feature/PostSharpFormTest.php b/demo/tests/Feature/PostSharpFormTest.php index c1f181211..1895ef067 100644 --- a/demo/tests/Feature/PostSharpFormTest.php +++ b/demo/tests/Feature/PostSharpFormTest.php @@ -5,53 +5,37 @@ use App\Models\Post; use App\Models\User; use App\Sharp\Posts\Commands\PreviewPostCommand; -use Code16\Sharp\Form\Fields\SharpFormDateField; use Code16\Sharp\Utils\Testing\SharpAssertions; -use Illuminate\Foundation\Testing\DatabaseMigrations; +use Illuminate\Foundation\Testing\LazilyRefreshDatabase; use Tests\TestCase; class PostSharpFormTest extends TestCase { - use DatabaseMigrations; + use LazilyRefreshDatabase; use SharpAssertions; - /** @test */ - public function we_can_get_a_valid_post_update_form() + protected function setUp(): void { - $this->loginAsSharpUser(User::factory()->create(['role' => 'admin'])); - $post = Post::factory()->create(); + parent::setUp(); - $this->getSharpForm('posts', $post->id) - ->assertSharpFormHasFieldOfType('published_at', SharpFormDateField::class) - ->assertSharpFormHasFields([ - 'title', 'content', 'categories', 'cover', - ]); + $this->withoutVite(); } /** @test */ - public function we_can_preview_a_post_through_command() + public function we_can_edit_a_post() { $this->loginAsSharpUser(User::factory()->create(['role' => 'admin'])); $post = Post::factory()->create(); $this - ->callSharpInstanceCommandFromList( - 'posts', - $post->id, - PreviewPostCommand::class, - ) + ->withSharpCurrentBreadcrumb(['list', 'posts']) + ->getSharpForm('posts', $post->id) ->assertOk(); - } - - /** @test */ - public function we_can_get_a_valid_post_create_form() - { - $this->loginAsSharpUser(User::factory()->create(['role' => 'admin'])); - $this->getSharpForm('posts') - ->assertSharpFormHasFields([ - 'title', 'content', 'categories', 'cover', - ]); + $this + ->withSharpCurrentBreadcrumb(['list', 'posts']) + ->getSharpForm('posts') + ->assertOk(); } /** @test */ @@ -76,7 +60,7 @@ public function we_can_update_a_post() ], ), ) - ->assertOk(); + ->assertSessionHasNoErrors(); $this->assertDatabaseHas('posts', [ 'id' => $post->id, @@ -84,23 +68,133 @@ public function we_can_update_a_post() ]); } + /** @test */ + public function we_can_not_update_a_post_with_invalid_data() + { + $this->loginAsSharpUser(User::factory()->create(['role' => 'admin'])); + $post = Post::factory()->create(); + + $this + ->updateSharpForm( + 'posts', + $post->id, + array_merge( + $post->toArray(), + [ + 'title' => [ + 'fr' => 'updated', + 'en' => null, + ], + ], + ), + ) + ->assertSessionHasErrors(['title.en']); + } + + /** @test */ + public function we_can_store_a_new_post() + { + $this->loginAsSharpUser(User::factory()->create(['role' => 'admin'])); + + $this + ->storeSharpForm( + 'posts', + [ + 'title' => [ + 'fr' => 'titre', + 'en' => 'title', + ], + 'published_at' => now()->setTime(10, 30)->format('Y-m-d H:i:s'), + 'content' => [ + 'text' => [ + 'fr' => 'nouveau', + 'en' => 'new', + ], + ], + ], + ) + ->assertSessionHasNoErrors(); + + $this->assertDatabaseHas('posts', [ + 'title' => json_encode(['en' => 'title', 'fr' => 'titre']), + 'published_at' => now()->setTime(10, 30)->format('Y-m-d H:i:s'), + 'content' => json_encode(['en' => 'new', 'fr' => 'nouveau']), + ]); + } + + /** @test */ + public function we_can_delete_a_post() + { + $this->loginAsSharpUser(User::factory()->create(['role' => 'admin'])); + $post1 = Post::factory()->create(); + $post2 = Post::factory()->create(); + + $this + ->deleteFromSharpShow('posts', $post1->id) + ->assertRedirect(); + + $this->assertDatabaseMissing('posts', ['id' => $post1->id]); + $this->assertDatabaseHas('posts', ['id' => $post2->id]); + + $this + ->deleteFromSharpList('posts', $post2->id) + ->assertOk(); + + $this->assertDatabaseMissing('posts', ['id' => $post2->id]); + } + /** @test */ public function as_an_editor_we_are_not_authorize_to_update_a_post_of_another_editor() { $this->loginAsSharpUser(User::factory()->create(['role' => 'editor'])); - $post = Post::factory() + $publishedPost = Post::factory() ->for(User::factory(), 'author') ->create(); - $this->getSharpForm('posts', $post->id) - ->assertSharpHasNotAuthorization('update'); + $this + ->withSharpCurrentBreadcrumb(['list', 'posts']) + ->getSharpShow('posts', $publishedPost->id) + ->assertOk(); + + $this + ->withSharpCurrentBreadcrumb( + ['list', 'posts'], + ['show', 'posts', $publishedPost->id], + ) + ->getSharpForm('posts', $publishedPost->id) + ->assertForbidden(); } - protected function setUp(): void + /** @test */ + public function as_an_editor_we_are_not_authorize_to_view_an_unpublished_post_of_another_editor() { - parent::setUp(); + $this->loginAsSharpUser(User::factory()->create(['role' => 'editor'])); + + $publishedPost = Post::factory() + ->for(User::factory(), 'author') + ->create([ + 'state' => 'draft', + ]); + + $this + ->withSharpCurrentBreadcrumb(['list', 'posts']) + ->getSharpShow('posts', $publishedPost->id) + ->assertForbidden(); + } - $this->initSharpAssertions(); + /** @test */ + public function we_can_preview_a_post_through_command() + { + $this->loginAsSharpUser(User::factory()->create(['role' => 'admin'])); + $post = Post::factory()->create(); + + $this + ->callSharpInstanceCommandFromList( + 'posts', + $post->id, + PreviewPostCommand::class, + ) + ->assertOk(); } } diff --git a/demo/vite.config.js b/demo/vite.config.js index 125c3c782..783fc4899 100644 --- a/demo/vite.config.js +++ b/demo/vite.config.js @@ -4,6 +4,7 @@ import laravel from 'laravel-vite-plugin'; export default defineConfig({ plugins: [ laravel([ + 'resources/css/app.css', 'resources/js/sharp-plugin.js', 'resources/css/sharp-extension.css', ]), diff --git a/dist/assets/CardDescription.vue_vue_type_script_setup_true_lang-BVFKuiG8.js b/dist/assets/CardDescription.vue_vue_type_script_setup_true_lang-BVFKuiG8.js new file mode 100644 index 000000000..aeff77ac0 --- /dev/null +++ b/dist/assets/CardDescription.vue_vue_type_script_setup_true_lang-BVFKuiG8.js @@ -0,0 +1 @@ +import{d as o,o as t,A as r,q as n,U as c,u as l,z as p}from"./sharp-DDNPuC1w.js";const u=o({__name:"CardDescription",props:{class:{}},setup(s){const e=s;return(a,m)=>(t(),r("div",{class:c(l(p)("text-sm text-muted-foreground",e.class))},[n(a.$slots,"default")],2))}});export{u as _}; diff --git a/dist/assets/Dashboard-D5MXfoDd.js b/dist/assets/Dashboard-D5MXfoDd.js new file mode 100644 index 000000000..d4d72e47c --- /dev/null +++ b/dist/assets/Dashboard-D5MXfoDd.js @@ -0,0 +1,838 @@ +import{d as We,u as _,V as hr,o as W,c as he,w as D,q as ma,v as Ti,W as cr,A as le,Q as ri,a as U,O as ni,j as ye,b as xe,t as oe,F as ze,i as me,R as oi,T as li,H as qe,_ as Xe,X as zi,Y as Ji,Z as dr,$ as ur,a0 as gr,a1 as pr,a2 as cs,a3 as Ki,a4 as fr,a5 as xr,a6 as mr,a7 as br,a8 as vr,a9 as ds,aa as yr,ab as wr,ac as kr,ad as Ar,ae as Cr,af as Sr,ag as Lr,ah as us,ai as Jt,aj as Mr,y as ba,ak as Pr,al as Ir,am as Tr,an as zr,ao as Xr,ap as _r,aq as Rr,ar as ut,as as Er,at as Or,U as Qi,au as gs,av as Yr,aw as Hr,r as Lt,ax as Fr,ay as Dr,az as Nr,J as Wr,aA as Br,k as Ge,aB as va,aC as ya,n as wa,aD as ka,aE as Aa,aF as Ca,aG as Wt,aH as Sa,aI as La,aJ as Ma,aK as Pa,aL as Gr}from"./sharp-DDNPuC1w.js";import{_ as jr,u as Vr,a as Ia,F as Ta,b as za,c as Xa,d as Ur,p as di,e as Bt}from"./DropdownChevronDown.vue_vue_type_script_setup_true_lang-DZQFkxFU.js";import{_ as qr}from"./Title.vue_vue_type_script_setup_true_lang-MxfiLW2l.js";import{_ as $r}from"./PageBreadcrumb.vue_vue_type_script_setup_true_lang-D6ipke--.js";import"./TemplateRenderer.vue_vue_type_script_setup_true_lang-td6RXtbk.js";const Zr=["href"],ea=We({__name:"MaybeInertiaLink",props:{href:{}},setup(o){return(e,t)=>_(hr)(e.href)?(W(),he(_(cr),Ti({key:0,href:e.href},e.$attrs),{default:D(()=>[ma(e.$slots,"default")]),_:3},16,["href"])):(W(),le("a",Ti({key:1,href:e.href},e.$attrs),[ma(e.$slots,"default")],16,Zr))}}),Jr={class:"text-2xl font-bold"},Kr={key:0,class:"text-xs text-muted-foreground"},Qr=We({__name:"Figure",props:{widget:{},value:{}},setup(o){return(e,t)=>(W(),he(_(li),{class:"relative"},{default:D(()=>[e.widget.title||e.value.data.evolution?(W(),he(_(ri),{key:0,class:"flex flex-row items-center gap-2 pb-2"},{default:D(()=>[U(_(ni),{class:"text-sm tracking-tight font-medium"},{default:D(()=>[e.widget.link?(W(),he(ea,{key:0,class:"hover:underline",href:e.widget.link},{default:D(()=>[t[0]||(t[0]=ye("span",{class:"absolute inset-0"},null,-1)),xe(" "+oe(e.widget.title),1)]),_:1},8,["href"])):(W(),le(ze,{key:1},[xe(oe(e.widget.title),1)],64))]),_:1})]),_:1})):me("",!0),U(_(oi),null,{default:D(()=>[ye("div",Jr,[xe(oe(e.value.data.figure)+" ",1),e.value.data.unit?(W(),le(ze,{key:0},[xe(oe(e.value.data.unit),1)],64)):me("",!0)]),e.value.data.evolution?(W(),le("p",Kr,oe(e.value.data.evolution),1)):me("",!0)]),_:1})]),_:1}))}}),en={class:"-my-2 divide-y"},tn={class:"group/item isolate relative flex items-center py-4 gap-x-4"},an={key:0,class:"absolute inset-0 -inset-x-2 -z-10 transition-colors group-hover/item:bg-muted/50"},sn={class:"flex-1"},rn=["innerHTML"],nn=We({__name:"OrderedList",props:{widget:{},value:{}},setup(o){return(e,t)=>(W(),he(_(li),null,{default:D(()=>[e.widget.title?(W(),he(_(ri),{key:0},{default:D(()=>[U(_(ni),{class:"text-base/none font-semibold tracking-tight"},{default:D(()=>[xe(oe(e.widget.title),1)]),_:1})]),_:1})):me("",!0),U(_(oi),null,{default:D(()=>[ye("div",en,[(W(!0),le(ze,null,qe(e.value.data,i=>(W(),le("div",tn,[i.url?(W(),le("div",an)):me("",!0),ye("div",sn,[ye("div",{class:"content content-sm text-sm",innerHTML:i.label},null,8,rn),i.url?(W(),he(ea,{key:0,href:i.url,"aria-label":_(Xe)("sharp::dashboard.widget.link_label")},{default:D(()=>t[0]||(t[0]=[ye("span",{class:"absolute inset-0"},null,-1)])),_:2},1032,["href","aria-label"])):me("",!0)]),i.count!=null?(W(),he(_(zi),{key:1,variant:"secondary"},{default:D(()=>[xe(oe(i.count),1)]),_:2},1024)):me("",!0)]))),256))])]),_:1})]),_:1}))}}),on=We({__name:"Panel",props:{widget:{},value:{}},setup(o){return(e,t)=>(W(),he(_(li),{class:"relative"},{default:D(()=>[e.widget.title?(W(),he(_(ri),{key:0},{default:D(()=>[U(_(ni),{class:"text-base/none font-semibold tracking-tight"},{default:D(()=>[e.widget.link?(W(),he(ea,{key:0,class:"hover:underline",href:e.widget.link},{default:D(()=>[t[0]||(t[0]=ye("span",{class:"absolute inset-0"},null,-1)),xe(" "+oe(e.widget.title),1)]),_:1},8,["href"])):(W(),le(ze,{key:1},[xe(oe(e.widget.title),1)],64))]),_:1})]),_:1})):me("",!0),U(_(oi),null,{default:D(()=>[U(jr,{class:"content-sm text-sm",html:e.value.html},null,8,["html"])]),_:1})]),_:1}))}}),ln="en",hn={months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],toolbar:{exportToSVG:"Download SVG",exportToPNG:"Download PNG",exportToCSV:"Download CSV",menu:"Menu",selection:"Selection",selectionZoom:"Selection Zoom",zoomIn:"Zoom In",zoomOut:"Zoom Out",pan:"Panning",reset:"Reset Zoom"}},cn={name:ln,options:hn},dn="fr",un={months:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],shortMonths:["janv.","févr.","mars","avr.","mai","juin","juill.","août","sept.","oct.","nov.","déc."],days:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],shortDays:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],toolbar:{exportToSVG:"Télécharger au format SVG",exportToPNG:"Télécharger au format PNG",exportToCSV:"Télécharger au format CSV",menu:"Menu",selection:"Sélection",selectionZoom:"Sélection et zoom",zoomIn:"Zoomer",zoomOut:"Dézoomer",pan:"Navigation",reset:"Réinitialiser le zoom"}},gn={name:dn,options:un},pn="ru",fn={months:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],shortMonths:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],days:["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"],shortDays:["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],toolbar:{exportToSVG:"Сохранить SVG",exportToPNG:"Сохранить PNG",exportToCSV:"Сохранить CSV",menu:"Меню",selection:"Выбор",selectionZoom:"Выбор с увеличением",zoomIn:"Увеличить",zoomOut:"Уменьшить",pan:"Перемещение",reset:"Сбросить увеличение"}},xn={name:pn,options:fn},mn="es",bn={months:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],shortMonths:["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],days:["Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado"],shortDays:["Dom","Lun","Mar","Mie","Jue","Vie","Sab"],toolbar:{exportToSVG:"Descargar SVG",exportToPNG:"Descargar PNG",exportToCSV:"Descargar CSV",menu:"Menu",selection:"Seleccionar",selectionZoom:"Seleccionar Zoom",zoomIn:"Aumentar",zoomOut:"Disminuir",pan:"Navegación",reset:"Reiniciar Zoom"}},vn={name:mn,options:bn},yn="de",wn={months:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],shortMonths:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],days:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],shortDays:["So","Mo","Di","Mi","Do","Fr","Sa"],toolbar:{exportToSVG:"SVG speichern",exportToPNG:"PNG speichern",exportToCSV:"CSV speichern",menu:"Menü",selection:"Auswahl",selectionZoom:"Auswahl vergrößern",zoomIn:"Vergrößern",zoomOut:"Verkleinern",pan:"Verschieben",reset:"Zoom zurücksetzen"}},kn={name:yn,options:wn};var An=Ji;function Cn(){this.__data__=new An,this.size=0}var Sn=Cn;function Ln(o){var e=this.__data__,t=e.delete(o);return this.size=e.size,t}var Mn=Ln;function Pn(o){return this.__data__.get(o)}var In=Pn;function Tn(o){return this.__data__.has(o)}var zn=Tn,Xn=Ji,_n=dr,Rn=ur,En=200;function On(o,e){var t=this.__data__;if(t instanceof Xn){var i=t.__data__;if(!_n||i.length{var l;return(l=i.value)==null?void 0:l.$el}),s=Jt(0),r=Pr(()=>{var l;(l=i.value.chart)==null||l.updateOptions({},!0),s.value=a.value.clientWidth,a.value.style.overflow="visible"},100);Ir(i,()=>{a.value.style.overflow="hidden",s.value||(s.value=a.value.clientWidth),r()});const n=ba(()=>{const l=o.widget,h={chart:{height:l.height??"100%",width:"100%",parentHeightOffset:0,events:{zoomed:()=>{t.value=!0}},animations:{enabled:!1},toolbar:{show:t.value,tools:{pan:!1,zoom:!0,download:!1}},locales:[cn,gn,xn,vn,kn],defaultLocale:document.documentElement.lang,redrawOnParentResize:!1,redrawOnWindowResize:!1},legend:{show:l.showLegend&&!l.minimal,showForSingleSeries:!0},tooltip:{y:{title:{formatter:(d,{seriesIndex:c})=>d!==`series-${c+1}`?`${d}:`:""}}}};return Qo(h,e({width:s.value}))});return{apexChartsComponent:i,options:n}}const Fa=document.createElement("canvas").getContext("2d");function ia(o){return Fa.fillStyle=o,Fa.fillStyle}/*! + * ApexCharts v4.1.0 + * (c) 2018-2024 ApexCharts + * Released under the MIT License. + */function Xi(o,e){(e==null||e>o.length)&&(e=o.length);for(var t=0,i=Array(e);t=o.length?{done:!0}:{done:!1,value:o[i++]}},e:function(l){throw l},f:a}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var s,r=!0,n=!1;return{s:function(){t=t.call(o)},n:function(){var l=t.next();return r=l.done,l},e:function(l){n=!0,s=l},f:function(){try{r||t.return==null||t.return()}finally{if(n)throw s}}}}function Ot(o){var e=bs();return function(){var t,i=ei(o);if(e){var a=ei(this).constructor;t=Reflect.construct(i,arguments,a)}else t=i.apply(this,arguments);return function(s,r){if(r&&(typeof r=="object"||typeof r=="function"))return r;if(r!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ms(s)}(this,t)}}function Qt(o,e,t){return(e=ys(e))in o?Object.defineProperty(o,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):o[e]=t,o}function ei(o){return ei=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},ei(o)}function Yt(o,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");o.prototype=Object.create(e&&e.prototype,{constructor:{value:o,writable:!0,configurable:!0}}),Object.defineProperty(o,"prototype",{writable:!1}),e&&_i(o,e)}function bs(){try{var o=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(bs=function(){return!!o})()}function Na(o,e){var t=Object.keys(o);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(o);e&&(i=i.filter(function(a){return Object.getOwnPropertyDescriptor(o,a).enumerable})),t.push.apply(t,i)}return t}function R(o){for(var e=1;e>16,n=i>>8&255,l=255&i;return"#"+(16777216+65536*(Math.round((a-r)*s)+r)+256*(Math.round((a-n)*s)+n)+(Math.round((a-l)*s)+l)).toString(16).slice(1)}},{key:"shadeColor",value:function(e,t){return o.isColorHex(t)?this.shadeHexColor(e,t):this.shadeRGBColor(e,t)}}],[{key:"bind",value:function(e,t){return function(){return e.apply(t,arguments)}}},{key:"isObject",value:function(e){return e&&ft(e)==="object"&&!Array.isArray(e)&&e!=null}},{key:"is",value:function(e,t){return Object.prototype.toString.call(t)==="[object "+e+"]"}},{key:"listToArray",value:function(e){var t,i=[];for(t=0;t1&&arguments[1]!==void 0?arguments[1]:2;return Number.isInteger(e)?e:parseFloat(e.toPrecision(t))}},{key:"randomId",value:function(){return(Math.random()+1).toString(36).substring(4)}},{key:"noExponents",value:function(e){var t=String(e).split(/[eE]/);if(t.length===1)return t[0];var i="",a=e<0?"-":"",s=t[0].replace(".",""),r=Number(t[1])+1;if(r<0){for(i=a+"0.";r++;)i+="0";return i+s.replace(/^-/,"")}for(r-=s.length;r--;)i+="0";return s+i}},{key:"elementExists",value:function(e){return!(!e||!e.isConnected)}},{key:"getDimensions",value:function(e){var t=getComputedStyle(e,null),i=e.clientHeight,a=e.clientWidth;return i-=parseFloat(t.paddingTop)+parseFloat(t.paddingBottom),[a-=parseFloat(t.paddingLeft)+parseFloat(t.paddingRight),i]}},{key:"getBoundingClientRect",value:function(e){var t=e.getBoundingClientRect();return{top:t.top,right:t.right,bottom:t.bottom,left:t.left,width:e.clientWidth,height:e.clientHeight,x:t.left,y:t.top}}},{key:"getLargestStringFromArr",value:function(e){return e.reduce(function(t,i){return Array.isArray(i)&&(i=i.reduce(function(a,s){return a.length>s.length?a:s})),t.length>i.length?t:i},0)}},{key:"hexToRgba",value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"#999999",t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:.6;e.substring(0,1)!=="#"&&(e="#999999");var i=e.replace("#","");i=i.match(new RegExp("(.{"+i.length/3+"})","g"));for(var a=0;a1&&arguments[1]!==void 0?arguments[1]:"x",i=e.toString().slice();return i=i.replace(/[` ~!@#$%^&*()|+\=?;:'",.<>{}[\]\\/]/gi,t)}},{key:"negToZero",value:function(e){return e<0?0:e}},{key:"moveIndexInArray",value:function(e,t,i){if(i>=e.length)for(var a=i-e.length+1;a--;)e.push(void 0);return e.splice(i,0,e.splice(t,1)[0]),e}},{key:"extractNumber",value:function(e){return parseFloat(e.replace(/[^\d.]*/g,""))}},{key:"findAncestor",value:function(e,t){for(;(e=e.parentElement)&&!e.classList.contains(t););return e}},{key:"setELstyles",value:function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e.style.key=t[i])}},{key:"preciseAddition",value:function(e,t){var i=(String(e).split(".")[1]||"").length,a=(String(t).split(".")[1]||"").length,s=Math.pow(10,Math.max(i,a));return(Math.round(e*s)+Math.round(t*s))/s}},{key:"isNumber",value:function(e){return!isNaN(e)&&parseFloat(Number(e))===e&&!isNaN(parseInt(e,10))}},{key:"isFloat",value:function(e){return Number(e)===e&&e%1!=0}},{key:"isMsEdge",value:function(){var e=window.navigator.userAgent,t=e.indexOf("Edge/");return t>0&&parseInt(e.substring(t+5,e.indexOf(".",t)),10)}},{key:"getGCD",value:function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:7,a=Math.pow(10,i-Math.floor(Math.log10(Math.max(e,t))));for(e=Math.round(Math.abs(e)*a),t=Math.round(Math.abs(t)*a);t;){var s=t;t=e%t,e=s}return e/a}},{key:"getPrimeFactors",value:function(e){for(var t=[],i=2;e>=2;)e%i==0?(t.push(i),e/=i):i++;return t}},{key:"mod",value:function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:7,a=Math.pow(10,i-Math.floor(Math.log10(Math.max(e,t))));return(e=Math.round(Math.abs(e)*a))%(t=Math.round(Math.abs(t)*a))/a}}]),o}(),yt=function(){function o(e){Y(this,o),this.ctx=e,this.w=e.w}return H(o,[{key:"animateLine",value:function(e,t,i,a){e.attr(t).animate(a).attr(i)}},{key:"animateMarker",value:function(e,t,i,a){e.attr({opacity:0}).animate(t).attr({opacity:1}).after(function(){a()})}},{key:"animateRect",value:function(e,t,i,a,s){e.attr(t).animate(a).attr(i).after(function(){return s()})}},{key:"animatePathsGradually",value:function(e){var t=e.el,i=e.realIndex,a=e.j,s=e.fill,r=e.pathFrom,n=e.pathTo,l=e.speed,h=e.delay,d=this.w,c=0;d.config.chart.animations.animateGradually.enabled&&(c=d.config.chart.animations.animateGradually.delay),d.config.chart.animations.dynamicAnimation.enabled&&d.globals.dataChanged&&d.config.chart.type!=="bar"&&(c=0),this.morphSVG(t,i,a,d.config.chart.type!=="line"||d.globals.comboCharts?s:"stroke",r,n,l,h*c)}},{key:"showDelayedElements",value:function(){this.w.globals.delayedElements.forEach(function(e){var t=e.el;t.classList.remove("apexcharts-element-hidden"),t.classList.add("apexcharts-hidden-element-shown")})}},{key:"animationCompleted",value:function(e){var t=this.w;t.globals.animationEnded||(t.globals.animationEnded=!0,this.showDelayedElements(),typeof t.config.chart.events.animationEnd=="function"&&t.config.chart.events.animationEnd(this.ctx,{el:e,w:t}))}},{key:"morphSVG",value:function(e,t,i,a,s,r,n,l){var h=this,d=this.w;s||(s=e.attr("pathFrom")),r||(r=e.attr("pathTo"));var c=function(u){return d.config.chart.type==="radar"&&(n=1),"M 0 ".concat(d.globals.gridHeight)};(!s||s.indexOf("undefined")>-1||s.indexOf("NaN")>-1)&&(s=c()),(!r.trim()||r.indexOf("undefined")>-1||r.indexOf("NaN")>-1)&&(r=c()),d.globals.shouldAnimate||(n=1),e.plot(s).animate(1,l).plot(s).animate(n,l).plot(r).after(function(){M.isNumber(i)?i===d.globals.series[d.globals.maxValsInArrayIndex].length-2&&d.globals.shouldAnimate&&h.animationCompleted(e):a!=="none"&&d.globals.shouldAnimate&&(!d.globals.comboCharts&&t===d.globals.series.length-1||d.globals.comboCharts)&&h.animationCompleted(e),h.showDelayedElements()})}}]),o}();const Ri={},ws=[];function J(o,e){if(Array.isArray(o))for(const t of o)J(t,e);else if(typeof o!="object")ks(Object.getOwnPropertyNames(e)),Ri[o]=Object.assign(Ri[o]||{},e);else for(const t in o)J(t,o[t])}function Te(o){return Ri[o]||{}}function ks(o){ws.push(...o)}function sa(o,e){let t;const i=o.length,a=[];for(t=0;tel.has(o.nodeName),As=(o,e,t={})=>{const i={...e};for(const a in i)i[a].valueOf()===t[a]&&delete i[a];Object.keys(i).length?o.node.setAttribute("data-svgjs",JSON.stringify(i)):(o.node.removeAttribute("data-svgjs"),o.node.removeAttribute("svgjs:data"))},ra="http://www.w3.org/2000/svg",gi="http://www.w3.org/2000/xmlns/",At="http://www.w3.org/1999/xlink",K={window:typeof window>"u"?null:window,document:typeof document>"u"?null:document};function Ht(){return K.window}let na=class{};const nt={},oa="___SYMBOL___ROOT___";function Tt(o,e=ra){return K.document.createElementNS(e,o)}function Pe(o,e=!1){if(o instanceof na)return o;if(typeof o=="object")return pi(o);if(o==null)return new nt[oa];if(typeof o=="string"&&o.charAt(0)!=="<")return pi(K.document.querySelector(o));const t=e?K.document.createElement("div"):Tt("svg");return t.innerHTML=o,o=pi(t.firstChild),t.removeChild(t.firstChild),o}function de(o,e){return e&&(e instanceof K.window.Node||e.ownerDocument&&e instanceof e.ownerDocument.defaultView.Node)?e:Tt(o)}function Oe(o){if(!o)return null;if(o.instance instanceof na)return o.instance;if(o.nodeName==="#document-fragment")return new nt.Fragment(o);let e=wt(o.nodeName||"Dom");return e==="LinearGradient"||e==="RadialGradient"?e="Gradient":nt[e]||(e="Dom"),new nt[e](o)}let pi=Oe;function Q(o,e=o.name,t=!1){return nt[e]=o,t&&(nt[oa]=o),ks(Object.getOwnPropertyNames(o.prototype)),o}let tl=1e3;function Cs(o){return"Svgjs"+wt(o)+tl++}function Ss(o){for(let e=o.children.length-1;e>=0;e--)Ss(o.children[e]);return o.id&&(o.id=Cs(o.nodeName)),o}function G(o,e){let t,i;for(i=(o=Array.isArray(o)?o:[o]).length-1;i>=0;i--)for(t in e)o[i].prototype[t]=e[t]}function ce(o){return function(...e){const t=e[e.length-1];return!t||t.constructor!==Object||t instanceof Array?o.apply(this,e):o.apply(this,e.slice(0,-1)).attr(t)}}J("Dom",{siblings:function(){return this.parent().children()},position:function(){return this.parent().index(this)},next:function(){return this.siblings()[this.position()+1]},prev:function(){return this.siblings()[this.position()-1]},forward:function(){const o=this.position();return this.parent().add(this.remove(),o+1),this},backward:function(){const o=this.position();return this.parent().add(this.remove(),o?o-1:0),this},front:function(){return this.parent().add(this.remove()),this},back:function(){return this.parent().add(this.remove(),0),this},before:function(o){(o=Pe(o)).remove();const e=this.position();return this.parent().add(o,e),this},after:function(o){(o=Pe(o)).remove();const e=this.position();return this.parent().add(o,e+1),this},insertBefore:function(o){return(o=Pe(o)).before(this),this},insertAfter:function(o){return(o=Pe(o)).after(this),this}});const Ls=/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,il=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,al=/rgb\((\d+),(\d+),(\d+)\)/,sl=/(#[a-z_][a-z0-9\-_]*)/i,rl=/\)\s*,?\s*/,nl=/\s/g,Wa=/^#[a-f0-9]{3}$|^#[a-f0-9]{6}$/i,Ba=/^rgb\(/,Ga=/^(\s+)?$/,ja=/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,ol=/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,Ue=/[\s,]+/,la=/[MLHVCSQTAZ]/i;function ll(o){const e=Math.round(o),t=Math.max(0,Math.min(255,e)).toString(16);return t.length===1?"0"+t:t}function ct(o,e){for(let t=e.length;t--;)if(o[e[t]]==null)return!1;return!0}function fi(o,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?o+6*(e-o)*t:t<.5?e:t<2/3?o+(e-o)*(2/3-t)*6:o}J("Dom",{classes:function(){const o=this.attr("class");return o==null?[]:o.trim().split(Ue)},hasClass:function(o){return this.classes().indexOf(o)!==-1},addClass:function(o){if(!this.hasClass(o)){const e=this.classes();e.push(o),this.attr("class",e.join(" "))}return this},removeClass:function(o){return this.hasClass(o)&&this.attr("class",this.classes().filter(function(e){return e!==o}).join(" ")),this},toggleClass:function(o){return this.hasClass(o)?this.removeClass(o):this.addClass(o)}}),J("Dom",{css:function(o,e){const t={};if(arguments.length===0)return this.node.style.cssText.split(/\s*;\s*/).filter(function(i){return!!i.length}).forEach(function(i){const a=i.split(/\s*:\s*/);t[a[0]]=a[1]}),t;if(arguments.length<2){if(Array.isArray(o)){for(const i of o){const a=i;t[i]=this.node.style.getPropertyValue(a)}return t}if(typeof o=="string")return this.node.style.getPropertyValue(o);if(typeof o=="object")for(const i in o)this.node.style.setProperty(i,o[i]==null||Ga.test(o[i])?"":o[i])}return arguments.length===2&&this.node.style.setProperty(o,e==null||Ga.test(e)?"":e),this},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},visible:function(){return this.css("display")!=="none"}}),J("Dom",{data:function(o,e,t){if(o==null)return this.data(sa(function(i,a){let s;const r=i.length,n=[];for(s=0;si.nodeName.indexOf("data-")===0),i=>i.nodeName.slice(5)));if(o instanceof Array){const i={};for(const a of o)i[a]=this.data(a);return i}if(typeof o=="object")for(e in o)this.data(e,o[e]);else if(arguments.length<2)try{return JSON.parse(this.attr("data-"+o))}catch{return this.attr("data-"+o)}else this.attr("data-"+o,e===null?null:t===!0||typeof e=="string"||typeof e=="number"?e:JSON.stringify(e));return this}}),J("Dom",{remember:function(o,e){if(typeof arguments[0]=="object")for(const t in o)this.remember(t,o[t]);else{if(arguments.length===1)return this.memory()[o];this.memory()[o]=e}return this},forget:function(){if(arguments.length===0)this._memory={};else for(let o=arguments.length-1;o>=0;o--)delete this.memory()[arguments[o]];return this},memory:function(){return this._memory=this._memory||{}}});class re{constructor(...e){this.init(...e)}static isColor(e){return e&&(e instanceof re||this.isRgb(e)||this.test(e))}static isRgb(e){return e&&typeof e.r=="number"&&typeof e.g=="number"&&typeof e.b=="number"}static random(e="vibrant",t){const{random:i,round:a,sin:s,PI:r}=Math;if(e==="vibrant"){const n=24*i()+57,l=38*i()+45,h=360*i();return new re(n,l,h,"lch")}if(e==="sine"){const n=a(80*s(2*r*(t=t??i())/.5+.01)+150),l=a(50*s(2*r*t/.5+4.6)+200),h=a(100*s(2*r*t/.5+2.3)+150);return new re(n,l,h)}if(e==="pastel"){const n=8*i()+86,l=17*i()+9,h=360*i();return new re(n,l,h,"lch")}if(e==="dark"){const n=10+10*i(),l=50*i()+86,h=360*i();return new re(n,l,h,"lch")}if(e==="rgb"){const n=255*i(),l=255*i(),h=255*i();return new re(n,l,h)}if(e==="lab"){const n=100*i(),l=256*i()-128,h=256*i()-128;return new re(n,l,h,"lab")}if(e==="grey"){const n=255*i();return new re(n,n,n)}throw new Error("Unsupported random color mode")}static test(e){return typeof e=="string"&&(Wa.test(e)||Ba.test(e))}cmyk(){const{_a:e,_b:t,_c:i}=this.rgb(),[a,s,r]=[e,t,i].map(l=>l/255),n=Math.min(1-a,1-s,1-r);return n===1?new re(0,0,0,1,"cmyk"):new re((1-a-n)/(1-n),(1-s-n)/(1-n),(1-r-n)/(1-n),n,"cmyk")}hsl(){const{_a:e,_b:t,_c:i}=this.rgb(),[a,s,r]=[e,t,i].map(u=>u/255),n=Math.max(a,s,r),l=Math.min(a,s,r),h=(n+l)/2,d=n===l,c=n-l;return new re(360*(d?0:n===a?((s-r)/c+(s.5?c/(2-n-l):c/(n+l)),100*h,"hsl")}init(e=0,t=0,i=0,a=0,s="rgb"){if(e=e||0,this.space)for(const c in this.space)delete this[this.space[c]];if(typeof e=="number")s=typeof a=="string"?a:s,a=typeof a=="string"?0:a,Object.assign(this,{_a:e,_b:t,_c:i,_d:a,space:s});else if(e instanceof Array)this.space=t||(typeof e[3]=="string"?e[3]:e[4])||"rgb",Object.assign(this,{_a:e[0],_b:e[1],_c:e[2],_d:e[3]||0});else if(e instanceof Object){const c=function(u,g){const p=ct(u,"rgb")?{_a:u.r,_b:u.g,_c:u.b,_d:0,space:"rgb"}:ct(u,"xyz")?{_a:u.x,_b:u.y,_c:u.z,_d:0,space:"xyz"}:ct(u,"hsl")?{_a:u.h,_b:u.s,_c:u.l,_d:0,space:"hsl"}:ct(u,"lab")?{_a:u.l,_b:u.a,_c:u.b,_d:0,space:"lab"}:ct(u,"lch")?{_a:u.l,_b:u.c,_c:u.h,_d:0,space:"lch"}:ct(u,"cmyk")?{_a:u.c,_b:u.m,_c:u.y,_d:u.k,space:"cmyk"}:{_a:0,_b:0,_c:0,space:"rgb"};return p.space=g||p.space,p}(e,t);Object.assign(this,c)}else if(typeof e=="string")if(Ba.test(e)){const c=e.replace(nl,""),[u,g,p]=al.exec(c).slice(1,4).map(f=>parseInt(f));Object.assign(this,{_a:u,_b:g,_c:p,_d:0,space:"rgb"})}else{if(!Wa.test(e))throw Error("Unsupported string format, can't construct Color");{const c=f=>parseInt(f,16),[,u,g,p]=il.exec(function(f){return f.length===4?["#",f.substring(1,2),f.substring(1,2),f.substring(2,3),f.substring(2,3),f.substring(3,4),f.substring(3,4)].join(""):f}(e)).map(c);Object.assign(this,{_a:u,_b:g,_c:p,_d:0,space:"rgb"})}}const{_a:r,_b:n,_c:l,_d:h}=this,d=this.space==="rgb"?{r,g:n,b:l}:this.space==="xyz"?{x:r,y:n,z:l}:this.space==="hsl"?{h:r,s:n,l}:this.space==="lab"?{l:r,a:n,b:l}:this.space==="lch"?{l:r,c:n,h:l}:this.space==="cmyk"?{c:r,m:n,y:l,k:h}:{};Object.assign(this,d)}lab(){const{x:e,y:t,z:i}=this.xyz();return new re(116*t-16,500*(e-t),200*(t-i),"lab")}lch(){const{l:e,a:t,b:i}=this.lab(),a=Math.sqrt(t**2+i**2);let s=180*Math.atan2(i,t)/Math.PI;return s<0&&(s*=-1,s=360-s),new re(e,a,s,"lch")}rgb(){if(this.space==="rgb")return this;if((e=this.space)==="lab"||e==="xyz"||e==="lch"){let{x:t,y:i,z:a}=this;if(this.space==="lab"||this.space==="lch"){let{l:g,a:p,b:f}=this;if(this.space==="lch"){const{c:C,h:y}=this,A=Math.PI/180;p=C*Math.cos(A*y),f=C*Math.sin(A*y)}const x=(g+16)/116,m=p/500+x,b=x-f/200,v=16/116,k=.008856,w=7.787;t=.95047*(m**3>k?m**3:(m-v)/w),i=1*(x**3>k?x**3:(x-v)/w),a=1.08883*(b**3>k?b**3:(b-v)/w)}const s=3.2406*t+-1.5372*i+-.4986*a,r=-.9689*t+1.8758*i+.0415*a,n=.0557*t+-.204*i+1.057*a,l=Math.pow,h=.0031308,d=s>h?1.055*l(s,1/2.4)-.055:12.92*s,c=r>h?1.055*l(r,1/2.4)-.055:12.92*r,u=n>h?1.055*l(n,1/2.4)-.055:12.92*n;return new re(255*d,255*c,255*u)}if(this.space==="hsl"){let{h:t,s:i,l:a}=this;if(t/=360,i/=100,a/=100,i===0)return a*=255,new re(a,a,a);const s=a<.5?a*(1+i):a+i-a*i,r=2*a-s,n=255*fi(r,s,t+1/3),l=255*fi(r,s,t),h=255*fi(r,s,t-1/3);return new re(n,l,h)}if(this.space==="cmyk"){const{c:t,m:i,y:a,k:s}=this,r=255*(1-Math.min(1,t*(1-s)+s)),n=255*(1-Math.min(1,i*(1-s)+s)),l=255*(1-Math.min(1,a*(1-s)+s));return new re(r,n,l)}return this;var e}toArray(){const{_a:e,_b:t,_c:i,_d:a,space:s}=this;return[e,t,i,a,s]}toHex(){const[e,t,i]=this._clamped().map(ll);return`#${e}${t}${i}`}toRgb(){const[e,t,i]=this._clamped();return`rgb(${e},${t},${i})`}toString(){return this.toHex()}xyz(){const{_a:e,_b:t,_c:i}=this.rgb(),[a,s,r]=[e,t,i].map(x=>x/255),n=a>.04045?Math.pow((a+.055)/1.055,2.4):a/12.92,l=s>.04045?Math.pow((s+.055)/1.055,2.4):s/12.92,h=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92,d=(.4124*n+.3576*l+.1805*h)/.95047,c=(.2126*n+.7152*l+.0722*h)/1,u=(.0193*n+.1192*l+.9505*h)/1.08883,g=d>.008856?Math.pow(d,1/3):7.787*d+16/116,p=c>.008856?Math.pow(c,1/3):7.787*c+16/116,f=u>.008856?Math.pow(u,1/3):7.787*u+16/116;return new re(g,p,f,"xyz")}_clamped(){const{_a:e,_b:t,_c:i}=this.rgb(),{max:a,min:s,round:r}=Math;return[e,t,i].map(n=>a(0,s(r(n),255)))}}class ie{constructor(...e){this.init(...e)}clone(){return new ie(this)}init(e,t){const s=Array.isArray(e)?{x:e[0],y:e[1]}:typeof e=="object"?{x:e.x,y:e.y}:{x:e,y:t};return this.x=s.x==null?0:s.x,this.y=s.y==null?0:s.y,this}toArray(){return[this.x,this.y]}transform(e){return this.clone().transformO(e)}transformO(e){N.isMatrixLike(e)||(e=new N(e));const{x:t,y:i}=this;return this.x=e.a*t+e.c*i+e.e,this.y=e.b*t+e.d*i+e.f,this}}function dt(o,e,t){return Math.abs(e-o)<1e-6}class N{constructor(...e){this.init(...e)}static formatTransforms(e){const t=e.flip==="both"||e.flip===!0,i=e.flip&&(t||e.flip==="x")?-1:1,a=e.flip&&(t||e.flip==="y")?-1:1,s=e.skew&&e.skew.length?e.skew[0]:isFinite(e.skew)?e.skew:isFinite(e.skewX)?e.skewX:0,r=e.skew&&e.skew.length?e.skew[1]:isFinite(e.skew)?e.skew:isFinite(e.skewY)?e.skewY:0,n=e.scale&&e.scale.length?e.scale[0]*i:isFinite(e.scale)?e.scale*i:isFinite(e.scaleX)?e.scaleX*i:i,l=e.scale&&e.scale.length?e.scale[1]*a:isFinite(e.scale)?e.scale*a:isFinite(e.scaleY)?e.scaleY*a:a,h=e.shear||0,d=e.rotate||e.theta||0,c=new ie(e.origin||e.around||e.ox||e.originX,e.oy||e.originY),u=c.x,g=c.y,p=new ie(e.position||e.px||e.positionX||NaN,e.py||e.positionY||NaN),f=p.x,x=p.y,m=new ie(e.translate||e.tx||e.translateX,e.ty||e.translateY),b=m.x,v=m.y,k=new ie(e.relative||e.rx||e.relativeX,e.ry||e.relativeY);return{scaleX:n,scaleY:l,skewX:s,skewY:r,shear:h,theta:d,rx:k.x,ry:k.y,tx:b,ty:v,ox:u,oy:g,px:f,py:x}}static fromArray(e){return{a:e[0],b:e[1],c:e[2],d:e[3],e:e[4],f:e[5]}}static isMatrixLike(e){return e.a!=null||e.b!=null||e.c!=null||e.d!=null||e.e!=null||e.f!=null}static matrixMultiply(e,t,i){const a=e.a*t.a+e.c*t.b,s=e.b*t.a+e.d*t.b,r=e.a*t.c+e.c*t.d,n=e.b*t.c+e.d*t.d,l=e.e+e.a*t.e+e.c*t.f,h=e.f+e.b*t.e+e.d*t.f;return i.a=a,i.b=s,i.c=r,i.d=n,i.e=l,i.f=h,i}around(e,t,i){return this.clone().aroundO(e,t,i)}aroundO(e,t,i){const a=e||0,s=t||0;return this.translateO(-a,-s).lmultiplyO(i).translateO(a,s)}clone(){return new N(this)}decompose(e=0,t=0){const i=this.a,a=this.b,s=this.c,r=this.d,n=this.e,l=this.f,h=i*r-a*s,d=h>0?1:-1,c=d*Math.sqrt(i*i+a*a),u=Math.atan2(d*a,d*i),g=180/Math.PI*u,p=Math.cos(u),f=Math.sin(u),x=(i*s+a*r)/h,m=s*c/(x*i-a)||r*c/(x*a+i);return{scaleX:c,scaleY:m,shear:x,rotate:g,translateX:n-e+e*p*c+t*(x*p*c-f*m),translateY:l-t+e*f*c+t*(x*f*c+p*m),originX:e,originY:t,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}equals(e){if(e===this)return!0;const t=new N(e);return dt(this.a,t.a)&&dt(this.b,t.b)&&dt(this.c,t.c)&&dt(this.d,t.d)&&dt(this.e,t.e)&&dt(this.f,t.f)}flip(e,t){return this.clone().flipO(e,t)}flipO(e,t){return e==="x"?this.scaleO(-1,1,t,0):e==="y"?this.scaleO(1,-1,0,t):this.scaleO(-1,-1,e,t||e)}init(e){const t=N.fromArray([1,0,0,1,0,0]);return e=e instanceof Ae?e.matrixify():typeof e=="string"?N.fromArray(e.split(Ue).map(parseFloat)):Array.isArray(e)?N.fromArray(e):typeof e=="object"&&N.isMatrixLike(e)?e:typeof e=="object"?new N().transform(e):arguments.length===6?N.fromArray([].slice.call(arguments)):t,this.a=e.a!=null?e.a:t.a,this.b=e.b!=null?e.b:t.b,this.c=e.c!=null?e.c:t.c,this.d=e.d!=null?e.d:t.d,this.e=e.e!=null?e.e:t.e,this.f=e.f!=null?e.f:t.f,this}inverse(){return this.clone().inverseO()}inverseO(){const e=this.a,t=this.b,i=this.c,a=this.d,s=this.e,r=this.f,n=e*a-t*i;if(!n)throw new Error("Cannot invert "+this);const l=a/n,h=-t/n,d=-i/n,c=e/n,u=-(l*s+d*r),g=-(h*s+c*r);return this.a=l,this.b=h,this.c=d,this.d=c,this.e=u,this.f=g,this}lmultiply(e){return this.clone().lmultiplyO(e)}lmultiplyO(e){const t=e instanceof N?e:new N(e);return N.matrixMultiply(t,this,this)}multiply(e){return this.clone().multiplyO(e)}multiplyO(e){const t=e instanceof N?e:new N(e);return N.matrixMultiply(this,t,this)}rotate(e,t,i){return this.clone().rotateO(e,t,i)}rotateO(e,t=0,i=0){e=ui(e);const a=Math.cos(e),s=Math.sin(e),{a:r,b:n,c:l,d:h,e:d,f:c}=this;return this.a=r*a-n*s,this.b=n*a+r*s,this.c=l*a-h*s,this.d=h*a+l*s,this.e=d*a-c*s+i*s-t*a+t,this.f=c*a+d*s-t*s-i*a+i,this}scale(){return this.clone().scaleO(...arguments)}scaleO(e,t=e,i=0,a=0){arguments.length===3&&(a=i,i=t,t=e);const{a:s,b:r,c:n,d:l,e:h,f:d}=this;return this.a=s*e,this.b=r*t,this.c=n*e,this.d=l*t,this.e=h*e-i*e+i,this.f=d*t-a*t+a,this}shear(e,t,i){return this.clone().shearO(e,t,i)}shearO(e,t=0,i=0){const{a,b:s,c:r,d:n,e:l,f:h}=this;return this.a=a+s*e,this.c=r+n*e,this.e=l+h*e-i*e,this}skew(){return this.clone().skewO(...arguments)}skewO(e,t=e,i=0,a=0){arguments.length===3&&(a=i,i=t,t=e),e=ui(e),t=ui(t);const s=Math.tan(e),r=Math.tan(t),{a:n,b:l,c:h,d,e:c,f:u}=this;return this.a=n+l*s,this.b=l+n*r,this.c=h+d*s,this.d=d+h*r,this.e=c+u*s-a*s,this.f=u+c*r-i*r,this}skewX(e,t,i){return this.skew(e,0,t,i)}skewY(e,t,i){return this.skew(0,e,t,i)}toArray(){return[this.a,this.b,this.c,this.d,this.e,this.f]}toString(){return"matrix("+this.a+","+this.b+","+this.c+","+this.d+","+this.e+","+this.f+")"}transform(e){if(N.isMatrixLike(e))return new N(e).multiplyO(this);const t=N.formatTransforms(e),{x:i,y:a}=new ie(t.ox,t.oy).transform(this),s=new N().translateO(t.rx,t.ry).lmultiplyO(this).translateO(-i,-a).scaleO(t.scaleX,t.scaleY).skewO(t.skewX,t.skewY).shearO(t.shear).rotateO(t.theta).translateO(i,a);if(isFinite(t.px)||isFinite(t.py)){const r=new ie(i,a).transform(s),n=isFinite(t.px)?t.px-r.x:0,l=isFinite(t.py)?t.py-r.y:0;s.translateO(n,l)}return s.translateO(t.tx,t.ty),s}translate(e,t){return this.clone().translateO(e,t)}translateO(e,t){return this.e+=e||0,this.f+=t||0,this}valueOf(){return{a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}}function $e(){if(!$e.nodes){const o=Pe().size(2,0);o.node.style.cssText=["opacity: 0","position: absolute","left: -100%","top: -100%","overflow: hidden"].join(";"),o.attr("focusable","false"),o.attr("aria-hidden","true");const e=o.path().node;$e.nodes={svg:o,path:e}}if(!$e.nodes.svg.node.parentNode){const o=K.document.body||K.document.documentElement;$e.nodes.svg.addTo(o)}return $e.nodes}function Ms(o){return!(o.width||o.height||o.x||o.y)}Q(N,"Matrix");class fe{constructor(...e){this.init(...e)}addOffset(){return this.x+=K.window.pageXOffset,this.y+=K.window.pageYOffset,new fe(this)}init(e){return e=typeof e=="string"?e.split(Ue).map(parseFloat):Array.isArray(e)?e:typeof e=="object"?[e.left!=null?e.left:e.x,e.top!=null?e.top:e.y,e.width,e.height]:arguments.length===4?[].slice.call(arguments):[0,0,0,0],this.x=e[0]||0,this.y=e[1]||0,this.width=this.w=e[2]||0,this.height=this.h=e[3]||0,this.x2=this.x+this.w,this.y2=this.y+this.h,this.cx=this.x+this.w/2,this.cy=this.y+this.h/2,this}isNulled(){return Ms(this)}merge(e){const t=Math.min(this.x,e.x),i=Math.min(this.y,e.y),a=Math.max(this.x+this.width,e.x+e.width)-t,s=Math.max(this.y+this.height,e.y+e.height)-i;return new fe(t,i,a,s)}toArray(){return[this.x,this.y,this.width,this.height]}toString(){return this.x+" "+this.y+" "+this.width+" "+this.height}transform(e){e instanceof N||(e=new N(e));let t=1/0,i=-1/0,a=1/0,s=-1/0;return[new ie(this.x,this.y),new ie(this.x2,this.y),new ie(this.x,this.y2),new ie(this.x2,this.y2)].forEach(function(r){r=r.transform(e),t=Math.min(t,r.x),i=Math.max(i,r.x),a=Math.min(a,r.y),s=Math.max(s,r.y)}),new fe(t,a,i-t,s-a)}}function Va(o,e,t){let i;try{if(i=e(o.node),Ms(i)&&(a=o.node)!==K.document&&!(K.document.documentElement.contains||function(s){for(;s.parentNode;)s=s.parentNode;return s===K.document}).call(K.document.documentElement,a))throw new Error("Element not in the dom")}catch{i=t(o)}var a;return i}J({viewbox:{viewbox(o,e,t,i){return o==null?new fe(this.attr("viewBox")):this.attr("viewBox",new fe(o,e,t,i))},zoom(o,e){let{width:t,height:i}=this.attr(["width","height"]);if((t||i)&&typeof t!="string"&&typeof i!="string"||(t=this.node.clientWidth,i=this.node.clientHeight),!t||!i)throw new Error("Impossible to get absolute width and height. Please provide an absolute width and height attribute on the zooming element");const a=this.viewbox(),s=t/a.width,r=i/a.height,n=Math.min(s,r);if(o==null)return n;let l=n/o;l===1/0&&(l=Number.MAX_SAFE_INTEGER/100),e=e||new ie(t/2/s+a.x,i/2/r+a.y);const h=new fe(a).transform(new N({scale:l,origin:e}));return this.viewbox(h)}}}),Q(fe,"Box");class ot extends Array{constructor(e=[],...t){if(super(e,...t),typeof e=="number")return this;this.length=0,this.push(...e)}}G([ot],{each(o,...e){return typeof o=="function"?this.map((t,i,a)=>o.call(t,t,i,a)):this.map(t=>t[o](...e))},toArray(){return Array.prototype.concat.apply([],this)}});const hl=["toArray","constructor","each"];function ht(o,e){return new ot(sa((e||K.document).querySelectorAll(o),function(t){return Oe(t)}))}ot.extend=function(o){o=o.reduce((e,t)=>(hl.includes(t)||t[0]==="_"||(t in Array.prototype&&(e["$"+t]=Array.prototype[t]),e[t]=function(...i){return this.each(t,...i)}),e),{}),G([ot],o)};let cl=0;const Ps={};function Is(o){let e=o.getEventHolder();return e===K.window&&(e=Ps),e.events||(e.events={}),e.events}function ha(o){return o.getEventTarget()}function Ve(o,e,t,i,a){const s=t.bind(i||o),r=Pe(o),n=Is(r),l=ha(r);e=Array.isArray(e)?e:e.split(Ue),t._svgjsListenerId||(t._svgjsListenerId=++cl),e.forEach(function(h){const d=h.split(".")[0],c=h.split(".")[1]||"*";n[d]=n[d]||{},n[d][c]=n[d][c]||{},n[d][c][t._svgjsListenerId]=s,l.addEventListener(d,s,a||!1)})}function Ye(o,e,t,i){const a=Pe(o),s=Is(a),r=ha(a);(typeof t!="function"||(t=t._svgjsListenerId))&&(e=Array.isArray(e)?e:(e||"").split(Ue)).forEach(function(n){const l=n&&n.split(".")[0],h=n&&n.split(".")[1];let d,c;if(t)s[l]&&s[l][h||"*"]&&(r.removeEventListener(l,s[l][h||"*"][t],i||!1),delete s[l][h||"*"][t]);else if(l&&h){if(s[l]&&s[l][h]){for(c in s[l][h])Ye(r,[l,h].join("."),c);delete s[l][h]}}else if(h)for(n in s)for(d in s[n])h===d&&Ye(r,[n,h].join("."));else if(l){if(s[l]){for(d in s[l])Ye(r,[l,d].join("."));delete s[l]}}else{for(n in s)Ye(r,n);(function(u){let g=u.getEventHolder();g===K.window&&(g=Ps),g.events&&(g.events={})})(a)}})}class Ft extends na{addEventListener(){}dispatch(e,t,i){return function(a,s,r,n){const l=ha(a);return s instanceof K.window.Event||(s=new K.window.CustomEvent(s,{detail:r,cancelable:!0,...n})),l.dispatchEvent(s),s}(this,e,t,i)}dispatchEvent(e){const t=this.getEventHolder().events;if(!t)return!0;const i=t[e.type];for(const a in i)for(const s in i[a])i[a][s](e);return!e.defaultPrevented}fire(e,t,i){return this.dispatch(e,t,i),this}getEventHolder(){return this}getEventTarget(){return this}off(e,t,i){return Ye(this,e,t,i),this}on(e,t,i,a){return Ve(this,e,t,i,a),this}removeEventListener(){}}function Ua(){}Q(Ft,"EventTarget");const xi=400,dl=">",ul=0,gl={"fill-opacity":1,"stroke-opacity":1,"stroke-width":0,"stroke-linejoin":"miter","stroke-linecap":"butt",fill:"#000000",stroke:"#000000",opacity:1,x:0,y:0,cx:0,cy:0,width:0,height:0,r:0,rx:0,ry:0,offset:0,"stop-opacity":1,"stop-color":"#000000","text-anchor":"start"};class lt extends Array{constructor(...e){super(...e),this.init(...e)}clone(){return new this.constructor(this)}init(e){return typeof e=="number"||(this.length=0,this.push(...this.parse(e))),this}parse(e=[]){return e instanceof Array?e:e.trim().split(Ue).map(parseFloat)}toArray(){return Array.prototype.concat.apply([],this)}toSet(){return new Set(this)}toString(){return this.join(" ")}valueOf(){const e=[];return e.push(...this),e}}class Z{constructor(...e){this.init(...e)}convert(e){return new Z(this.value,e)}divide(e){return e=new Z(e),new Z(this/e,this.unit||e.unit)}init(e,t){return t=Array.isArray(e)?e[1]:t,e=Array.isArray(e)?e[0]:e,this.value=0,this.unit=t||"",typeof e=="number"?this.value=isNaN(e)?0:isFinite(e)?e:e<0?-34e37:34e37:typeof e=="string"?(t=e.match(Ls))&&(this.value=parseFloat(t[1]),t[5]==="%"?this.value/=100:t[5]==="s"&&(this.value*=1e3),this.unit=t[5]):e instanceof Z&&(this.value=e.valueOf(),this.unit=e.unit),this}minus(e){return e=new Z(e),new Z(this-e,this.unit||e.unit)}plus(e){return e=new Z(e),new Z(this+e,this.unit||e.unit)}times(e){return e=new Z(e),new Z(this*e,this.unit||e.unit)}toArray(){return[this.value,this.unit]}toJSON(){return this.toString()}toString(){return(this.unit==="%"?~~(1e8*this.value)/1e6:this.unit==="s"?this.value/1e3:this.value)+this.unit}valueOf(){return this.value}}const pl=new Set(["fill","stroke","color","bgcolor","stop-color","flood-color","lighting-color"]),Ts=[];class Je extends Ft{constructor(e,t){super(),this.node=e,this.type=e.nodeName,t&&e!==t&&this.attr(t)}add(e,t){return(e=Pe(e)).removeNamespace&&this.node instanceof K.window.SVGElement&&e.removeNamespace(),t==null?this.node.appendChild(e.node):e.node!==this.node.childNodes[t]&&this.node.insertBefore(e.node,this.node.childNodes[t]),this}addTo(e,t){return Pe(e).put(this,t)}children(){return new ot(sa(this.node.children,function(e){return Oe(e)}))}clear(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return this}clone(e=!0,t=!0){this.writeDataToDom();let i=this.node.cloneNode(e);return t&&(i=Ss(i)),new this.constructor(i)}each(e,t){const i=this.children();let a,s;for(a=0,s=i.length;a=0}html(e,t){return this.xml(e,t,"http://www.w3.org/1999/xhtml")}id(e){return e!==void 0||this.node.id||(this.node.id=Cs(this.type)),this.attr("id",e)}index(e){return[].slice.call(this.node.childNodes).indexOf(e.node)}last(){return Oe(this.node.lastChild)}matches(e){const t=this.node,i=t.matches||t.matchesSelector||t.msMatchesSelector||t.mozMatchesSelector||t.webkitMatchesSelector||t.oMatchesSelector||null;return i&&i.call(t,e)}parent(e){let t=this;if(!t.node.parentNode)return null;if(t=Oe(t.node.parentNode),!e)return t;do if(typeof e=="string"?t.matches(e):t instanceof e)return t;while(t=Oe(t.node.parentNode));return t}put(e,t){return e=Pe(e),this.add(e,t),e}putIn(e,t){return Pe(e).add(this,t)}remove(){return this.parent()&&this.parent().removeElement(this),this}removeElement(e){return this.node.removeChild(e.node),this}replace(e){return e=Pe(e),this.node.parentNode&&this.node.parentNode.replaceChild(e.node,this.node),e}round(e=2,t=null){const i=10**e,a=this.attr(t);for(const s in a)typeof a[s]=="number"&&(a[s]=Math.round(a[s]*i)/i);return this.attr(a),this}svg(e,t){return this.xml(e,t,ra)}toString(){return this.id()}words(e){return this.node.textContent=e,this}wrap(e){const t=this.parent();if(!t)return this.addTo(e);const i=t.index(this);return t.put(e,i).put(this)}writeDataToDom(){return this.each(function(){this.writeDataToDom()}),this}xml(e,t,i){if(typeof e=="boolean"&&(i=t,t=e,e=null),e==null||typeof e=="function"){t=t==null||t,this.writeDataToDom();let n=this;if(e!=null){if(n=Oe(n.node.cloneNode(!0)),t){const l=e(n);if(n=l||n,l===!1)return""}n.each(function(){const l=e(this),h=l||this;l===!1?this.remove():l&&this!==h&&this.replace(h)},!0)}return t?n.node.outerHTML:n.node.innerHTML}t=t!=null&&t;const a=Tt("wrapper",i),s=K.document.createDocumentFragment();a.innerHTML=e;for(let n=a.children.length;n--;)s.appendChild(a.firstElementChild);const r=this.parent();return t?this.replace(s)&&r:this.add(s)}}G(Je,{attr:function(o,e,t){if(o==null){o={},e=this.node.attributes;for(const i of e)o[i.nodeName]=ja.test(i.nodeValue)?parseFloat(i.nodeValue):i.nodeValue;return o}if(o instanceof Array)return o.reduce((i,a)=>(i[a]=this.attr(a),i),{});if(typeof o=="object"&&o.constructor===Object)for(e in o)this.attr(e,o[e]);else if(e===null)this.node.removeAttribute(o);else{if(e==null)return(e=this.node.getAttribute(o))==null?gl[o]:ja.test(e)?parseFloat(e):e;typeof(e=Ts.reduce((i,a)=>a(o,i,this),e))=="number"?e=new Z(e):pl.has(o)&&re.isColor(e)?e=new re(e):e.constructor===Array&&(e=new lt(e)),o==="leading"?this.leading&&this.leading(e):typeof t=="string"?this.node.setAttributeNS(t,o,e.toString()):this.node.setAttribute(o,e.toString()),!this.rebuild||o!=="font-size"&&o!=="x"||this.rebuild()}return this},find:function(o){return ht(o,this.node)},findOne:function(o){return Oe(this.node.querySelector(o))}}),Q(Je,"Dom");class Ae extends Je{constructor(e,t){super(e,t),this.dom={},this.node.instance=this,(e.hasAttribute("data-svgjs")||e.hasAttribute("svgjs:data"))&&this.setData(JSON.parse(e.getAttribute("data-svgjs"))??JSON.parse(e.getAttribute("svgjs:data"))??{})}center(e,t){return this.cx(e).cy(t)}cx(e){return e==null?this.x()+this.width()/2:this.x(e-this.width()/2)}cy(e){return e==null?this.y()+this.height()/2:this.y(e-this.height()/2)}defs(){const e=this.root();return e&&e.defs()}dmove(e,t){return this.dx(e).dy(t)}dx(e=0){return this.x(new Z(e).plus(this.x()))}dy(e=0){return this.y(new Z(e).plus(this.y()))}getEventHolder(){return this}height(e){return this.attr("height",e)}move(e,t){return this.x(e).y(t)}parents(e=this.root()){const t=typeof e=="string";t||(e=Pe(e));const i=new ot;let a=this;for(;(a=a.parent())&&a.node!==K.document&&a.nodeName!=="#document-fragment"&&(i.push(a),t||a.node!==e.node)&&(!t||!a.matches(e));)if(a.node===this.root().node)return null;return i}reference(e){if(!(e=this.attr(e)))return null;const t=(e+"").match(sl);return t?Pe(t[1]):null}root(){const e=this.parent(function(t){return nt[t]}(oa));return e&&e.root()}setData(e){return this.dom=e,this}size(e,t){const i=kt(this,e,t);return this.width(new Z(i.width)).height(new Z(i.height))}width(e){return this.attr("width",e)}writeDataToDom(){return As(this,this.dom),super.writeDataToDom()}x(e){return this.attr("x",e)}y(e){return this.attr("y",e)}}G(Ae,{bbox:function(){const o=Va(this,e=>e.getBBox(),e=>{try{const t=e.clone().addTo($e().svg).show(),i=t.node.getBBox();return t.remove(),i}catch(t){throw new Error(`Getting bbox of element "${e.node.nodeName}" is not possible: ${t.toString()}`)}});return new fe(o)},rbox:function(o){const e=Va(this,i=>i.getBoundingClientRect(),i=>{throw new Error(`Getting rbox of element "${i.node.nodeName}" is not possible`)}),t=new fe(e);return o?t.transform(o.screenCTM().inverseO()):t.addOffset()},inside:function(o,e){const t=this.bbox();return o>t.x&&e>t.y&&o=0;t--)i[Mt[o][t]]!=null&&this.attr(Mt.prefix(o,Mt[o][t]),i[Mt[o][t]]);return this},J(["Element","Runner"],e)}),J(["Element","Runner"],{matrix:function(o,e,t,i,a,s){return o==null?new N(this):this.attr("transform",new N(o,e,t,i,a,s))},rotate:function(o,e,t){return this.transform({rotate:o,ox:e,oy:t},!0)},skew:function(o,e,t,i){return arguments.length===1||arguments.length===3?this.transform({skew:o,ox:e,oy:t},!0):this.transform({skew:[o,e],ox:t,oy:i},!0)},shear:function(o,e,t){return this.transform({shear:o,ox:e,oy:t},!0)},scale:function(o,e,t,i){return arguments.length===1||arguments.length===3?this.transform({scale:o,ox:e,oy:t},!0):this.transform({scale:[o,e],ox:t,oy:i},!0)},translate:function(o,e){return this.transform({translate:[o,e]},!0)},relative:function(o,e){return this.transform({relative:[o,e]},!0)},flip:function(o="both",e="center"){return"xybothtrue".indexOf(o)===-1&&(e=o,o="both"),this.transform({flip:o,origin:e},!0)},opacity:function(o){return this.attr("opacity",o)}}),J("radius",{radius:function(o,e=o){return(this._element||this).type==="radialGradient"?this.attr("r",new Z(o)):this.rx(o).ry(e)}}),J("Path",{length:function(){return this.node.getTotalLength()},pointAt:function(o){return new ie(this.node.getPointAtLength(o))}}),J(["Element","Runner"],{font:function(o,e){if(typeof o=="object"){for(e in o)this.font(e,o[e]);return this}return o==="leading"?this.leading(e):o==="anchor"?this.attr("text-anchor",e):o==="size"||o==="family"||o==="weight"||o==="stretch"||o==="variant"||o==="style"?this.attr("font-"+o,e):this.attr(o,e)}});J("Element",["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","mouseenter","mouseleave","touchstart","touchmove","touchleave","touchend","touchcancel","contextmenu","wheel","pointerdown","pointermove","pointerup","pointerleave","pointercancel"].reduce(function(o,e){return o[e]=function(t){return t===null?this.off(e):this.on(e,t),this},o},{})),J("Element",{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(rl).slice(0,-1).map(function(e){const t=e.trim().split("(");return[t[0],t[1].split(Ue).map(function(i){return parseFloat(i)})]}).reverse().reduce(function(e,t){return t[0]==="matrix"?e.lmultiply(N.fromArray(t[1])):e[t[0]].apply(e,t[1])},new N)},toParent:function(o,e){if(this===o)return this;if(Oi(this.node))return this.addTo(o,e);const t=this.screenCTM(),i=o.screenCTM().inverse();return this.addTo(o,e).untransform().transform(i.multiply(t)),this},toRoot:function(o){return this.toParent(this.root(),o)},transform:function(o,e){if(o==null||typeof o=="string"){const i=new N(this).decompose();return o==null?i:i[o]}N.isMatrixLike(o)||(o={...o,origin:Ei(o,this)});const t=new N(e===!0?this:e||!1).transform(o);return this.attr("transform",t)}});class Ie extends Ae{flatten(){return this.each(function(){if(this instanceof Ie)return this.flatten().ungroup()}),this}ungroup(e=this.parent(),t=e.index(this)){return t=t===-1?e.children().length:t,this.each(function(i,a){return a[a.length-i-1].toParent(e,t)}),this.remove()}}Q(Ie,"Container");class hi extends Ie{constructor(e,t=e){super(de("defs",e),t)}flatten(){return this}ungroup(){return this}}Q(hi,"Defs");class Re extends Ae{}function ca(o){return this.attr("rx",o)}function da(o){return this.attr("ry",o)}function zs(o){return o==null?this.cx()-this.rx():this.cx(o+this.rx())}function Xs(o){return o==null?this.cy()-this.ry():this.cy(o+this.ry())}function _s(o){return this.attr("cx",o)}function Rs(o){return this.attr("cy",o)}function Es(o){return o==null?2*this.rx():this.rx(new Z(o).divide(2))}function Os(o){return o==null?2*this.ry():this.ry(new Z(o).divide(2))}Q(Re,"Shape");var fl=Object.freeze({__proto__:null,cx:_s,cy:Rs,height:Os,rx:ca,ry:da,width:Es,x:zs,y:Xs});class Vt extends Re{constructor(e,t=e){super(de("ellipse",e),t)}size(e,t){const i=kt(this,e,t);return this.rx(new Z(i.width).divide(2)).ry(new Z(i.height).divide(2))}}G(Vt,fl),J("Container",{ellipse:ce(function(o=0,e=o){return this.put(new Vt).size(o,e).move(0,0)})}),Q(Vt,"Ellipse");class Ys extends Je{constructor(e=K.document.createDocumentFragment()){super(e)}xml(e,t,i){if(typeof e=="boolean"&&(i=t,t=e,e=null),e==null||typeof e=="function"){const a=new Je(Tt("wrapper",i));return a.add(this.node.cloneNode(!0)),a.xml(!1,i)}return super.xml(e,!1,i)}}function Hs(o,e){return(this._element||this).type==="radialGradient"?this.attr({fx:new Z(o),fy:new Z(e)}):this.attr({x1:new Z(o),y1:new Z(e)})}function Fs(o,e){return(this._element||this).type==="radialGradient"?this.attr({cx:new Z(o),cy:new Z(e)}):this.attr({x2:new Z(o),y2:new Z(e)})}Q(Ys,"Fragment");var xl=Object.freeze({__proto__:null,from:Hs,to:Fs});class It extends Ie{constructor(e,t){super(de(e+"Gradient",typeof e=="string"?null:e),t)}attr(e,t,i){return e==="transform"&&(e="gradientTransform"),super.attr(e,t,i)}bbox(){return new fe}targets(){return ht("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(e){return this.clear(),typeof e=="function"&&e.call(this,this),this}url(){return"url(#"+this.id()+")"}}G(It,xl),J({Container:{gradient(...o){return this.defs().gradient(...o)}},Defs:{gradient:ce(function(o,e){return this.put(new It(o)).update(e)})}}),Q(It,"Gradient");class zt extends Ie{constructor(e,t=e){super(de("pattern",e),t)}attr(e,t,i){return e==="transform"&&(e="patternTransform"),super.attr(e,t,i)}bbox(){return new fe}targets(){return ht("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(e){return this.clear(),typeof e=="function"&&e.call(this,this),this}url(){return"url(#"+this.id()+")"}}J({Container:{pattern(...o){return this.defs().pattern(...o)}},Defs:{pattern:ce(function(o,e,t){return this.put(new zt).update(t).attr({x:0,y:0,width:o,height:e,patternUnits:"userSpaceOnUse"})})}}),Q(zt,"Pattern");let Ut=class extends Re{constructor(o,e=o){super(de("image",o),e)}load(o,e){if(!o)return this;const t=new K.window.Image;return Ve(t,"load",function(i){const a=this.parent(zt);this.width()===0&&this.height()===0&&this.size(t.width,t.height),a instanceof zt&&a.width()===0&&a.height()===0&&a.size(this.width(),this.height()),typeof e=="function"&&e.call(this,i)},this),Ve(t,"load error",function(){Ye(t)}),this.attr("href",t.src=o,At)}};var qa;qa=function(o,e,t){return o!=="fill"&&o!=="stroke"||ol.test(e)&&(e=t.root().defs().image(e)),e instanceof Ut&&(e=t.root().defs().pattern(0,0,i=>{i.add(e)})),e},Ts.push(qa),J({Container:{image:ce(function(o,e){return this.put(new Ut).size(0,0).load(o,e)})}}),Q(Ut,"Image");class Ke extends lt{bbox(){let e=-1/0,t=-1/0,i=1/0,a=1/0;return this.forEach(function(s){e=Math.max(s[0],e),t=Math.max(s[1],t),i=Math.min(s[0],i),a=Math.min(s[1],a)}),new fe(i,a,e-i,t-a)}move(e,t){const i=this.bbox();if(e-=i.x,t-=i.y,!isNaN(e)&&!isNaN(t))for(let a=this.length-1;a>=0;a--)this[a]=[this[a][0]+e,this[a][1]+t];return this}parse(e=[0,0]){const t=[];(e=e instanceof Array?Array.prototype.concat.apply([],e):e.trim().split(Ue).map(parseFloat)).length%2!=0&&e.pop();for(let i=0,a=e.length;i=0;i--)a.width&&(this[i][0]=(this[i][0]-a.x)*e/a.width+a.x),a.height&&(this[i][1]=(this[i][1]-a.y)*t/a.height+a.y);return this}toLine(){return{x1:this[0][0],y1:this[0][1],x2:this[1][0],y2:this[1][1]}}toString(){const e=[];for(let t=0,i=this.length;t":function(o){return-Math.cos(o*Math.PI)/2+.5},">":function(o){return Math.sin(o*Math.PI/2)},"<":function(o){return 1-Math.cos(o*Math.PI/2)},bezier:function(o,e,t,i){return function(a){return a<0?o>0?e/o*a:t>0?i/t*a:0:a>1?t<1?(1-i)/(1-t)*a+(i-t)/(1-t):o<1?(1-e)/(1-o)*a+(e-o)/(1-o):1:3*a*(1-a)**2*e+3*a**2*(1-a)*i+a**3}},steps:function(o,e="end"){e=e.split("-").reverse()[0];let t=o;return e==="none"?--t:e==="both"&&++t,(i,a=!1)=>{let s=Math.floor(i*o);const r=i*s%1==0;return e!=="start"&&e!=="both"||++s,a&&r&&--s,i>=0&&s<0&&(s=0),i<=1&&s>t&&(s=t),s/t}}};class ga{done(){return!1}}class Yi extends ga{constructor(e=dl){super(),this.ease=bl[e]||e}step(e,t,i){return typeof e!="number"?i<1?e:t:e+(t-e)*this.ease(i)}}class ti extends ga{constructor(e){super(),this.stepper=e}done(e){return e.done}step(e,t,i,a){return this.stepper(e,t,i,a)}}function $a(){const o=(this._duration||500)/1e3,e=this._overshoot||0,t=Math.PI,i=Math.log(e/100+1e-10),a=-i/Math.sqrt(t*t+i*i),s=3.9/(a*o);this.d=2*a*s,this.k=s*s}G(class extends ti{constructor(o=500,e=0){super(),this.duration(o).overshoot(e)}step(o,e,t,i){if(typeof o=="string")return o;if(i.done=t===1/0,t===1/0)return e;if(t===0)return o;t>100&&(t=16),t/=1e3;const a=i.velocity||0,s=-this.d*a-this.k*(o-e),r=o+a*t+s*t*t/2;return i.velocity=a+s*t,i.done=Math.abs(e-r)+Math.abs(a)<.002,i.done?e:r}},{duration:gt("_duration",$a),overshoot:gt("_overshoot",$a)});G(class extends ti{constructor(o=.1,e=.01,t=0,i=1e3){super(),this.p(o).i(e).d(t).windup(i)}step(o,e,t,i){if(typeof o=="string")return o;if(i.done=t===1/0,t===1/0)return e;if(t===0)return o;const a=e-o;let s=(i.integral||0)+a*t;const r=(a-(i.error||0))/t,n=this._windup;return n!==!1&&(s=Math.max(-n,Math.min(s,n))),i.error=a,i.integral=s,i.done=Math.abs(a)<.001,i.done?e:o+(this.P*a+this.I*s+this.D*r)}},{windup:gt("_windup"),p:gt("P"),i:gt("I"),d:gt("D")});const vl={M:2,L:2,H:1,V:1,C:6,S:4,Q:4,T:2,A:7,Z:0},Hi={M:function(o,e,t){return e.x=t.x=o[0],e.y=t.y=o[1],["M",e.x,e.y]},L:function(o,e){return e.x=o[0],e.y=o[1],["L",o[0],o[1]]},H:function(o,e){return e.x=o[0],["H",o[0]]},V:function(o,e){return e.y=o[0],["V",o[0]]},C:function(o,e){return e.x=o[4],e.y=o[5],["C",o[0],o[1],o[2],o[3],o[4],o[5]]},S:function(o,e){return e.x=o[2],e.y=o[3],["S",o[0],o[1],o[2],o[3]]},Q:function(o,e){return e.x=o[2],e.y=o[3],["Q",o[0],o[1],o[2],o[3]]},T:function(o,e){return e.x=o[0],e.y=o[1],["T",o[0],o[1]]},Z:function(o,e,t){return e.x=t.x,e.y=t.y,["Z"]},A:function(o,e){return e.x=o[5],e.y=o[6],["A",o[0],o[1],o[2],o[3],o[4],o[5],o[6]]}},mi="mlhvqtcsaz".split("");for(let o=0,e=mi.length;o=0;s--)a=this[s][0],a==="M"||a==="L"||a==="T"?(this[s][1]+=e,this[s][2]+=t):a==="H"?this[s][1]+=e:a==="V"?this[s][1]+=t:a==="C"||a==="S"||a==="Q"?(this[s][1]+=e,this[s][2]+=t,this[s][3]+=e,this[s][4]+=t,a==="C"&&(this[s][5]+=e,this[s][6]+=t)):a==="A"&&(this[s][6]+=e,this[s][7]+=t);return this}parse(e="M0 0"){return Array.isArray(e)&&(e=Array.prototype.concat.apply([],e).toString()),function(t,i=!0){let a=0,s="";const r={segment:[],inNumber:!1,number:"",lastToken:"",inSegment:!1,segments:[],pointSeen:!1,hasExponent:!1,absolute:i,p0:new ie,p:new ie};for(;r.lastToken=s,s=t.charAt(a++);)if(r.inSegment||!yl(r,s))if(s!==".")if(isNaN(parseInt(s)))if(Al.has(s))r.inNumber&&et(r,!1);else if(s!=="-"&&s!=="+")if(s.toUpperCase()!=="E"){if(la.test(s)){if(r.inNumber)et(r,!1);else{if(!Fi(r))throw new Error("parser Error");Di(r)}--a}}else r.number+=s,r.hasExponent=!0;else{if(r.inNumber&&!kl(r)){et(r,!1),--a;continue}r.number+=s,r.inNumber=!0}else{if(r.number==="0"||wl(r)){r.inNumber=!0,r.number=s,et(r,!0);continue}r.inNumber=!0,r.number+=s}else{if(r.pointSeen||r.hasExponent){et(r,!1),--a;continue}r.inNumber=!0,r.pointSeen=!0,r.number+=s}return r.inNumber&&et(r,!1),r.inSegment&&Fi(r)&&Di(r),r.segments}(e)}size(e,t){const i=this.bbox();let a,s;for(i.width=i.width===0?1:i.width,i.height=i.height===0?1:i.height,a=this.length-1;a>=0;a--)s=this[a][0],s==="M"||s==="L"||s==="T"?(this[a][1]=(this[a][1]-i.x)*e/i.width+i.x,this[a][2]=(this[a][2]-i.y)*t/i.height+i.y):s==="H"?this[a][1]=(this[a][1]-i.x)*e/i.width+i.x:s==="V"?this[a][1]=(this[a][1]-i.y)*t/i.height+i.y:s==="C"||s==="S"||s==="Q"?(this[a][1]=(this[a][1]-i.x)*e/i.width+i.x,this[a][2]=(this[a][2]-i.y)*t/i.height+i.y,this[a][3]=(this[a][3]-i.x)*e/i.width+i.x,this[a][4]=(this[a][4]-i.y)*t/i.height+i.y,s==="C"&&(this[a][5]=(this[a][5]-i.x)*e/i.width+i.x,this[a][6]=(this[a][6]-i.y)*t/i.height+i.y)):s==="A"&&(this[a][1]=this[a][1]*e/i.width,this[a][2]=this[a][2]*t/i.height,this[a][6]=(this[a][6]-i.x)*e/i.width+i.x,this[a][7]=(this[a][7]-i.y)*t/i.height+i.y);return this}toString(){return function(e){let t="";for(let i=0,a=e.length;i{const e=typeof o;return e==="number"?Z:e==="string"?re.isColor(o)?re:Ue.test(o)?la.test(o)?Fe:lt:Ls.test(o)?Z:Ni:Wi.indexOf(o.constructor)>-1?o.constructor:Array.isArray(o)?lt:e==="object"?Xt:Ni};class tt{constructor(e){this._stepper=e||new Yi("-"),this._from=null,this._to=null,this._type=null,this._context=null,this._morphObj=null}at(e){return this._morphObj.morph(this._from,this._to,e,this._stepper,this._context)}done(){return this._context.map(this._stepper.done).reduce(function(e,t){return e&&t},!0)}from(e){return e==null?this._from:(this._from=this._set(e),this)}stepper(e){return e==null?this._stepper:(this._stepper=e,this)}to(e){return e==null?this._to:(this._to=this._set(e),this)}type(e){return e==null?this._type:(this._type=e,this)}_set(e){this._type||this.type(Ds(e));let t=new this._type(e);return this._type===re&&(t=this._to?t[this._to[4]]():this._from?t[this._from[4]]():t),this._type===Xt&&(t=this._to?t.align(this._to):this._from?t.align(this._from):t),t=t.toConsumable(),this._morphObj=this._morphObj||new this._type,this._context=this._context||Array.apply(null,Array(t.length)).map(Object).map(function(i){return i.done=!0,i}),t}}class Ni{constructor(...e){this.init(...e)}init(e){return e=Array.isArray(e)?e[0]:e,this.value=e,this}toArray(){return[this.value]}valueOf(){return this.value}}class Dt{constructor(...e){this.init(...e)}init(e){return Array.isArray(e)&&(e={scaleX:e[0],scaleY:e[1],shear:e[2],rotate:e[3],translateX:e[4],translateY:e[5],originX:e[6],originY:e[7]}),Object.assign(this,Dt.defaults,e),this}toArray(){const e=this;return[e.scaleX,e.scaleY,e.shear,e.rotate,e.translateX,e.translateY,e.originX,e.originY]}}Dt.defaults={scaleX:1,scaleY:1,shear:0,rotate:0,translateX:0,translateY:0,originX:0,originY:0};const Cl=(o,e)=>o[0]e[0]?1:0;class Xt{constructor(...e){this.init(...e)}align(e){const t=this.values;for(let i=0,a=t.length;ii.concat(a),[]),this}toArray(){return this.values}valueOf(){const e={},t=this.values;for(;t.length;){const i=t.shift(),a=t.shift(),s=t.shift(),r=t.splice(0,s);e[i]=new a(r)}return e}}const Wi=[Ni,Dt,Xt];class pt extends Re{constructor(e,t=e){super(de("path",e),t)}array(){return this._array||(this._array=new Fe(this.attr("d")))}clear(){return delete this._array,this}height(e){return e==null?this.bbox().height:this.size(this.bbox().width,e)}move(e,t){return this.attr("d",this.array().move(e,t))}plot(e){return e==null?this.array():this.clear().attr("d",typeof e=="string"?e:this._array=new Fe(e))}size(e,t){const i=kt(this,e,t);return this.attr("d",this.array().size(i.width,i.height))}width(e){return e==null?this.bbox().width:this.size(e,this.bbox().height)}x(e){return e==null?this.bbox().x:this.move(e,this.bbox().y)}y(e){return e==null?this.bbox().y:this.move(this.bbox().x,e)}}pt.prototype.MorphArray=Fe,J({Container:{path:ce(function(o){return this.put(new pt).plot(o||new Fe)})}}),Q(pt,"Path");var Ns=Object.freeze({__proto__:null,array:function(){return this._array||(this._array=new Ke(this.attr("points")))},clear:function(){return delete this._array,this},move:function(o,e){return this.attr("points",this.array().move(o,e))},plot:function(o){return o==null?this.array():this.clear().attr("points",typeof o=="string"?o:this._array=new Ke(o))},size:function(o,e){const t=kt(this,o,e);return this.attr("points",this.array().size(t.width,t.height))}});class st extends Re{constructor(e,t=e){super(de("polygon",e),t)}}J({Container:{polygon:ce(function(o){return this.put(new st).plot(o||new Ke)})}}),G(st,ua),G(st,Ns),Q(st,"Polygon");class rt extends Re{constructor(e,t=e){super(de("polyline",e),t)}}J({Container:{polyline:ce(function(o){return this.put(new rt).plot(o||new Ke)})}}),G(rt,ua),G(rt,Ns),Q(rt,"Polyline");class $t extends Re{constructor(e,t=e){super(de("rect",e),t)}}G($t,{rx:ca,ry:da}),J({Container:{rect:ce(function(o,e){return this.put(new $t).size(o,e)})}}),Q($t,"Rect");class bi{constructor(){this._first=null,this._last=null}first(){return this._first&&this._first.value}last(){return this._last&&this._last.value}push(e){const t=e.next!==void 0?e:{value:e,next:null,prev:null};return this._last?(t.prev=this._last,this._last.next=t,this._last=t):(this._last=t,this._first=t),t}remove(e){e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e===this._last&&(this._last=e.prev),e===this._first&&(this._first=e.next),e.prev=null,e.next=null}shift(){const e=this._first;return e?(this._first=e.next,this._first&&(this._first.prev=null),this._last=this._first?this._last:null,e.value):null}}const ae={nextDraw:null,frames:new bi,timeouts:new bi,immediates:new bi,timer:()=>K.window.performance||K.window.Date,transforms:[],frame(o){const e=ae.frames.push({run:o});return ae.nextDraw===null&&(ae.nextDraw=K.window.requestAnimationFrame(ae._draw)),e},timeout(o,e){e=e||0;const t=ae.timer().now()+e,i=ae.timeouts.push({run:o,time:t});return ae.nextDraw===null&&(ae.nextDraw=K.window.requestAnimationFrame(ae._draw)),i},immediate(o){const e=ae.immediates.push(o);return ae.nextDraw===null&&(ae.nextDraw=K.window.requestAnimationFrame(ae._draw)),e},cancelFrame(o){o!=null&&ae.frames.remove(o)},clearTimeout(o){o!=null&&ae.timeouts.remove(o)},cancelImmediate(o){o!=null&&ae.immediates.remove(o)},_draw(o){let e=null;const t=ae.timeouts.last();for(;(e=ae.timeouts.shift())&&(o>=e.time?e.run():ae.timeouts.push(e),e!==t););let i=null;const a=ae.frames.last();for(;i!==a&&(i=ae.frames.shift());)i.run(o);let s=null;for(;s=ae.immediates.shift();)s();ae.nextDraw=ae.timeouts.first()||ae.frames.first()?K.window.requestAnimationFrame(ae._draw):null}},Sl=function(o){const e=o.start,t=o.runner.duration();return{start:e,duration:t,end:e+t,runner:o.runner}},Ll=function(){const o=K.window;return(o.performance||o.Date).now()};class Ws extends Ft{constructor(e=Ll){super(),this._timeSource=e,this.terminate()}active(){return!!this._nextFrame}finish(){return this.time(this.getEndTimeOfTimeline()+1),this.pause()}getEndTime(){const e=this.getLastRunnerInfo(),t=e?e.runner.duration():0;return(e?e.start:this._time)+t}getEndTimeOfTimeline(){const e=this._runners.map(t=>t.start+t.runner.duration());return Math.max(0,...e)}getLastRunnerInfo(){return this.getRunnerInfoById(this._lastRunnerId)}getRunnerInfoById(e){return this._runners[this._runnerIds.indexOf(e)]||null}pause(){return this._paused=!0,this._continue()}persist(e){return e==null?this._persist:(this._persist=e,this)}play(){return this._paused=!1,this.updateTime()._continue()}reverse(e){const t=this.speed();if(e==null)return this.speed(-t);const i=Math.abs(t);return this.speed(e?-i:i)}schedule(e,t,i){if(e==null)return this._runners.map(Sl);let a=0;const s=this.getEndTime();if(t=t||0,i==null||i==="last"||i==="after")a=s;else if(i==="absolute"||i==="start")a=t,t=0;else if(i==="now")a=this._time;else if(i==="relative"){const l=this.getRunnerInfoById(e.id);l&&(a=l.start+t,t=0)}else{if(i!=="with-last")throw new Error('Invalid value for the "when" parameter');{const l=this.getLastRunnerInfo();a=l?l.start:this._time}}e.unschedule(),e.timeline(this);const r=e.persist(),n={persist:r===null?this._persist:r,start:a+t,runner:e};return this._lastRunnerId=e.id,this._runners.push(n),this._runners.sort((l,h)=>l.start-h.start),this._runnerIds=this._runners.map(l=>l.runner.id),this.updateTime()._continue(),this}seek(e){return this.time(this._time+e)}source(e){return e==null?this._timeSource:(this._timeSource=e,this)}speed(e){return e==null?this._speed:(this._speed=e,this)}stop(){return this.time(0),this.pause()}time(e){return e==null?this._time:(this._time=e,this._continue(!0))}unschedule(e){const t=this._runnerIds.indexOf(e.id);return t<0||(this._runners.splice(t,1),this._runnerIds.splice(t,1),e.timeline(null)),this}updateTime(){return this.active()||(this._lastSourceTime=this._timeSource()),this}_continue(e=!1){return ae.cancelFrame(this._nextFrame),this._nextFrame=null,e?this._stepImmediate():(this._paused||(this._nextFrame=ae.frame(this._step)),this)}_stepFn(e=!1){const t=this._timeSource();let i=t-this._lastSourceTime;e&&(i=0);const a=this._speed*i+(this._time-this._lastStepTime);this._lastSourceTime=t,e||(this._time+=a,this._time=this._time<0?0:this._time),this._lastStepTime=this._time,this.fire("time",this._time);for(let r=this._runners.length;r--;){const n=this._runners[r],l=n.runner;this._time-n.start<=0&&l.reset()}let s=!1;for(let r=0,n=this._runners.length;r0?this._continue():(this.pause(),this.fire("finished")),this}terminate(){this._startTime=0,this._speed=1,this._persist=0,this._nextFrame=null,this._paused=!0,this._runners=[],this._runnerIds=[],this._lastRunnerId=-1,this._time=0,this._lastSourceTime=0,this._lastStepTime=0,this._step=this._stepFn.bind(this,!1),this._stepImmediate=this._stepFn.bind(this,!0)}}J({Element:{timeline:function(o){return o==null?(this._timeline=this._timeline||new Ws,this._timeline):(this._timeline=o,this)}}});class _e extends Ft{constructor(e){super(),this.id=_e.id++,e=typeof(e=e??xi)=="function"?new ti(e):e,this._element=null,this._timeline=null,this.done=!1,this._queue=[],this._duration=typeof e=="number"&&e,this._isDeclarative=e instanceof ti,this._stepper=this._isDeclarative?e:new Yi,this._history={},this.enabled=!0,this._time=0,this._lastTime=0,this._reseted=!0,this.transforms=new N,this.transformId=1,this._haveReversed=!1,this._reverse=!1,this._loopsDone=0,this._swing=!1,this._wait=0,this._times=1,this._frameId=null,this._persist=!!this._isDeclarative||null}static sanitise(e,t,i){let a=1,s=!1,r=0;return t=t??ul,i=i||"last",typeof(e=e??xi)!="object"||e instanceof ga||(t=e.delay??t,i=e.when??i,s=e.swing||s,a=e.times??a,r=e.wait??r,e=e.duration??xi),{duration:e,delay:t,swing:s,times:a,wait:r,when:i}}active(e){return e==null?this.enabled:(this.enabled=e,this)}addTransform(e){return this.transforms.lmultiplyO(e),this}after(e){return this.on("finished",e)}animate(e,t,i){const a=_e.sanitise(e,t,i),s=new _e(a.duration);return this._timeline&&s.timeline(this._timeline),this._element&&s.element(this._element),s.loop(a).schedule(a.delay,a.when)}clearTransform(){return this.transforms=new N,this}clearTransformsFromQueue(){this.done&&this._timeline&&this._timeline._runnerIds.includes(this.id)||(this._queue=this._queue.filter(e=>!e.isTransform))}delay(e){return this.animate(0,e)}duration(){return this._times*(this._wait+this._duration)-this._wait}during(e){return this.queue(null,e)}ease(e){return this._stepper=new Yi(e),this}element(e){return e==null?this._element:(this._element=e,e._prepareRunner(),this)}finish(){return this.step(1/0)}loop(e,t,i){return typeof e=="object"&&(t=e.swing,i=e.wait,e=e.times),this._times=e||1/0,this._swing=t||!1,this._wait=i||0,this._times===!0&&(this._times=1/0),this}loops(e){const t=this._duration+this._wait;if(e==null){const s=Math.floor(this._time/t),r=(this._time-s*t)/this._duration;return Math.min(s+r,this._times)}const i=e%1,a=t*Math.floor(e)+this._duration*i;return this.time(a)}persist(e){return e==null?this._persist:(this._persist=e,this)}position(e){const t=this._time,i=this._duration,a=this._wait,s=this._times,r=this._swing,n=this._reverse;let l;if(e==null){const c=function(g){const p=r*Math.floor(g%(2*(a+i))/(a+i)),f=p&&!n||!p&&n,x=Math.pow(-1,f)*(g%(a+i))/i+f;return Math.max(Math.min(x,1),0)},u=s*(a+i)-a;return l=t<=0?Math.round(c(1e-5)):t=0;this._lastPosition=t;const a=this.duration(),s=this._lastTime<=0&&this._time>0,r=this._lastTime=a;this._lastTime=this._time,s&&this.fire("start",this);const n=this._isDeclarative;this.done=!n&&!r&&this._time>=a,this._reseted=!1;let l=!1;return(i||n)&&(this._initialise(i),this.transforms=new N,l=this._run(n?e:t),this.fire("step",this)),this.done=this.done||l&&n,r&&this.fire("finished",this),this}time(e){if(e==null)return this._time;const t=e-this._time;return this.step(t),this}timeline(e){return e===void 0?this._timeline:(this._timeline=e,this)}unschedule(){const e=this.timeline();return e&&e.unschedule(this),this}_initialise(e){if(e||this._isDeclarative)for(let t=0,i=this._queue.length;to.lmultiplyO(e),Gs=o=>o.transforms;function Ml(){const o=this._transformationRunners.runners.map(Gs).reduce(Bs,new N);this.transform(o),this._transformationRunners.merge(),this._transformationRunners.length()===1&&(this._frameId=null)}class Pl{constructor(){this.runners=[],this.ids=[]}add(e){if(this.runners.includes(e))return;const t=e.id+1;return this.runners.push(e),this.ids.push(t),this}clearBefore(e){const t=this.ids.indexOf(e+1)||1;return this.ids.splice(0,t,0),this.runners.splice(0,t,new ii).forEach(i=>i.clearTransformsFromQueue()),this}edit(e,t){const i=this.ids.indexOf(e+1);return this.ids.splice(i,1,e+1),this.runners.splice(i,1,t),this}getByID(e){return this.runners[this.ids.indexOf(e+1)]}length(){return this.ids.length}merge(){let e=null;for(let t=0;te.id<=o.id).map(Gs).reduce(Bs,new N)},_addRunner(o){this._transformationRunners.add(o),ae.cancelImmediate(this._frameId),this._frameId=ae.immediate(Ml.bind(this))},_prepareRunner(){this._frameId==null&&(this._transformationRunners=new Pl().add(new ii(new N(this))))}}});G(_e,{attr(o,e){return this.styleAttr("attr",o,e)},css(o,e){return this.styleAttr("css",o,e)},styleAttr(o,e,t){if(typeof e=="string")return this.styleAttr(o,{[e]:t});let i=e;if(this._tryRetarget(o,i))return this;let a=new tt(this._stepper).to(i),s=Object.keys(i);return this.queue(function(){a=a.from(this.element()[o](s))},function(r){return this.element()[o](a.at(r).valueOf()),a.done()},function(r){const n=Object.keys(r),l=(h=s,n.filter(c=>!h.includes(c)));var h;if(l.length){const c=this.element()[o](l),u=new Xt(a.from()).valueOf();Object.assign(u,c),a.from(u)}const d=new Xt(a.to()).valueOf();Object.assign(d,r),a.to(d),s=n,i=r}),this._rememberMorpher(o,a),this},zoom(o,e){if(this._tryRetarget("zoom",o,e))return this;let t=new tt(this._stepper).to(new Z(o));return this.queue(function(){t=t.from(this.element().zoom())},function(i){return this.element().zoom(t.at(i),e),t.done()},function(i,a){e=a,t.to(i)}),this._rememberMorpher("zoom",t),this},transform(o,e,t){if(e=o.relative||e,this._isDeclarative&&!e&&this._tryRetarget("transform",o))return this;const i=N.isMatrixLike(o);t=o.affine!=null?o.affine:t??!i;const a=new tt(this._stepper).type(t?Dt:N);let s,r,n,l,h;return this.queue(function(){r=r||this.element(),s=s||Ei(o,r),h=new N(e?void 0:r),r._addRunner(this),e||r._clearTransformRunnersBefore(this)},function(d){e||this.clearTransform();const{x:c,y:u}=new ie(s).transform(r._currentTransform(this));let g=new N({...o,origin:[c,u]}),p=this._isDeclarative&&n?n:h;if(t){g=g.decompose(c,u),p=p.decompose(c,u);const x=g.rotate,m=p.rotate,b=[x-360,x,x+360],v=b.map(C=>Math.abs(C-m)),k=Math.min(...v),w=v.indexOf(k);g.rotate=b[w]}e&&(i||(g.rotate=o.rotate||0),this._isDeclarative&&l&&(p.rotate=l)),a.from(p),a.to(g);const f=a.at(d);return l=f.rotate,n=new N(f),this.addTransform(n),r._addRunner(this),a.done()},function(d){(d.origin||"center").toString()!==(o.origin||"center").toString()&&(s=Ei(d,r)),o={...d,origin:s}},!0),this._isDeclarative&&this._rememberMorpher("transform",a),this},x(o){return this._queueNumber("x",o)},y(o){return this._queueNumber("y",o)},ax(o){return this._queueNumber("ax",o)},ay(o){return this._queueNumber("ay",o)},dx(o=0){return this._queueNumberDelta("x",o)},dy(o=0){return this._queueNumberDelta("y",o)},dmove(o,e){return this.dx(o).dy(e)},_queueNumberDelta(o,e){if(e=new Z(e),this._tryRetarget(o,e))return this;const t=new tt(this._stepper).to(e);let i=null;return this.queue(function(){i=this.element()[o](),t.from(i),t.to(i+e)},function(a){return this.element()[o](t.at(a)),t.done()},function(a){t.to(i+new Z(a))}),this._rememberMorpher(o,t),this},_queueObject(o,e){if(this._tryRetarget(o,e))return this;const t=new tt(this._stepper).to(e);return this.queue(function(){t.from(this.element()[o]())},function(i){return this.element()[o](t.at(i)),t.done()}),this._rememberMorpher(o,t),this},_queueNumber(o,e){return this._queueObject(o,new Z(e))},cx(o){return this._queueNumber("cx",o)},cy(o){return this._queueNumber("cy",o)},move(o,e){return this.x(o).y(e)},amove(o,e){return this.ax(o).ay(e)},center(o,e){return this.cx(o).cy(e)},size(o,e){let t;return o&&e||(t=this._element.bbox()),o||(o=t.width/t.height*e),e||(e=t.height/t.width*o),this.width(o).height(e)},width(o){return this._queueNumber("width",o)},height(o){return this._queueNumber("height",o)},plot(o,e,t,i){if(arguments.length===4)return this.plot([o,e,t,i]);if(this._tryRetarget("plot",o))return this;const a=new tt(this._stepper).type(this._element.MorphArray).to(o);return this.queue(function(){a.from(this._element.array())},function(s){return this._element.plot(a.at(s)),a.done()}),this._rememberMorpher("plot",a),this},leading(o){return this._queueNumber("leading",o)},viewbox(o,e,t,i){return this._queueObject("viewbox",new fe(o,e,t,i))},update(o){return typeof o!="object"?this.update({offset:arguments[0],color:arguments[1],opacity:arguments[2]}):(o.opacity!=null&&this.attr("stop-opacity",o.opacity),o.color!=null&&this.attr("stop-color",o.color),o.offset!=null&&this.attr("offset",o.offset),this)}}),G(_e,{rx:ca,ry:da,from:Hs,to:Fs}),Q(_e,"Runner");class Bi extends Ie{constructor(e,t=e){super(de("svg",e),t),this.namespace()}defs(){return this.isRoot()?Oe(this.node.querySelector("defs"))||this.put(new hi):this.root().defs()}isRoot(){return!this.node.parentNode||!(this.node.parentNode instanceof K.window.SVGElement)&&this.node.parentNode.nodeName!=="#document-fragment"}namespace(){return this.isRoot()?this.attr({xmlns:ra,version:"1.1"}).attr("xmlns:xlink",At,gi):this.root().namespace()}removeNamespace(){return this.attr({xmlns:null,version:null}).attr("xmlns:xlink",null,gi).attr("xmlns:svgjs",null,gi)}root(){return this.isRoot()?this:super.root()}}J({Container:{nested:ce(function(){return this.put(new Bi)})}}),Q(Bi,"Svg",!0);let Gi=class extends Ie{constructor(o,e=o){super(de("symbol",o),e)}};J({Container:{symbol:ce(function(){return this.put(new Gi)})}}),Q(Gi,"Symbol");var js=Object.freeze({__proto__:null,amove:function(o,e){return this.ax(o).ay(e)},ax:function(o){return this.attr("x",o)},ay:function(o){return this.attr("y",o)},build:function(o){return this._build=!!o,this},center:function(o,e,t=this.bbox()){return this.cx(o,t).cy(e,t)},cx:function(o,e=this.bbox()){return o==null?e.cx:this.attr("x",this.attr("x")+o-e.cx)},cy:function(o,e=this.bbox()){return o==null?e.cy:this.attr("y",this.attr("y")+o-e.cy)},length:function(){return this.node.getComputedTextLength()},move:function(o,e,t=this.bbox()){return this.x(o,t).y(e,t)},plain:function(o){return this._build===!1&&this.clear(),this.node.appendChild(K.document.createTextNode(o)),this},x:function(o,e=this.bbox()){return o==null?e.x:this.attr("x",this.attr("x")+o-e.x)},y:function(o,e=this.bbox()){return o==null?e.y:this.attr("y",this.attr("y")+o-e.y)}});class De extends Re{constructor(e,t=e){super(de("text",e),t),this.dom.leading=this.dom.leading??new Z(1.3),this._rebuild=!0,this._build=!1}leading(e){return e==null?this.dom.leading:(this.dom.leading=new Z(e),this.rebuild())}rebuild(e){if(typeof e=="boolean"&&(this._rebuild=e),this._rebuild){const t=this;let i=0;const a=this.dom.leading;this.each(function(s){if(Oi(this.node))return;const r=K.window.getComputedStyle(this.node).getPropertyValue("font-size"),n=a*new Z(r);this.dom.newLined&&(this.attr("x",t.attr("x")),this.text()===` +`?i+=n:(this.attr("dy",s?n+i:0),i=0))}),this.fire("rebuild")}return this}setData(e){return this.dom=e,this.dom.leading=new Z(e.leading||1.3),this}writeDataToDom(){return As(this,this.dom,{leading:1.3}),this}text(e){if(e===void 0){const t=this.node.childNodes;let i=0;e="";for(let a=0,s=t.length;a{let i;try{i=t.node instanceof Ht().SVGSVGElement?new fe(t.attr(["x","y","width","height"])):t.bbox()}catch{return}const a=new N(t),s=a.translate(o,e).transform(a.inverse()),r=new ie(i.x,i.y).transform(s);t.move(r.x,r.y)}),this},dx:function(o){return this.dmove(o,0)},dy:function(o){return this.dmove(0,o)},height:function(o,e=this.bbox()){return o==null?e.height:this.size(e.width,o,e)},move:function(o=0,e=0,t=this.bbox()){const i=o-t.x,a=e-t.y;return this.dmove(i,a)},size:function(o,e,t=this.bbox()){const i=kt(this,o,e,t),a=i.width/t.width,s=i.height/t.height;return this.children().forEach(r=>{const n=new ie(t).transform(new N(r).inverse());r.scale(a,s,n.x,n.y)}),this},width:function(o,e=this.bbox()){return o==null?e.width:this.size(o,e.height,e)},x:function(o,e=this.bbox()){return o==null?e.x:this.move(o,e.y,e)},y:function(o,e=this.bbox()){return o==null?e.y:this.move(e.x,o,e)}});class Ze extends Ie{constructor(e,t=e){super(de("g",e),t)}}G(Ze,Vs),J({Container:{group:ce(function(){return this.put(new Ze)})}}),Q(Ze,"G");class Gt extends Ie{constructor(e,t=e){super(de("a",e),t)}target(e){return this.attr("target",e)}to(e){return this.attr("href",e,At)}}G(Gt,Vs),J({Container:{link:ce(function(o){return this.put(new Gt).to(o)})},Element:{unlink(){const o=this.linker();if(!o)return this;const e=o.parent();if(!e)return this.remove();const t=e.index(o);return e.add(this,t),o.remove(),this},linkTo(o){let e=this.linker();return e||(e=new Gt,this.wrap(e)),typeof o=="function"?o.call(e,e):e.to(o),this},linker(){const o=this.parent();return o&&o.node.nodeName.toLowerCase()==="a"?o:null}}}),Q(Gt,"A");class wi extends Ie{constructor(e,t=e){super(de("mask",e),t)}remove(){return this.targets().forEach(function(e){e.unmask()}),super.remove()}targets(){return ht("svg [mask*="+this.id()+"]")}}J({Container:{mask:ce(function(){return this.defs().put(new wi)})},Element:{masker(){return this.reference("mask")},maskWith(o){const e=o instanceof wi?o:this.parent().mask().add(o);return this.attr("mask","url(#"+e.id()+")")},unmask(){return this.attr("mask",null)}}}),Q(wi,"Mask");class Ja extends Ae{constructor(e,t=e){super(de("stop",e),t)}update(e){return(typeof e=="number"||e instanceof Z)&&(e={offset:arguments[0],color:arguments[1],opacity:arguments[2]}),e.opacity!=null&&this.attr("stop-opacity",e.opacity),e.color!=null&&this.attr("stop-color",e.color),e.offset!=null&&this.attr("offset",new Z(e.offset)),this}}J({Gradient:{stop:function(o,e,t){return this.put(new Ja).update(o,e,t)}}}),Q(Ja,"Stop");class ki extends Ae{constructor(e,t=e){super(de("style",e),t)}addText(e=""){return this.node.textContent+=e,this}font(e,t,i={}){return this.rule("@font-face",{fontFamily:e,src:t,...i})}rule(e,t){return this.addText(function(i,a){if(!i)return"";if(!a)return i;let s=i+"{";for(const r in a)s+=r.replace(/([A-Z])/g,function(n,l){return"-"+l.toLowerCase()})+":"+a[r]+";";return s+="}",s}(e,t))}}J("Dom",{style(o,e){return this.put(new ki).rule(o,e)},fontface(o,e,t){return this.put(new ki).font(o,e,t)}}),Q(ki,"Style");class Ai extends De{constructor(e,t=e){super(de("textPath",e),t)}array(){const e=this.track();return e?e.array():null}plot(e){const t=this.track();let i=null;return t&&(i=t.plot(e)),e==null?i:this}track(){return this.reference("href")}}J({Container:{textPath:ce(function(o,e){return o instanceof De||(o=this.text(o)),o.path(e)})},Text:{path:ce(function(o,e=!0){const t=new Ai;let i;if(o instanceof pt||(o=this.defs().path(o)),t.attr("href","#"+o,At),e)for(;i=this.node.firstChild;)t.node.appendChild(i);return this.put(t)}),textPath(){return this.findOne("textPath")}},Path:{text:ce(function(o){return o instanceof De||(o=new De().addTo(this.parent()).text(o)),o.path(this)}),targets(){return ht("svg textPath").filter(o=>(o.attr("href")||"").includes(this.id()))}}}),Ai.prototype.MorphArray=Fe,Q(Ai,"TextPath");class Ka extends Re{constructor(e,t=e){super(de("use",e),t)}use(e,t){return this.attr("href",(t||"")+"#"+e,At)}}J({Container:{use:ce(function(o,e){return this.put(new Ka).use(o,e)})}}),Q(Ka,"Use");const Il=Pe;G([Bi,Gi,Ut,zt,qt],Te("viewbox")),G([at,rt,st,pt],Te("marker")),G(De,Te("Text")),G(pt,Te("Path")),G(hi,Te("Defs")),G([De,Zt],Te("Tspan")),G([$t,Vt,It,_e],Te("radius")),G(Ft,Te("EventTarget")),G(Je,Te("Dom")),G(Ae,Te("Element")),G(Re,Te("Shape")),G([Ie,Ys],Te("Container")),G(It,Te("Gradient")),G(_e,Te("Runner")),ot.extend([...new Set(ws)]),function(o=[]){Wi.push(...[].concat(o))}([Z,re,fe,N,lt,Ke,Fe,ie]),G(Wi,{to(o){return new tt().type(this.constructor).from(this.toArray()).to(o)},fromArray(o){return this.init(o),this},toConsumable(){return this.toArray()},morph(o,e,t,i,a){return this.fromArray(o.map(function(s,r){return i.step(s,e[r],t,a[r],a)}))}});class ue extends Ae{constructor(e){super(de("filter",e),e),this.$source="SourceGraphic",this.$sourceAlpha="SourceAlpha",this.$background="BackgroundImage",this.$backgroundAlpha="BackgroundAlpha",this.$fill="FillPaint",this.$stroke="StrokePaint",this.$autoSetIn=!0}put(e,t){return!(e=super.put(e,t)).attr("in")&&this.$autoSetIn&&e.attr("in",this.$source),e.attr("result")||e.attr("result",e.id()),e}remove(){return this.targets().each("unfilter"),super.remove()}targets(){return ht('svg [filter*="'+this.id()+'"]')}toString(){return"url(#"+this.id()+")"}}class pa extends Ae{constructor(e,t){super(e,t),this.result(this.id())}in(e){if(e==null){const t=this.attr("in");return this.parent()&&this.parent().find(`[result="${t}"]`)[0]||t}return this.attr("in",e)}result(e){return this.attr("result",e)}toString(){return this.result()}}const Ee=o=>function(...e){for(let t=o.length;t--;)e[t]!=null&&this.attr(o[t],e[t])},Tl={blend:Ee(["in","in2","mode"]),colorMatrix:Ee(["type","values"]),composite:Ee(["in","in2","operator"]),convolveMatrix:function(o){o=new lt(o).toString(),this.attr({order:Math.sqrt(o.split(" ").length),kernelMatrix:o})},diffuseLighting:Ee(["surfaceScale","lightingColor","diffuseConstant","kernelUnitLength"]),displacementMap:Ee(["in","in2","scale","xChannelSelector","yChannelSelector"]),dropShadow:Ee(["in","dx","dy","stdDeviation"]),flood:Ee(["flood-color","flood-opacity"]),gaussianBlur:function(o=0,e=o){this.attr("stdDeviation",o+" "+e)},image:function(o){this.attr("href",o,At)},morphology:Ee(["operator","radius"]),offset:Ee(["dx","dy"]),specularLighting:Ee(["surfaceScale","lightingColor","diffuseConstant","specularExponent","kernelUnitLength"]),tile:Ee([]),turbulence:Ee(["baseFrequency","numOctaves","seed","stitchTiles","type"])};["blend","colorMatrix","componentTransfer","composite","convolveMatrix","diffuseLighting","displacementMap","dropShadow","flood","gaussianBlur","image","merge","morphology","offset","specularLighting","tile","turbulence"].forEach(o=>{const e=wt(o),t=Tl[o];ue[e+"Effect"]=class extends pa{constructor(i){super(de("fe"+e,i),i)}update(i){return t.apply(this,i),this}},ue.prototype[o]=ce(function(i,...a){const s=new ue[e+"Effect"];return i==null?this.put(s):(typeof i=="function"?i.call(s,s):a.unshift(i),this.put(s).update(a))})}),G(ue,{merge(o){const e=this.put(new ue.MergeEffect);return typeof o=="function"?(o.call(e,e),e):((o instanceof Array?o:[...arguments]).forEach(t=>{t instanceof ue.MergeNode?e.put(t):e.mergeNode(t)}),e)},componentTransfer(o={}){const e=this.put(new ue.ComponentTransferEffect);if(typeof o=="function")return o.call(e,e),e;o.r||o.g||o.b||o.a||(o={r:o,g:o,b:o,a:o});for(const t in o)e.add(new ue["Func"+t.toUpperCase()](o[t]));return e}});["distantLight","pointLight","spotLight","mergeNode","FuncR","FuncG","FuncB","FuncA"].forEach(o=>{const e=wt(o);ue[e]=class extends pa{constructor(t){super(de("fe"+e,t),t)}}});["funcR","funcG","funcB","funcA"].forEach(function(o){const e=ue[wt(o)],t=ce(function(){return this.put(new e)});ue.ComponentTransferEffect.prototype[o]=t});["distantLight","pointLight","spotLight"].forEach(o=>{const e=ue[wt(o)],t=ce(function(){return this.put(new e)});ue.DiffuseLightingEffect.prototype[o]=t,ue.SpecularLightingEffect.prototype[o]=t}),G(ue.MergeEffect,{mergeNode(o){return this.put(new ue.MergeNode).attr("in",o)}}),G(hi,{filter:function(o){const e=this.put(new ue);return typeof o=="function"&&o.call(e,e),e}}),G(Ie,{filter:function(o){return this.defs().filter(o)}}),G(Ae,{filterWith:function(o){const e=o instanceof ue?o:this.defs().filter(o);return this.attr("filter",e)},unfilter:function(o){return this.attr("filter",null)},filterer(){return this.reference("filter")}});const zl={blend:function(o,e){return this.parent()&&this.parent().blend(this,o,e)},colorMatrix:function(o,e){return this.parent()&&this.parent().colorMatrix(o,e).in(this)},componentTransfer:function(o){return this.parent()&&this.parent().componentTransfer(o).in(this)},composite:function(o,e){return this.parent()&&this.parent().composite(this,o,e)},convolveMatrix:function(o){return this.parent()&&this.parent().convolveMatrix(o).in(this)},diffuseLighting:function(o,e,t,i){return this.parent()&&this.parent().diffuseLighting(o,t,i).in(this)},displacementMap:function(o,e,t,i){return this.parent()&&this.parent().displacementMap(this,o,e,t,i)},dropShadow:function(o,e,t){return this.parent()&&this.parent().dropShadow(this,o,e,t).in(this)},flood:function(o,e){return this.parent()&&this.parent().flood(o,e)},gaussianBlur:function(o,e){return this.parent()&&this.parent().gaussianBlur(o,e).in(this)},image:function(o){return this.parent()&&this.parent().image(o)},merge:function(o){return o=o instanceof Array?o:[...o],this.parent()&&this.parent().merge(this,...o)},morphology:function(o,e){return this.parent()&&this.parent().morphology(o,e).in(this)},offset:function(o,e){return this.parent()&&this.parent().offset(o,e).in(this)},specularLighting:function(o,e,t,i,a){return this.parent()&&this.parent().specularLighting(o,t,i,a).in(this)},tile:function(){return this.parent()&&this.parent().tile().in(this)},turbulence:function(o,e,t,i,a){return this.parent()&&this.parent().turbulence(o,e,t,i,a).in(this)}};G(pa,zl),G(ue.MergeEffect,{in:function(o){return o instanceof ue.MergeNode?this.add(o,0):this.add(new ue.MergeNode().in(o),0),this}}),G([ue.CompositeEffect,ue.BlendEffect,ue.DisplacementMapEffect],{in2:function(o){if(o==null){const e=this.attr("in2");return this.parent()&&this.parent().find(`[result="${e}"]`)[0]||e}return this.attr("in2",o)}}),ue.filter={sepiatone:[.343,.669,.119,0,0,.249,.626,.13,0,0,.172,.334,.111,0,0,0,0,0,1,0]};var ke=function(){function o(e){Y(this,o),this.ctx=e,this.w=e.w}return H(o,[{key:"getDefaultFilter",value:function(e,t){var i=this.w;e.unfilter(!0),new ue().size("120%","180%","-5%","-40%"),i.config.chart.dropShadow.enabled&&this.dropShadow(e,i.config.chart.dropShadow,t)}},{key:"applyFilter",value:function(e,t,i){var a,s=this,r=this.w;if(e.unfilter(!0),i!=="none"){var n,l,h=r.config.chart.dropShadow,d=i==="lighten"?2:.3;e.filterWith(function(c){c.colorMatrix({type:"matrix",values:` + `.concat(d,` 0 0 0 0 + 0 `).concat(d,` 0 0 0 + 0 0 `).concat(d,` 0 0 + 0 0 0 1 0 + `),in:"SourceGraphic",result:"brightness"}),h.enabled&&s.addShadow(c,t,h,"brightness")}),!h.noUserSpaceOnUse&&((n=e.filterer())===null||n===void 0||(l=n.node)===null||l===void 0||l.setAttribute("filterUnits","userSpaceOnUse")),this._scaleFilterSize((a=e.filterer())===null||a===void 0?void 0:a.node)}else this.getDefaultFilter(e,t)}},{key:"addShadow",value:function(e,t,i,a){var s,r=this.w,n=i.blur,l=i.top,h=i.left,d=i.color,c=i.opacity;if(d=Array.isArray(d)?d[t]:d,((s=r.config.chart.dropShadow.enabledOnSeries)===null||s===void 0?void 0:s.length)>0&&r.config.chart.dropShadow.enabledOnSeries.indexOf(t)===-1)return e;e.offset({in:a,dx:h,dy:l,result:"offset"}),e.gaussianBlur({in:"offset",stdDeviation:n,result:"blur"}),e.flood({"flood-color":d,"flood-opacity":c,result:"flood"}),e.composite({in:"flood",in2:"blur",operator:"in",result:"shadow"}),e.merge(["shadow",a])}},{key:"dropShadow",value:function(e,t){var i,a,s,r=this,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,l=this.w;return e.unfilter(!0),M.isMsEdge()&&l.config.chart.type==="radialBar"||((i=l.config.chart.dropShadow.enabledOnSeries)===null||i===void 0?void 0:i.length)>0&&((s=l.config.chart.dropShadow.enabledOnSeries)===null||s===void 0?void 0:s.indexOf(n))===-1||(e.filterWith(function(h){r.addShadow(h,n,t,"SourceGraphic")}),t.noUserSpaceOnUse||e.filterer().node.setAttribute("filterUnits","userSpaceOnUse"),this._scaleFilterSize((a=e.filterer())===null||a===void 0?void 0:a.node)),e}},{key:"setSelectionFilter",value:function(e,t,i){var a=this.w;if(a.globals.selectedDataPoints[t]!==void 0&&a.globals.selectedDataPoints[t].indexOf(i)>-1){e.node.setAttribute("selected",!0);var s=a.config.states.active.filter;s!=="none"&&this.applyFilter(e,t,s.type)}}},{key:"_scaleFilterSize",value:function(e){e&&function(t){for(var i in t)t.hasOwnProperty(i)&&e.setAttribute(i,t[i])}({width:"200%",height:"200%",x:"-50%",y:"-50%"})}}]),o}(),X=function(){function o(e){Y(this,o),this.ctx=e,this.w=e.w}return H(o,[{key:"roundPathCorners",value:function(e,t){function i(A,L,S){var P=L.x-A.x,I=L.y-A.y,T=Math.sqrt(P*P+I*I);return a(A,L,Math.min(1,S/T))}function a(A,L,S){return{x:A.x+(L.x-A.x)*S,y:A.y+(L.y-A.y)*S}}function s(A,L){A.length>2&&(A[A.length-2]=L.x,A[A.length-1]=L.y)}function r(A){return{x:parseFloat(A[A.length-2]),y:parseFloat(A[A.length-1])}}e.indexOf("NaN")>-1&&(e="");var n=e.split(/[,\s]/).reduce(function(A,L){var S=L.match("([a-zA-Z])(.+)");return S?(A.push(S[1]),A.push(S[2])):A.push(L),A},[]).reduce(function(A,L){return parseFloat(L)==L&&A.length?A[A.length-1].push(L):A.push([L]),A},[]),l=[];if(n.length>1){var h=r(n[0]),d=null;n[n.length-1][0]=="Z"&&n[0].length>2&&(d=["L",h.x,h.y],n[n.length-1]=d),l.push(n[0]);for(var c=1;c2&&g[0]=="L"&&p.length>2&&p[0]=="L"){var f,x,m=r(u),b=r(g),v=r(p);f=i(b,m,t),x=i(b,v,t),s(g,f),g.origPoint=b,l.push(g);var k=a(f,b,.5),w=a(b,x,.5),C=["C",k.x,k.y,w.x,w.y,x.x,x.y];C.origPoint=b,l.push(C)}else l.push(g)}if(d){var y=r(l[l.length-1]);l.push(["Z"]),s(l[0],y)}}else l=n;return l.reduce(function(A,L){return A+L.join(" ")+" "},"")}},{key:"drawLine",value:function(e,t,i,a){var s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:"#a8a8a8",r=arguments.length>5&&arguments[5]!==void 0?arguments[5]:0,n=arguments.length>6&&arguments[6]!==void 0?arguments[6]:null,l=arguments.length>7&&arguments[7]!==void 0?arguments[7]:"butt";return this.w.globals.dom.Paper.line().attr({x1:e,y1:t,x2:i,y2:a,stroke:s,"stroke-dasharray":r,"stroke-width":n,"stroke-linecap":l})}},{key:"drawRect",value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,r=arguments.length>5&&arguments[5]!==void 0?arguments[5]:"#fefefe",n=arguments.length>6&&arguments[6]!==void 0?arguments[6]:1,l=arguments.length>7&&arguments[7]!==void 0?arguments[7]:null,h=arguments.length>8&&arguments[8]!==void 0?arguments[8]:null,d=arguments.length>9&&arguments[9]!==void 0?arguments[9]:0,c=this.w.globals.dom.Paper.rect();return c.attr({x:e,y:t,width:i>0?i:0,height:a>0?a:0,rx:s,ry:s,opacity:n,"stroke-width":l!==null?l:0,stroke:h!==null?h:"none","stroke-dasharray":d}),c.node.setAttribute("fill",r),c}},{key:"drawPolygon",value:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"#e1e1e1",i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"none";return this.w.globals.dom.Paper.polygon(e).attr({fill:a,stroke:t,"stroke-width":i})}},{key:"drawCircle",value:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;e<0&&(e=0);var i=this.w.globals.dom.Paper.circle(2*e);return t!==null&&i.attr(t),i}},{key:"drawPath",value:function(e){var t=e.d,i=t===void 0?"":t,a=e.stroke,s=a===void 0?"#a8a8a8":a,r=e.strokeWidth,n=r===void 0?1:r,l=e.fill,h=e.fillOpacity,d=h===void 0?1:h,c=e.strokeOpacity,u=c===void 0?1:c,g=e.classes,p=e.strokeLinecap,f=p===void 0?null:p,x=e.strokeDashArray,m=x===void 0?0:x,b=this.w;return f===null&&(f=b.config.stroke.lineCap),(i.indexOf("undefined")>-1||i.indexOf("NaN")>-1)&&(i="M 0 ".concat(b.globals.gridHeight)),b.globals.dom.Paper.path(i).attr({fill:l,"fill-opacity":d,stroke:s,"stroke-opacity":u,"stroke-linecap":f,"stroke-width":n,"stroke-dasharray":m,class:g})}},{key:"group",value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,t=this.w.globals.dom.Paper.group();return e!==null&&t.attr(e),t}},{key:"move",value:function(e,t){var i=["M",e,t].join(" ");return i}},{key:"line",value:function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,a=null;return i===null?a=[" L",e,t].join(" "):i==="H"?a=[" H",e].join(" "):i==="V"&&(a=[" V",t].join(" ")),a}},{key:"curve",value:function(e,t,i,a,s,r){var n=["C",e,t,i,a,s,r].join(" ");return n}},{key:"quadraticCurve",value:function(e,t,i,a){return["Q",e,t,i,a].join(" ")}},{key:"arc",value:function(e,t,i,a,s,r,n){var l="A";arguments.length>7&&arguments[7]!==void 0&&arguments[7]&&(l="a");var h=[l,e,t,i,a,s,r,n].join(" ");return h}},{key:"renderPaths",value:function(e){var t,i=e.j,a=e.realIndex,s=e.pathFrom,r=e.pathTo,n=e.stroke,l=e.strokeWidth,h=e.strokeLinecap,d=e.fill,c=e.animationDelay,u=e.initialSpeed,g=e.dataChangeSpeed,p=e.className,f=e.chartType,x=e.shouldClipToGrid,m=x===void 0||x,b=e.bindEventsOnPaths,v=b===void 0||b,k=e.drawShadow,w=k===void 0||k,C=this.w,y=new ke(this.ctx),A=new yt(this.ctx),L=this.w.config.chart.animations.enabled,S=L&&this.w.config.chart.animations.dynamicAnimation.enabled,P=!!(L&&!C.globals.resized||S&&C.globals.dataChanged&&C.globals.shouldAnimate);P?t=s:(t=r,C.globals.animationEnded=!0);var I=C.config.stroke.dashArray,T=0;T=Array.isArray(I)?I[a]:C.config.stroke.dashArray;var z=this.drawPath({d:t,stroke:n,strokeWidth:l,fill:d,fillOpacity:1,classes:p,strokeLinecap:h,strokeDashArray:T});z.attr("index",a),m&&(f==="bar"&&!C.globals.isHorizontal||C.globals.comboCharts?z.attr({"clip-path":"url(#gridRectBarMask".concat(C.globals.cuid,")")}):z.attr({"clip-path":"url(#gridRectMask".concat(C.globals.cuid,")")})),C.config.chart.dropShadow.enabled&&w&&y.dropShadow(z,C.config.chart.dropShadow,a),v&&(z.node.addEventListener("mouseenter",this.pathMouseEnter.bind(this,z)),z.node.addEventListener("mouseleave",this.pathMouseLeave.bind(this,z)),z.node.addEventListener("mousedown",this.pathMouseDown.bind(this,z))),z.attr({pathTo:r,pathFrom:s});var O={el:z,j:i,realIndex:a,pathFrom:s,pathTo:r,fill:d,strokeWidth:l,delay:c};return!L||C.globals.resized||C.globals.dataChanged?!C.globals.resized&&C.globals.dataChanged||A.showDelayedElements():A.animatePathsGradually(R(R({},O),{},{speed:u})),C.globals.dataChanged&&S&&P&&A.animatePathsGradually(R(R({},O),{},{speed:g})),z}},{key:"drawPattern",value:function(e,t,i){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"#a8a8a8",s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;return this.w.globals.dom.Paper.pattern(t,i,function(r){e==="horizontalLines"?r.line(0,0,i,0).stroke({color:a,width:s+1}):e==="verticalLines"?r.line(0,0,0,t).stroke({color:a,width:s+1}):e==="slantedLines"?r.line(0,0,t,i).stroke({color:a,width:s}):e==="squares"?r.rect(t,i).fill("none").stroke({color:a,width:s}):e==="circles"&&r.circle(t).fill("none").stroke({color:a,width:s})})}},{key:"drawGradient",value:function(e,t,i,a,s){var r,n=arguments.length>5&&arguments[5]!==void 0?arguments[5]:null,l=arguments.length>6&&arguments[6]!==void 0?arguments[6]:null,h=arguments.length>7&&arguments[7]!==void 0?arguments[7]:[],d=arguments.length>8&&arguments[8]!==void 0?arguments[8]:0,c=this.w;t.length<9&&t.indexOf("#")===0&&(t=M.hexToRgba(t,a)),i.length<9&&i.indexOf("#")===0&&(i=M.hexToRgba(i,s));var u=0,g=1,p=1,f=null;l!==null&&(u=l[0]!==void 0?l[0]/100:0,g=l[1]!==void 0?l[1]/100:1,p=l[2]!==void 0?l[2]/100:1,f=l[3]!==void 0?l[3]/100:null);var x=!(c.config.chart.type!=="donut"&&c.config.chart.type!=="pie"&&c.config.chart.type!=="polarArea"&&c.config.chart.type!=="bubble");if(r=h&&h.length!==0?c.globals.dom.Paper.gradient(x?"radial":"linear",function(v){(Array.isArray(h[d])?h[d]:h).forEach(function(k){v.stop(k.offset/100,k.color,k.opacity)})}):c.globals.dom.Paper.gradient(x?"radial":"linear",function(v){v.stop(u,t,a),v.stop(g,i,s),v.stop(p,i,s),f!==null&&v.stop(f,t,a)}),x){var m=c.globals.gridWidth/2,b=c.globals.gridHeight/2;c.config.chart.type!=="bubble"?r.attr({gradientUnits:"userSpaceOnUse",cx:m,cy:b,r:n}):r.attr({cx:.5,cy:.5,r:.8,fx:.2,fy:.2})}else e==="vertical"?r.from(0,0).to(0,1):e==="diagonal"?r.from(0,0).to(1,1):e==="horizontal"?r.from(0,1).to(1,1):e==="diagonal2"&&r.from(1,0).to(0,1);return r}},{key:"getTextBasedOnMaxWidth",value:function(e){var t=e.text,i=e.maxWidth,a=e.fontSize,s=e.fontFamily,r=this.getTextRects(t,a,s),n=r.width/t.length,l=Math.floor(i/n);return i-1){var l=i.globals.selectedDataPoints[s].indexOf(r);i.globals.selectedDataPoints[s].splice(l,1)}}else{if(!i.config.states.active.allowMultipleDataPointsSelection&&i.globals.selectedDataPoints.length>0){i.globals.selectedDataPoints=[];var h=i.globals.dom.Paper.find(".apexcharts-series path:not(.apexcharts-decoration-element)"),d=i.globals.dom.Paper.find(".apexcharts-series circle:not(.apexcharts-decoration-element), .apexcharts-series rect:not(.apexcharts-decoration-element)"),c=function(p){Array.prototype.forEach.call(p,function(f){f.node.setAttribute("selected","false"),a.getDefaultFilter(f,s)})};c(h),c(d)}e.node.setAttribute("selected","true"),n="true",i.globals.selectedDataPoints[s]===void 0&&(i.globals.selectedDataPoints[s]=[]),i.globals.selectedDataPoints[s].push(r)}if(n==="true"){var u=i.config.states.active.filter;if(u!=="none")a.applyFilter(e,s,u.type);else if(i.config.states.hover.filter!=="none"&&!i.globals.isTouchDevice){var g=i.config.states.hover.filter;a.applyFilter(e,s,g.type)}}else i.config.states.active.filter.type!=="none"&&(i.config.states.hover.filter.type==="none"||i.globals.isTouchDevice?a.getDefaultFilter(e,s):(g=i.config.states.hover.filter,a.applyFilter(e,s,g.type)));typeof i.config.chart.events.dataPointSelection=="function"&&i.config.chart.events.dataPointSelection(t,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:r,w:i}),t&&this.ctx.events.fireEvent("dataPointSelection",[t,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:r,w:i}])}},{key:"rotateAroundCenter",value:function(e){var t={};return e&&typeof e.getBBox=="function"&&(t=e.getBBox()),{x:t.x+t.width/2,y:t.y+t.height/2}}},{key:"getTextRects",value:function(e,t,i,a){var s=!(arguments.length>4&&arguments[4]!==void 0)||arguments[4],r=this.w,n=this.drawText({x:-200,y:-200,text:e,textAnchor:"start",fontSize:t,fontFamily:i,foreColor:"#fff",opacity:0});a&&n.attr("transform",a),r.globals.dom.Paper.add(n);var l=n.bbox();return s||(l=n.node.getBoundingClientRect()),n.remove(),{width:l.width,height:l.height}}},{key:"placeTextWithEllipsis",value:function(e,t,i){if(typeof e.getComputedTextLength=="function"&&(e.textContent=t,t.length>0&&e.getComputedTextLength()>=i/1.1)){for(var a=t.length-3;a>0;a-=3)if(e.getSubStringLength(0,a)<=i/1.1)return void(e.textContent=t.substring(0,a)+"...");e.textContent="."}}}],[{key:"setAttrs",value:function(e,t){for(var i in t)t.hasOwnProperty(i)&&e.setAttribute(i,t[i])}}]),o}(),be=function(){function o(e){Y(this,o),this.ctx=e,this.w=e.w}return H(o,[{key:"getStackedSeriesTotals",value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=this.w,i=[];if(t.globals.series.length===0)return i;for(var a=0;a0&&arguments[0]!==void 0?arguments[0]:null;return e===null?this.w.config.series.reduce(function(t,i){return t+i},0):this.w.globals.series[e].reduce(function(t,i){return t+i},0)}},{key:"getStackedSeriesTotalsByGroups",value:function(){var e=this,t=this.w,i=[];return t.globals.seriesGroups.forEach(function(a){var s=[];t.config.series.forEach(function(n,l){a.indexOf(t.globals.seriesNames[l])>-1&&s.push(l)});var r=t.globals.series.map(function(n,l){return s.indexOf(l)===-1?l:-1}).filter(function(n){return n!==-1});i.push(e.getStackedSeriesTotals(r))}),i}},{key:"setSeriesYAxisMappings",value:function(){var e=this.w.globals,t=this.w.config,i=[],a=[],s=[],r=e.series.length>t.yaxis.length||t.yaxis.some(function(c){return Array.isArray(c.seriesName)});t.series.forEach(function(c,u){s.push(u),a.push(null)}),t.yaxis.forEach(function(c,u){i[u]=[]});var n=[];t.yaxis.forEach(function(c,u){var g=!1;if(c.seriesName){var p=[];Array.isArray(c.seriesName)?p=c.seriesName:p.push(c.seriesName),p.forEach(function(f){t.series.forEach(function(x,m){if(x.name===f){var b=m;u===m||r?!r||s.indexOf(m)>-1?i[u].push([u,m]):console.warn("Series '"+x.name+"' referenced more than once in what looks like the new style. That is, when using either seriesName: [], or when there are more series than yaxes."):(i[m].push([m,u]),b=u),g=!0,(b=s.indexOf(b))!==-1&&s.splice(b,1)}})})}g||n.push(u)}),i=i.map(function(c,u){var g=[];return c.forEach(function(p){a[p[1]]=p[0],g.push(p[1])}),g});for(var l=t.yaxis.length-1,h=0;h0&&arguments[0]!==void 0?arguments[0]:null;return(e===null?this.w.config.series.filter(function(t){return t!==null}):this.w.config.series[e].data.filter(function(t){return t!==null})).length===0}},{key:"seriesHaveSameValues",value:function(e){return this.w.globals.series[e].every(function(t,i,a){return t===a[0]})}},{key:"getCategoryLabels",value:function(e){var t=this.w,i=e.slice();return t.config.xaxis.convertedCatToNumeric&&(i=e.map(function(a,s){return t.config.xaxis.labels.formatter(a-t.globals.minX+1)})),i}},{key:"getLargestSeries",value:function(){var e=this.w;e.globals.maxValsInArrayIndex=e.globals.series.map(function(t){return t.length}).indexOf(Math.max.apply(Math,e.globals.series.map(function(t){return t.length})))}},{key:"getLargestMarkerSize",value:function(){var e=this.w,t=0;return e.globals.markers.size.forEach(function(i){t=Math.max(t,i)}),e.config.markers.discrete&&e.config.markers.discrete.length&&e.config.markers.discrete.forEach(function(i){t=Math.max(t,i.size)}),t>0&&(e.config.markers.hover.size>0?t=e.config.markers.hover.size:t+=e.config.markers.hover.sizeOffset),e.globals.markers.largestSize=t,t}},{key:"getSeriesTotals",value:function(){var e=this.w;e.globals.seriesTotals=e.globals.series.map(function(t,i){var a=0;if(Array.isArray(t))for(var s=0;se&&i.globals.seriesX[s][n]0){var p=function(x,m){var b=s.config.yaxis[s.globals.seriesYAxisReverseMap[m]],v=x<0?-1:1;return x=Math.abs(x),b.logarithmic&&(x=a.getBaseLog(b.logBase,x)),-v*x/n[m]};if(r.isMultipleYAxis){h=[];for(var f=0;f0&&t.forEach(function(n){var l=[],h=[];e.i.forEach(function(d,c){s.config.series[d].group===n&&(l.push(e.series[c]),h.push(d))}),l.length>0&&r.push(a.draw(l,i,h))}),r}}],[{key:"checkComboSeries",value:function(e,t){var i=!1,a=0,s=0;return t===void 0&&(t="line"),e.length&&e[0].type!==void 0&&e.forEach(function(r){r.type!=="bar"&&r.type!=="column"&&r.type!=="candlestick"&&r.type!=="boxPlot"||a++,r.type!==void 0&&r.type!==t&&s++}),s>0&&(i=!0),{comboBarCount:a,comboCharts:i}}},{key:"extendArrayProps",value:function(e,t,i){var a,s,r,n,l,h;return(a=t)!==null&&a!==void 0&&a.yaxis&&(t=e.extendYAxis(t,i)),(s=t)!==null&&s!==void 0&&s.annotations&&(t.annotations.yaxis&&(t=e.extendYAxisAnnotations(t)),(r=t)!==null&&r!==void 0&&(n=r.annotations)!==null&&n!==void 0&&n.xaxis&&(t=e.extendXAxisAnnotations(t)),(l=t)!==null&&l!==void 0&&(h=l.annotations)!==null&&h!==void 0&&h.points&&(t=e.extendPointAnnotations(t))),t}}]),o}(),ci=function(){function o(e){Y(this,o),this.w=e.w,this.annoCtx=e}return H(o,[{key:"setOrientations",value:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,i=this.w;if(e.label.orientation==="vertical"){var a=t!==null?t:0,s=i.globals.dom.baseEl.querySelector(".apexcharts-xaxis-annotations .apexcharts-xaxis-annotation-label[rel='".concat(a,"']"));if(s!==null){var r=s.getBoundingClientRect();s.setAttribute("x",parseFloat(s.getAttribute("x"))-r.height+4);var n=e.label.position==="top"?r.width:-r.width;s.setAttribute("y",parseFloat(s.getAttribute("y"))+n);var l=this.annoCtx.graphics.rotateAroundCenter(s),h=l.x,d=l.y;s.setAttribute("transform","rotate(-90 ".concat(h," ").concat(d,")"))}}}},{key:"addBackgroundToAnno",value:function(e,t){var i=this.w;if(!e||!t.label.text||!String(t.label.text).trim())return null;var a=i.globals.dom.baseEl.querySelector(".apexcharts-grid").getBoundingClientRect(),s=e.getBoundingClientRect(),r=t.label.style.padding,n=r.left,l=r.right,h=r.top,d=r.bottom;if(t.label.orientation==="vertical"){var c=[n,l,h,d];h=c[0],d=c[1],n=c[2],l=c[3]}var u=s.left-a.left-n,g=s.top-a.top-h,p=this.annoCtx.graphics.drawRect(u-i.globals.barPadForNumericAxis,g,s.width+n+l,s.height+h+d,t.label.borderRadius,t.label.style.background,1,t.label.borderWidth,t.label.borderColor,0);return t.id&&p.node.classList.add(t.id),p}},{key:"annotationsBackground",value:function(){var e=this,t=this.w,i=function(a,s,r){var n=t.globals.dom.baseEl.querySelector(".apexcharts-".concat(r,"-annotations .apexcharts-").concat(r,"-annotation-label[rel='").concat(s,"']"));if(n){var l=n.parentNode,h=e.addBackgroundToAnno(n,a);h&&(l.insertBefore(h.node,n),a.label.mouseEnter&&h.node.addEventListener("mouseenter",a.label.mouseEnter.bind(e,a)),a.label.mouseLeave&&h.node.addEventListener("mouseleave",a.label.mouseLeave.bind(e,a)),a.label.click&&h.node.addEventListener("click",a.label.click.bind(e,a)))}};t.config.annotations.xaxis.forEach(function(a,s){return i(a,s,"xaxis")}),t.config.annotations.yaxis.forEach(function(a,s){return i(a,s,"yaxis")}),t.config.annotations.points.forEach(function(a,s){return i(a,s,"point")})}},{key:"getY1Y2",value:function(e,t){var i,a=this.w,s=e==="y1"?t.y:t.y2,r=!1;if(this.annoCtx.invertAxis){var n=a.config.xaxis.convertedCatToNumeric?a.globals.categoryLabels:a.globals.labels,l=n.indexOf(s),h=a.globals.dom.baseEl.querySelector(".apexcharts-yaxis-texts-g text:nth-child(".concat(l+1,")"));i=h?parseFloat(h.getAttribute("y")):(a.globals.gridHeight/n.length-1)*(l+1)-a.globals.barHeight,t.seriesIndex!==void 0&&a.globals.barHeight&&(i-=a.globals.barHeight/2*(a.globals.series.length-1)-a.globals.barHeight*t.seriesIndex)}else{var d,c=a.globals.seriesYAxisMap[t.yAxisIndex][0],u=a.config.yaxis[t.yAxisIndex].logarithmic?new be(this.annoCtx.ctx).getLogVal(a.config.yaxis[t.yAxisIndex].logBase,s,c)/a.globals.yLogRatio[c]:(s-a.globals.minYArr[c])/(a.globals.yRange[c]/a.globals.gridHeight);i=a.globals.gridHeight-Math.min(Math.max(u,0),a.globals.gridHeight),r=u>a.globals.gridHeight||u<0,!t.marker||t.y!==void 0&&t.y!==null||(i=0),(d=a.config.yaxis[t.yAxisIndex])!==null&&d!==void 0&&d.reversed&&(i=u)}return typeof s=="string"&&s.includes("px")&&(i=parseFloat(s)),{yP:i,clipped:r}}},{key:"getX1X2",value:function(e,t){var i=this.w,a=e==="x1"?t.x:t.x2,s=this.annoCtx.invertAxis?i.globals.minY:i.globals.minX,r=this.annoCtx.invertAxis?i.globals.maxY:i.globals.maxX,n=this.annoCtx.invertAxis?i.globals.yRange[0]:i.globals.xRange,l=!1,h=this.annoCtx.inversedReversedAxis?(r-a)/(n/i.globals.gridWidth):(a-s)/(n/i.globals.gridWidth);return i.config.xaxis.type!=="category"&&!i.config.xaxis.convertedCatToNumeric||this.annoCtx.invertAxis||i.globals.dataFormatXNumeric||i.config.chart.sparkline.enabled||(h=this.getStringX(a)),typeof a=="string"&&a.includes("px")&&(h=parseFloat(a)),a==null&&t.marker&&(h=i.globals.gridWidth),t.seriesIndex!==void 0&&i.globals.barWidth&&!this.annoCtx.invertAxis&&(h-=i.globals.barWidth/2*(i.globals.series.length-1)-i.globals.barWidth*t.seriesIndex),h>i.globals.gridWidth?(h=i.globals.gridWidth,l=!0):h<0&&(h=0,l=!0),{x:h,clipped:l}}},{key:"getStringX",value:function(e){var t=this.w,i=e;t.config.xaxis.convertedCatToNumeric&&t.globals.categoryLabels.length&&(e=t.globals.categoryLabels.indexOf(e)+1);var a=t.globals.labels.map(function(r){return Array.isArray(r)?r.join(" "):r}).indexOf(e),s=t.globals.dom.baseEl.querySelector(".apexcharts-xaxis-texts-g text:nth-child(".concat(a+1,")"));return s&&(i=parseFloat(s.getAttribute("x"))),i}}]),o}(),Xl=function(){function o(e){Y(this,o),this.w=e.w,this.annoCtx=e,this.invertAxis=this.annoCtx.invertAxis,this.helpers=new ci(this.annoCtx)}return H(o,[{key:"addXaxisAnnotation",value:function(e,t,i){var a,s=this.w,r=this.helpers.getX1X2("x1",e),n=r.x,l=r.clipped,h=!0,d=e.label.text,c=e.strokeDashArray;if(M.isNumber(n)){if(e.x2===null||e.x2===void 0){if(!l){var u=this.annoCtx.graphics.drawLine(n+e.offsetX,0+e.offsetY,n+e.offsetX,s.globals.gridHeight+e.offsetY,e.borderColor,c,e.borderWidth);t.appendChild(u.node),e.id&&u.node.classList.add(e.id)}}else{var g=this.helpers.getX1X2("x2",e);if(a=g.x,h=g.clipped,!l||!h){if(a12?g-12:g===0?12:g;t=(t=(t=(t=t.replace(/(^|[^\\])HH+/g,"$1"+h(g))).replace(/(^|[^\\])H/g,"$1"+g)).replace(/(^|[^\\])hh+/g,"$1"+h(p))).replace(/(^|[^\\])h/g,"$1"+p);var f=a?e.getUTCMinutes():e.getMinutes();t=(t=t.replace(/(^|[^\\])mm+/g,"$1"+h(f))).replace(/(^|[^\\])m/g,"$1"+f);var x=a?e.getUTCSeconds():e.getSeconds();t=(t=t.replace(/(^|[^\\])ss+/g,"$1"+h(x))).replace(/(^|[^\\])s/g,"$1"+x);var m=a?e.getUTCMilliseconds():e.getMilliseconds();t=t.replace(/(^|[^\\])fff+/g,"$1"+h(m,3)),m=Math.round(m/10),t=t.replace(/(^|[^\\])ff/g,"$1"+h(m)),m=Math.round(m/10);var b=g<12?"AM":"PM";t=(t=(t=t.replace(/(^|[^\\])f/g,"$1"+m)).replace(/(^|[^\\])TT+/g,"$1"+b)).replace(/(^|[^\\])T/g,"$1"+b.charAt(0));var v=b.toLowerCase();t=(t=t.replace(/(^|[^\\])tt+/g,"$1"+v)).replace(/(^|[^\\])t/g,"$1"+v.charAt(0));var k=-e.getTimezoneOffset(),w=a||!k?"Z":k>0?"+":"-";if(!a){var C=(k=Math.abs(k))%60;w+=h(Math.floor(k/60))+":"+h(C)}t=t.replace(/(^|[^\\])K/g,"$1"+w);var y=(a?e.getUTCDay():e.getDay())+1;return t=(t=(t=(t=(t=t.replace(new RegExp(n[0],"g"),n[y])).replace(new RegExp(l[0],"g"),l[y])).replace(new RegExp(s[0],"g"),s[c])).replace(new RegExp(r[0],"g"),r[c])).replace(/\\(.)/g,"$1")}},{key:"getTimeUnitsfromTimestamp",value:function(e,t,i){var a=this.w;a.config.xaxis.min!==void 0&&(e=a.config.xaxis.min),a.config.xaxis.max!==void 0&&(t=a.config.xaxis.max);var s=this.getDate(e),r=this.getDate(t),n=this.formatDate(s,"yyyy MM dd HH mm ss fff").split(" "),l=this.formatDate(r,"yyyy MM dd HH mm ss fff").split(" ");return{minMillisecond:parseInt(n[6],10),maxMillisecond:parseInt(l[6],10),minSecond:parseInt(n[5],10),maxSecond:parseInt(l[5],10),minMinute:parseInt(n[4],10),maxMinute:parseInt(l[4],10),minHour:parseInt(n[3],10),maxHour:parseInt(l[3],10),minDate:parseInt(n[2],10),maxDate:parseInt(l[2],10),minMonth:parseInt(n[1],10)-1,maxMonth:parseInt(l[1],10)-1,minYear:parseInt(n[0],10),maxYear:parseInt(l[0],10)}}},{key:"isLeapYear",value:function(e){return e%4==0&&e%100!=0||e%400==0}},{key:"calculcateLastDaysOfMonth",value:function(e,t,i){return this.determineDaysOfMonths(e,t)-i}},{key:"determineDaysOfYear",value:function(e){var t=365;return this.isLeapYear(e)&&(t=366),t}},{key:"determineRemainingDaysOfYear",value:function(e,t,i){var a=this.daysCntOfYear[t]+i;return t>1&&this.isLeapYear()&&a++,a}},{key:"determineDaysOfMonths",value:function(e,t){var i=30;switch(e=M.monthMod(e),!0){case this.months30.indexOf(e)>-1:e===2&&(i=this.isLeapYear(t)?29:28);break;case this.months31.indexOf(e)>-1:default:i=31}return i}}]),o}(),Nt=function(){function o(e){Y(this,o),this.ctx=e,this.w=e.w,this.tooltipKeyFormat="dd MMM"}return H(o,[{key:"xLabelFormat",value:function(e,t,i,a){var s=this.w;if(s.config.xaxis.type==="datetime"&&s.config.xaxis.labels.formatter===void 0&&s.config.tooltip.x.formatter===void 0){var r=new we(this.ctx);return r.formatDate(r.getDate(t),s.config.tooltip.x.format)}return e(t,i,a)}},{key:"defaultGeneralFormatter",value:function(e){return Array.isArray(e)?e.map(function(t){return t}):e}},{key:"defaultYFormatter",value:function(e,t,i){var a=this.w;if(M.isNumber(e))if(a.globals.yValueDecimal!==0)e=e.toFixed(t.decimalsInFloat!==void 0?t.decimalsInFloat:a.globals.yValueDecimal);else{var s=e.toFixed(0);e=e==s?s:e.toFixed(1)}return e}},{key:"setLabelFormatters",value:function(){var e=this,t=this.w;return t.globals.xaxisTooltipFormatter=function(i){return e.defaultGeneralFormatter(i)},t.globals.ttKeyFormatter=function(i){return e.defaultGeneralFormatter(i)},t.globals.ttZFormatter=function(i){return i},t.globals.legendFormatter=function(i){return e.defaultGeneralFormatter(i)},t.config.xaxis.labels.formatter!==void 0?t.globals.xLabelFormatter=t.config.xaxis.labels.formatter:t.globals.xLabelFormatter=function(i){if(M.isNumber(i)){if(!t.config.xaxis.convertedCatToNumeric&&t.config.xaxis.type==="numeric"){if(M.isNumber(t.config.xaxis.decimalsInFloat))return i.toFixed(t.config.xaxis.decimalsInFloat);var a=t.globals.maxX-t.globals.minX;return a>0&&a<100?i.toFixed(1):i.toFixed(0)}return t.globals.isBarHorizontal&&t.globals.maxY-t.globals.minYArr<4?i.toFixed(1):i.toFixed(0)}return i},typeof t.config.tooltip.x.formatter=="function"?t.globals.ttKeyFormatter=t.config.tooltip.x.formatter:t.globals.ttKeyFormatter=t.globals.xLabelFormatter,typeof t.config.xaxis.tooltip.formatter=="function"&&(t.globals.xaxisTooltipFormatter=t.config.xaxis.tooltip.formatter),(Array.isArray(t.config.tooltip.y)||t.config.tooltip.y.formatter!==void 0)&&(t.globals.ttVal=t.config.tooltip.y),t.config.tooltip.z.formatter!==void 0&&(t.globals.ttZFormatter=t.config.tooltip.z.formatter),t.config.legend.formatter!==void 0&&(t.globals.legendFormatter=t.config.legend.formatter),t.config.yaxis.forEach(function(i,a){i.labels.formatter!==void 0?t.globals.yLabelFormatters[a]=i.labels.formatter:t.globals.yLabelFormatters[a]=function(s){return t.globals.xyCharts?Array.isArray(s)?s.map(function(r){return e.defaultYFormatter(r,i,a)}):e.defaultYFormatter(s,i,a):s}}),t.globals}},{key:"heatmapLabelFormatters",value:function(){var e=this.w;if(e.config.chart.type==="heatmap"){e.globals.yAxisScale[0].result=e.globals.seriesNames.slice();var t=e.globals.seriesNames.reduce(function(i,a){return i.length>a.length?i:a},0);e.globals.yAxisScale[0].niceMax=t,e.globals.yAxisScale[0].niceMin=t}}}]),o}(),Qe=function(){function o(e){Y(this,o),this.ctx=e,this.w=e.w}return H(o,[{key:"getLabel",value:function(e,t,i,a){var s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:[],r=arguments.length>5&&arguments[5]!==void 0?arguments[5]:"12px",n=!(arguments.length>6&&arguments[6]!==void 0)||arguments[6],l=this.w,h=e[a]===void 0?"":e[a],d=h,c=l.globals.xLabelFormatter,u=l.config.xaxis.labels.formatter,g=!1,p=new Nt(this.ctx),f=h;n&&(d=p.xLabelFormat(c,h,f,{i:a,dateFormatter:new we(this.ctx).formatDate,w:l}),u!==void 0&&(d=u(h,e[a],{i:a,dateFormatter:new we(this.ctx).formatDate,w:l})));var x,m;t.length>0?(x=t[a].unit,m=null,t.forEach(function(w){w.unit==="month"?m="year":w.unit==="day"?m="month":w.unit==="hour"?m="day":w.unit==="minute"&&(m="hour")}),g=m===x,i=t[a].position,d=t[a].value):l.config.xaxis.type==="datetime"&&u===void 0&&(d=""),d===void 0&&(d=""),d=Array.isArray(d)?d:d.toString();var b=new X(this.ctx),v={};v=l.globals.rotateXLabels&&n?b.getTextRects(d,parseInt(r,10),null,"rotate(".concat(l.config.xaxis.labels.rotate," 0 0)"),!1):b.getTextRects(d,parseInt(r,10));var k=!l.config.xaxis.labels.showDuplicates&&this.ctx.timeScale;return!Array.isArray(d)&&(String(d)==="NaN"||s.indexOf(d)>=0&&k)&&(d=""),{x:i,text:d,textRect:v,isBold:g}}},{key:"checkLabelBasedOnTickamount",value:function(e,t,i){var a=this.w,s=a.config.xaxis.tickAmount;return s==="dataPoints"&&(s=Math.round(a.globals.gridWidth/120)),s>i||e%Math.round(i/(s+1))==0||(t.text=""),t}},{key:"checkForOverflowingLabels",value:function(e,t,i,a,s){var r=this.w;if(e===0&&r.globals.skipFirstTimelinelabel&&(t.text=""),e===i-1&&r.globals.skipLastTimelinelabel&&(t.text=""),r.config.xaxis.labels.hideOverlappingLabels&&a.length>0){var n=s[s.length-1];t.xa.length||a.some(function(s){return Array.isArray(s.seriesName)})?e:i.seriesYAxisReverseMap[e]}},{key:"isYAxisHidden",value:function(e){var t=this.w,i=t.config.yaxis[e];if(!i.show||this.yAxisAllSeriesCollapsed(e))return!0;if(!i.showForNullSeries){var a=t.globals.seriesYAxisMap[e],s=new be(this.ctx);return a.every(function(r){return s.isSeriesNull(r)})}return!1}},{key:"getYAxisForeColor",value:function(e,t){var i=this.w;return Array.isArray(e)&&i.globals.yAxisScale[t]&&this.ctx.theme.pushExtraColors(e,i.globals.yAxisScale[t].result.length,!1),e}},{key:"drawYAxisTicks",value:function(e,t,i,a,s,r,n){var l=this.w,h=new X(this.ctx),d=l.globals.translateY+l.config.yaxis[s].labels.offsetY;if(l.globals.isBarHorizontal?d=0:l.config.chart.type==="heatmap"&&(d+=r/2),a.show&&t>0){l.config.yaxis[s].opposite===!0&&(e+=a.width);for(var c=t;c>=0;c--){var u=h.drawLine(e+i.offsetX-a.width+a.offsetX,d+a.offsetY,e+i.offsetX+a.offsetX,d+a.offsetY,a.color);n.add(u),d+=r}}}}]),o}(),_l=function(){function o(e){Y(this,o),this.w=e.w,this.annoCtx=e,this.helpers=new ci(this.annoCtx),this.axesUtils=new Qe(this.annoCtx)}return H(o,[{key:"addYaxisAnnotation",value:function(e,t,i){var a,s=this.w,r=e.strokeDashArray,n=this.helpers.getY1Y2("y1",e),l=n.yP,h=n.clipped,d=!0,c=!1,u=e.label.text;if(e.y2===null||e.y2===void 0){if(!h){c=!0;var g=this.annoCtx.graphics.drawLine(0+e.offsetX,l+e.offsetY,this._getYAxisAnnotationWidth(e),l+e.offsetY,e.borderColor,r,e.borderWidth);t.appendChild(g.node),e.id&&g.node.classList.add(e.id)}}else{if(a=(n=this.helpers.getY1Y2("y2",e)).yP,d=n.clipped,a>l){var p=l;l=a,a=p}if(!h||!d){c=!0;var f=this.annoCtx.graphics.drawRect(0+e.offsetX,a+e.offsetY,this._getYAxisAnnotationWidth(e),l-a,0,e.fillColor,e.opacity,1,e.borderColor,r);f.node.classList.add("apexcharts-annotation-rect"),f.attr("clip-path","url(#gridRectMask".concat(s.globals.cuid,")")),t.appendChild(f.node),e.id&&f.node.classList.add(e.id)}}if(c){var x=e.label.position==="right"?s.globals.gridWidth:e.label.position==="center"?s.globals.gridWidth/2:0,m=this.annoCtx.graphics.drawText({x:x+e.label.offsetX,y:(a??l)+e.label.offsetY-3,text:u,textAnchor:e.label.textAnchor,fontSize:e.label.style.fontSize,fontFamily:e.label.style.fontFamily,fontWeight:e.label.style.fontWeight,foreColor:e.label.style.color,cssClass:"apexcharts-yaxis-annotation-label ".concat(e.label.style.cssClass," ").concat(e.id?e.id:"")});m.attr({rel:i}),t.appendChild(m.node)}}},{key:"_getYAxisAnnotationWidth",value:function(e){var t=this.w;return t.globals.gridWidth,(e.width.indexOf("%")>-1?t.globals.gridWidth*parseInt(e.width,10)/100:parseInt(e.width,10))+e.offsetX}},{key:"drawYAxisAnnotations",value:function(){var e=this,t=this.w,i=this.annoCtx.graphics.group({class:"apexcharts-yaxis-annotations"});return t.config.annotations.yaxis.forEach(function(a,s){a.yAxisIndex=e.axesUtils.translateYAxisIndex(a.yAxisIndex),e.axesUtils.isYAxisHidden(a.yAxisIndex)&&e.axesUtils.yAxisAllSeriesCollapsed(a.yAxisIndex)||e.addYaxisAnnotation(a,i.node,s)}),i}}]),o}(),Rl=function(){function o(e){Y(this,o),this.w=e.w,this.annoCtx=e,this.helpers=new ci(this.annoCtx)}return H(o,[{key:"addPointAnnotation",value:function(e,t,i){if(!(this.w.globals.collapsedSeriesIndices.indexOf(e.seriesIndex)>-1)){var a=this.helpers.getX1X2("x1",e),s=a.x,r=a.clipped,n=(a=this.helpers.getY1Y2("y1",e)).yP,l=a.clipped;if(M.isNumber(s)&&!l&&!r){var h={pSize:e.marker.size,pointStrokeWidth:e.marker.strokeWidth,pointFillColor:e.marker.fillColor,pointStrokeColor:e.marker.strokeColor,shape:e.marker.shape,pRadius:e.marker.radius,class:"apexcharts-point-annotation-marker ".concat(e.marker.cssClass," ").concat(e.id?e.id:"")},d=this.annoCtx.graphics.drawMarker(s+e.marker.offsetX,n+e.marker.offsetY,h);t.appendChild(d.node);var c=e.label.text?e.label.text:"",u=this.annoCtx.graphics.drawText({x:s+e.label.offsetX,y:n+e.label.offsetY-e.marker.size-parseFloat(e.label.style.fontSize)/1.6,text:c,textAnchor:e.label.textAnchor,fontSize:e.label.style.fontSize,fontFamily:e.label.style.fontFamily,fontWeight:e.label.style.fontWeight,foreColor:e.label.style.color,cssClass:"apexcharts-point-annotation-label ".concat(e.label.style.cssClass," ").concat(e.id?e.id:"")});if(u.attr({rel:i}),t.appendChild(u.node),e.customSVG.SVG){var g=this.annoCtx.graphics.group({class:"apexcharts-point-annotations-custom-svg "+e.customSVG.cssClass});g.attr({transform:"translate(".concat(s+e.customSVG.offsetX,", ").concat(n+e.customSVG.offsetY,")")}),g.node.innerHTML=e.customSVG.SVG,t.appendChild(g.node)}if(e.image.path){var p=e.image.width?e.image.width:20,f=e.image.height?e.image.height:20;d=this.annoCtx.addImage({x:s+e.image.offsetX-p/2,y:n+e.image.offsetY-f/2,width:p,height:f,path:e.image.path,appendTo:".apexcharts-point-annotations"})}e.mouseEnter&&d.node.addEventListener("mouseenter",e.mouseEnter.bind(this,e)),e.mouseLeave&&d.node.addEventListener("mouseleave",e.mouseLeave.bind(this,e)),e.click&&d.node.addEventListener("click",e.click.bind(this,e))}}}},{key:"drawPointAnnotations",value:function(){var e=this,t=this.w,i=this.annoCtx.graphics.group({class:"apexcharts-point-annotations"});return t.config.annotations.points.map(function(a,s){e.addPointAnnotation(a,i.node,s)}),i}}]),o}(),Us={name:"en",options:{months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],toolbar:{exportToSVG:"Download SVG",exportToPNG:"Download PNG",exportToCSV:"Download CSV",menu:"Menu",selection:"Selection",selectionZoom:"Selection Zoom",zoomIn:"Zoom In",zoomOut:"Zoom Out",pan:"Panning",reset:"Reset Zoom"}}},it=function(){function o(){Y(this,o),this.yAxis={show:!0,showAlways:!1,showForNullSeries:!0,seriesName:void 0,opposite:!1,reversed:!1,logarithmic:!1,logBase:10,tickAmount:void 0,stepSize:void 0,forceNiceScale:!1,max:void 0,min:void 0,floating:!1,decimalsInFloat:void 0,labels:{show:!0,showDuplicates:!1,minWidth:0,maxWidth:160,offsetX:0,offsetY:0,align:void 0,rotate:0,padding:20,style:{colors:[],fontSize:"11px",fontWeight:400,fontFamily:void 0,cssClass:""},formatter:void 0},axisBorder:{show:!1,color:"#e0e0e0",width:1,offsetX:0,offsetY:0},axisTicks:{show:!1,color:"#e0e0e0",width:6,offsetX:0,offsetY:0},title:{text:void 0,rotate:-90,offsetY:0,offsetX:0,style:{color:void 0,fontSize:"11px",fontWeight:900,fontFamily:void 0,cssClass:""}},tooltip:{enabled:!1,offsetX:0},crosshairs:{show:!0,position:"front",stroke:{color:"#b6b6b6",width:1,dashArray:0}}},this.pointAnnotation={id:void 0,x:0,y:null,yAxisIndex:0,seriesIndex:void 0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,marker:{size:4,fillColor:"#fff",strokeWidth:2,strokeColor:"#333",shape:"circle",offsetX:0,offsetY:0,cssClass:""},label:{borderColor:"#c2c2c2",borderWidth:1,borderRadius:2,text:void 0,textAnchor:"middle",offsetX:0,offsetY:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}},customSVG:{SVG:void 0,cssClass:void 0,offsetX:0,offsetY:0},image:{path:void 0,width:20,height:20,offsetX:0,offsetY:0}},this.yAxisAnnotation={id:void 0,y:0,y2:null,strokeDashArray:1,fillColor:"#c2c2c2",borderColor:"#c2c2c2",borderWidth:1,opacity:.3,offsetX:0,offsetY:0,width:"100%",yAxisIndex:0,label:{borderColor:"#c2c2c2",borderWidth:1,borderRadius:2,text:void 0,textAnchor:"end",position:"right",offsetX:0,offsetY:-3,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}}},this.xAxisAnnotation={id:void 0,x:0,x2:null,strokeDashArray:1,fillColor:"#c2c2c2",borderColor:"#c2c2c2",borderWidth:1,opacity:.3,offsetX:0,offsetY:0,label:{borderColor:"#c2c2c2",borderWidth:1,borderRadius:2,text:void 0,textAnchor:"middle",orientation:"vertical",position:"top",offsetX:0,offsetY:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}}},this.text={x:0,y:0,text:"",textAnchor:"start",foreColor:void 0,fontSize:"13px",fontFamily:void 0,fontWeight:400,appendTo:".apexcharts-annotations",backgroundColor:"transparent",borderColor:"#c2c2c2",borderRadius:0,borderWidth:0,paddingLeft:4,paddingRight:4,paddingTop:2,paddingBottom:2}}return H(o,[{key:"init",value:function(){return{annotations:{yaxis:[this.yAxisAnnotation],xaxis:[this.xAxisAnnotation],points:[this.pointAnnotation],texts:[],images:[],shapes:[]},chart:{animations:{enabled:!0,speed:800,animateGradually:{delay:150,enabled:!0},dynamicAnimation:{enabled:!0,speed:350}},background:"",locales:[Us],defaultLocale:"en",dropShadow:{enabled:!1,enabledOnSeries:void 0,top:2,left:2,blur:4,color:"#000",opacity:.7},events:{animationEnd:void 0,beforeMount:void 0,mounted:void 0,updated:void 0,click:void 0,mouseMove:void 0,mouseLeave:void 0,xAxisLabelClick:void 0,legendClick:void 0,markerClick:void 0,selection:void 0,dataPointSelection:void 0,dataPointMouseEnter:void 0,dataPointMouseLeave:void 0,beforeZoom:void 0,beforeResetZoom:void 0,zoomed:void 0,scrolled:void 0,brushScrolled:void 0},foreColor:"#373d3f",fontFamily:"Helvetica, Arial, sans-serif",height:"auto",parentHeightOffset:15,redrawOnParentResize:!0,redrawOnWindowResize:!0,id:void 0,group:void 0,nonce:void 0,offsetX:0,offsetY:0,selection:{enabled:!1,type:"x",fill:{color:"#24292e",opacity:.1},stroke:{width:1,color:"#24292e",opacity:.4,dashArray:3},xaxis:{min:void 0,max:void 0},yaxis:{min:void 0,max:void 0}},sparkline:{enabled:!1},brush:{enabled:!1,autoScaleYaxis:!0,target:void 0,targets:void 0},stacked:!1,stackOnlyBar:!0,stackType:"normal",toolbar:{show:!0,offsetX:0,offsetY:0,tools:{download:!0,selection:!0,zoom:!0,zoomin:!0,zoomout:!0,pan:!0,reset:!0,customIcons:[]},export:{csv:{filename:void 0,columnDelimiter:",",headerCategory:"category",headerValue:"value",categoryFormatter:void 0,valueFormatter:void 0},png:{filename:void 0},svg:{filename:void 0},scale:void 0,width:void 0},autoSelected:"zoom"},type:"line",width:"100%",zoom:{enabled:!0,type:"x",autoScaleYaxis:!1,allowMouseWheelZoom:!0,zoomedArea:{fill:{color:"#90CAF9",opacity:.4},stroke:{color:"#0D47A1",opacity:.4,width:1}}}},plotOptions:{line:{isSlopeChart:!1,colors:{threshold:0,colorAboveThreshold:void 0,colorBelowThreshold:void 0}},area:{fillTo:"origin"},bar:{horizontal:!1,columnWidth:"70%",barHeight:"70%",distributed:!1,borderRadius:0,borderRadiusApplication:"around",borderRadiusWhenStacked:"last",rangeBarOverlap:!0,rangeBarGroupRows:!1,hideZeroBarsWhenGrouped:!1,isDumbbell:!1,dumbbellColors:void 0,isFunnel:!1,isFunnel3d:!0,colors:{ranges:[],backgroundBarColors:[],backgroundBarOpacity:1,backgroundBarRadius:0},dataLabels:{position:"top",maxItems:100,hideOverflowingLabels:!0,orientation:"horizontal",total:{enabled:!1,formatter:void 0,offsetX:0,offsetY:0,style:{color:"#373d3f",fontSize:"12px",fontFamily:void 0,fontWeight:600}}}},bubble:{zScaling:!0,minBubbleRadius:void 0,maxBubbleRadius:void 0},candlestick:{colors:{upward:"#00B746",downward:"#EF403C"},wick:{useFillColor:!0}},boxPlot:{colors:{upper:"#00E396",lower:"#008FFB"}},heatmap:{radius:2,enableShades:!0,shadeIntensity:.5,reverseNegativeShade:!1,distributed:!1,useFillColorAsStroke:!1,colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0}},treemap:{enableShades:!0,shadeIntensity:.5,distributed:!1,reverseNegativeShade:!1,useFillColorAsStroke:!1,borderRadius:4,dataLabels:{format:"scale"},colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0}},radialBar:{inverseOrder:!1,startAngle:0,endAngle:360,offsetX:0,offsetY:0,hollow:{margin:5,size:"50%",background:"transparent",image:void 0,imageWidth:150,imageHeight:150,imageOffsetX:0,imageOffsetY:0,imageClipped:!0,position:"front",dropShadow:{enabled:!1,top:0,left:0,blur:3,color:"#000",opacity:.5}},track:{show:!0,startAngle:void 0,endAngle:void 0,background:"#f2f2f2",strokeWidth:"97%",opacity:1,margin:5,dropShadow:{enabled:!1,top:0,left:0,blur:3,color:"#000",opacity:.5}},dataLabels:{show:!0,name:{show:!0,fontSize:"16px",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:0,formatter:function(e){return e}},value:{show:!0,fontSize:"14px",fontFamily:void 0,fontWeight:400,color:void 0,offsetY:16,formatter:function(e){return e+"%"}},total:{show:!1,label:"Total",fontSize:"16px",fontWeight:600,fontFamily:void 0,color:void 0,formatter:function(e){return e.globals.seriesTotals.reduce(function(t,i){return t+i},0)/e.globals.series.length+"%"}}},barLabels:{enabled:!1,offsetX:0,offsetY:0,useSeriesColors:!0,fontFamily:void 0,fontWeight:600,fontSize:"16px",formatter:function(e){return e},onClick:void 0}},pie:{customScale:1,offsetX:0,offsetY:0,startAngle:0,endAngle:360,expandOnClick:!0,dataLabels:{offset:0,minAngleToShowLabel:10},donut:{size:"65%",background:"transparent",labels:{show:!1,name:{show:!0,fontSize:"16px",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:-10,formatter:function(e){return e}},value:{show:!0,fontSize:"20px",fontFamily:void 0,fontWeight:400,color:void 0,offsetY:10,formatter:function(e){return e}},total:{show:!1,showAlways:!1,label:"Total",fontSize:"16px",fontWeight:400,fontFamily:void 0,color:void 0,formatter:function(e){return e.globals.seriesTotals.reduce(function(t,i){return t+i},0)}}}}},polarArea:{rings:{strokeWidth:1,strokeColor:"#e8e8e8"},spokes:{strokeWidth:1,connectorColors:"#e8e8e8"}},radar:{size:void 0,offsetX:0,offsetY:0,polygons:{strokeWidth:1,strokeColors:"#e8e8e8",connectorColors:"#e8e8e8",fill:{colors:void 0}}}},colors:void 0,dataLabels:{enabled:!0,enabledOnSeries:void 0,formatter:function(e){return e!==null?e:""},textAnchor:"middle",distributed:!1,offsetX:0,offsetY:0,style:{fontSize:"12px",fontFamily:void 0,fontWeight:600,colors:void 0},background:{enabled:!0,foreColor:"#fff",borderRadius:2,padding:4,opacity:.9,borderWidth:1,borderColor:"#fff",dropShadow:{enabled:!1,top:1,left:1,blur:1,color:"#000",opacity:.8}},dropShadow:{enabled:!1,top:1,left:1,blur:1,color:"#000",opacity:.8}},fill:{type:"solid",colors:void 0,opacity:.85,gradient:{shade:"dark",type:"horizontal",shadeIntensity:.5,gradientToColors:void 0,inverseColors:!0,opacityFrom:1,opacityTo:1,stops:[0,50,100],colorStops:[]},image:{src:[],width:void 0,height:void 0},pattern:{style:"squares",width:6,height:6,strokeWidth:2}},forecastDataPoints:{count:0,fillOpacity:.5,strokeWidth:void 0,dashArray:4},grid:{show:!0,borderColor:"#e0e0e0",strokeDashArray:0,position:"back",xaxis:{lines:{show:!1}},yaxis:{lines:{show:!0}},row:{colors:void 0,opacity:.5},column:{colors:void 0,opacity:.5},padding:{top:0,right:10,bottom:0,left:12}},labels:[],legend:{show:!0,showForSingleSeries:!1,showForNullSeries:!0,showForZeroSeries:!0,floating:!1,position:"bottom",horizontalAlign:"center",inverseOrder:!1,fontSize:"12px",fontFamily:void 0,fontWeight:400,width:void 0,height:void 0,formatter:void 0,tooltipHoverFormatter:void 0,offsetX:-20,offsetY:4,customLegendItems:[],labels:{colors:void 0,useSeriesColors:!1},markers:{size:7,fillColors:void 0,strokeWidth:1,shape:void 0,offsetX:0,offsetY:0,customHTML:void 0,onClick:void 0},itemMargin:{horizontal:5,vertical:4},onItemClick:{toggleDataSeries:!0},onItemHover:{highlightDataSeries:!0}},markers:{discrete:[],size:0,colors:void 0,strokeColors:"#fff",strokeWidth:2,strokeOpacity:.9,strokeDashArray:0,fillOpacity:1,shape:"circle",offsetX:0,offsetY:0,showNullDataPoints:!0,onClick:void 0,onDblClick:void 0,hover:{size:void 0,sizeOffset:3}},noData:{text:void 0,align:"center",verticalAlign:"middle",offsetX:0,offsetY:0,style:{color:void 0,fontSize:"14px",fontFamily:void 0}},responsive:[],series:void 0,states:{hover:{filter:{type:"lighten"}},active:{allowMultipleDataPointsSelection:!1,filter:{type:"darken"}}},title:{text:void 0,align:"left",margin:5,offsetX:0,offsetY:0,floating:!1,style:{fontSize:"14px",fontWeight:900,fontFamily:void 0,color:void 0}},subtitle:{text:void 0,align:"left",margin:5,offsetX:0,offsetY:30,floating:!1,style:{fontSize:"12px",fontWeight:400,fontFamily:void 0,color:void 0}},stroke:{show:!0,curve:"smooth",lineCap:"butt",width:2,colors:void 0,dashArray:0,fill:{type:"solid",colors:void 0,opacity:.85,gradient:{shade:"dark",type:"horizontal",shadeIntensity:.5,gradientToColors:void 0,inverseColors:!0,opacityFrom:1,opacityTo:1,stops:[0,50,100],colorStops:[]}}},tooltip:{enabled:!0,enabledOnSeries:void 0,shared:!0,hideEmptySeries:!1,followCursor:!1,intersect:!1,inverseOrder:!1,custom:void 0,fillSeriesColor:!1,theme:"light",cssClass:"",style:{fontSize:"12px",fontFamily:void 0},onDatasetHover:{highlightDataSeries:!1},x:{show:!0,format:"dd MMM",formatter:void 0},y:{formatter:void 0,title:{formatter:function(e){return e?e+": ":""}}},z:{formatter:void 0,title:"Size: "},marker:{show:!0,fillColors:void 0},items:{display:"flex"},fixed:{enabled:!1,position:"topRight",offsetX:0,offsetY:0}},xaxis:{type:"category",categories:[],convertedCatToNumeric:!1,offsetX:0,offsetY:0,overwriteCategories:void 0,labels:{show:!0,rotate:-45,rotateAlways:!1,hideOverlappingLabels:!0,trim:!1,minHeight:void 0,maxHeight:120,showDuplicates:!0,style:{colors:[],fontSize:"12px",fontWeight:400,fontFamily:void 0,cssClass:""},offsetX:0,offsetY:0,format:void 0,formatter:void 0,datetimeUTC:!0,datetimeFormatter:{year:"yyyy",month:"MMM 'yy",day:"dd MMM",hour:"HH:mm",minute:"HH:mm:ss",second:"HH:mm:ss"}},group:{groups:[],style:{colors:[],fontSize:"12px",fontWeight:400,fontFamily:void 0,cssClass:""}},axisBorder:{show:!0,color:"#e0e0e0",width:"100%",height:1,offsetX:0,offsetY:0},axisTicks:{show:!0,color:"#e0e0e0",height:6,offsetX:0,offsetY:0},stepSize:void 0,tickAmount:void 0,tickPlacement:"on",min:void 0,max:void 0,range:void 0,floating:!1,decimalsInFloat:void 0,position:"bottom",title:{text:void 0,offsetX:0,offsetY:0,style:{color:void 0,fontSize:"12px",fontWeight:900,fontFamily:void 0,cssClass:""}},crosshairs:{show:!0,width:1,position:"back",opacity:.9,stroke:{color:"#b6b6b6",width:1,dashArray:3},fill:{type:"solid",color:"#B1B9C4",gradient:{colorFrom:"#D8E3F0",colorTo:"#BED1E6",stops:[0,100],opacityFrom:.4,opacityTo:.5}},dropShadow:{enabled:!1,left:0,top:0,blur:1,opacity:.8}},tooltip:{enabled:!0,offsetY:0,formatter:void 0,style:{fontSize:"12px",fontFamily:void 0}}},yaxis:this.yAxis,theme:{mode:"",palette:"palette1",monochrome:{enabled:!1,color:"#008FFB",shadeTo:"light",shadeIntensity:.65}}}}}]),o}(),El=function(){function o(e){Y(this,o),this.ctx=e,this.w=e.w,this.graphics=new X(this.ctx),this.w.globals.isBarHorizontal&&(this.invertAxis=!0),this.helpers=new ci(this),this.xAxisAnnotations=new Xl(this),this.yAxisAnnotations=new _l(this),this.pointsAnnotations=new Rl(this),this.w.globals.isBarHorizontal&&this.w.config.yaxis[0].reversed&&(this.inversedReversedAxis=!0),this.xDivision=this.w.globals.gridWidth/this.w.globals.dataPoints}return H(o,[{key:"drawAxesAnnotations",value:function(){var e=this.w;if(e.globals.axisCharts&&e.globals.dataPoints){for(var t=this.yAxisAnnotations.drawYAxisAnnotations(),i=this.xAxisAnnotations.drawXAxisAnnotations(),a=this.pointsAnnotations.drawPointAnnotations(),s=e.config.chart.animations.enabled,r=[t,i,a],n=[i.node,t.node,a.node],l=0;l<3;l++)e.globals.dom.elGraphical.add(r[l]),!s||e.globals.resized||e.globals.dataChanged||e.config.chart.type!=="scatter"&&e.config.chart.type!=="bubble"&&e.globals.dataPoints>1&&n[l].classList.add("apexcharts-element-hidden"),e.globals.delayedElements.push({el:n[l],index:0});this.helpers.annotationsBackground()}}},{key:"drawImageAnnos",value:function(){var e=this;this.w.config.annotations.images.map(function(t,i){e.addImage(t,i)})}},{key:"drawTextAnnos",value:function(){var e=this;this.w.config.annotations.texts.map(function(t,i){e.addText(t,i)})}},{key:"addXaxisAnnotation",value:function(e,t,i){this.xAxisAnnotations.addXaxisAnnotation(e,t,i)}},{key:"addYaxisAnnotation",value:function(e,t,i){this.yAxisAnnotations.addYaxisAnnotation(e,t,i)}},{key:"addPointAnnotation",value:function(e,t,i){this.pointsAnnotations.addPointAnnotation(e,t,i)}},{key:"addText",value:function(e,t){var i=e.x,a=e.y,s=e.text,r=e.textAnchor,n=e.foreColor,l=e.fontSize,h=e.fontFamily,d=e.fontWeight,c=e.cssClass,u=e.backgroundColor,g=e.borderWidth,p=e.strokeDashArray,f=e.borderRadius,x=e.borderColor,m=e.appendTo,b=m===void 0?".apexcharts-svg":m,v=e.paddingLeft,k=v===void 0?4:v,w=e.paddingRight,C=w===void 0?4:w,y=e.paddingBottom,A=y===void 0?2:y,L=e.paddingTop,S=L===void 0?2:L,P=this.w,I=this.graphics.drawText({x:i,y:a,text:s,textAnchor:r||"start",fontSize:l||"12px",fontWeight:d||"regular",fontFamily:h||P.config.chart.fontFamily,foreColor:n||P.config.chart.foreColor,cssClass:c}),T=P.globals.dom.baseEl.querySelector(b);T&&T.appendChild(I.node);var z=I.bbox();if(s){var O=this.graphics.drawRect(z.x-k,z.y-S,z.width+k+C,z.height+A+S,f,u||"transparent",1,g,x,p);T.insertBefore(O.node,I.node)}}},{key:"addImage",value:function(e,t){var i=this.w,a=e.path,s=e.x,r=s===void 0?0:s,n=e.y,l=n===void 0?0:n,h=e.width,d=h===void 0?20:h,c=e.height,u=c===void 0?20:c,g=e.appendTo,p=g===void 0?".apexcharts-svg":g,f=i.globals.dom.Paper.image(a);f.size(d,u).move(r,l);var x=i.globals.dom.baseEl.querySelector(p);return x&&x.appendChild(f.node),f}},{key:"addXaxisAnnotationExternal",value:function(e,t,i){return this.addAnnotationExternal({params:e,pushToMemory:t,context:i,type:"xaxis",contextMethod:i.addXaxisAnnotation}),i}},{key:"addYaxisAnnotationExternal",value:function(e,t,i){return this.addAnnotationExternal({params:e,pushToMemory:t,context:i,type:"yaxis",contextMethod:i.addYaxisAnnotation}),i}},{key:"addPointAnnotationExternal",value:function(e,t,i){return this.invertAxis===void 0&&(this.invertAxis=i.w.globals.isBarHorizontal),this.addAnnotationExternal({params:e,pushToMemory:t,context:i,type:"point",contextMethod:i.addPointAnnotation}),i}},{key:"addAnnotationExternal",value:function(e){var t=e.params,i=e.pushToMemory,a=e.context,s=e.type,r=e.contextMethod,n=a,l=n.w,h=l.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations")),d=h.childNodes.length+1,c=new it,u=Object.assign({},s==="xaxis"?c.xAxisAnnotation:s==="yaxis"?c.yAxisAnnotation:c.pointAnnotation),g=M.extend(u,t);switch(s){case"xaxis":this.addXaxisAnnotation(g,h,d);break;case"yaxis":this.addYaxisAnnotation(g,h,d);break;case"point":this.addPointAnnotation(g,h,d)}var p=l.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations .apexcharts-").concat(s,"-annotation-label[rel='").concat(d,"']")),f=this.helpers.addBackgroundToAnno(p,g);return f&&h.insertBefore(f.node,p),i&&l.globals.memory.methodsToExec.push({context:n,id:g.id?g.id:M.randomId(),method:r,label:"addAnnotation",params:t}),a}},{key:"clearAnnotations",value:function(e){for(var t=e.w,i=t.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis-annotations, .apexcharts-xaxis-annotations, .apexcharts-point-annotations"),a=t.globals.memory.methodsToExec.length-1;a>=0;a--)t.globals.memory.methodsToExec[a].label!=="addText"&&t.globals.memory.methodsToExec[a].label!=="addAnnotation"||t.globals.memory.methodsToExec.splice(a,1);i=M.listToArray(i),Array.prototype.forEach.call(i,function(s){for(;s.firstChild;)s.removeChild(s.firstChild)})}},{key:"removeAnnotation",value:function(e,t){var i=e.w,a=i.globals.dom.baseEl.querySelectorAll(".".concat(t));a&&(i.globals.memory.methodsToExec.map(function(s,r){s.id===t&&i.globals.memory.methodsToExec.splice(r,1)}),Array.prototype.forEach.call(a,function(s){s.parentElement.removeChild(s)}))}}]),o}(),Ci=function(o){var e,t=o.isTimeline,i=o.ctx,a=o.seriesIndex,s=o.dataPointIndex,r=o.y1,n=o.y2,l=o.w,h=l.globals.seriesRangeStart[a][s],d=l.globals.seriesRangeEnd[a][s],c=l.globals.labels[s],u=l.config.series[a].name?l.config.series[a].name:"",g=l.globals.ttKeyFormatter,p=l.config.tooltip.y.title.formatter,f={w:l,seriesIndex:a,dataPointIndex:s,start:h,end:d};typeof p=="function"&&(u=p(u,f)),(e=l.config.series[a].data[s])!==null&&e!==void 0&&e.x&&(c=l.config.series[a].data[s].x),t||l.config.xaxis.type==="datetime"&&(c=new Nt(i).xLabelFormat(l.globals.ttKeyFormatter,c,c,{i:void 0,dateFormatter:new we(i).formatDate,w:l})),typeof g=="function"&&(c=g(c,f)),Number.isFinite(r)&&Number.isFinite(n)&&(h=r,d=n);var x="",m="",b=l.globals.colors[a];if(l.config.tooltip.x.formatter===void 0)if(l.config.xaxis.type==="datetime"){var v=new we(i);x=v.formatDate(v.getDate(h),l.config.tooltip.x.format),m=v.formatDate(v.getDate(d),l.config.tooltip.x.format)}else x=h,m=d;else x=l.config.tooltip.x.formatter(h),m=l.config.tooltip.x.formatter(d);return{start:h,end:d,startVal:x,endVal:m,ylabel:c,color:b,seriesName:u}},Si=function(o){var e=o.color,t=o.seriesName,i=o.ylabel,a=o.start,s=o.end,r=o.seriesIndex,n=o.dataPointIndex,l=o.ctx.tooltip.tooltipLabels.getFormatters(r);a=l.yLbFormatter(a),s=l.yLbFormatter(s);var h=l.yLbFormatter(o.w.globals.series[r][n]),d=` + `.concat(a,` + - + `).concat(s,` + `);return'
    '+(t||"")+'
    '+i+": "+(o.w.globals.comboCharts?o.w.config.series[r].type==="rangeArea"||o.w.config.series[r].type==="rangeBar"?d:"".concat(h,""):d)+"
    "},_t=function(){function o(e){Y(this,o),this.opts=e}return H(o,[{key:"hideYAxis",value:function(){this.opts.yaxis[0].show=!1,this.opts.yaxis[0].title.text="",this.opts.yaxis[0].axisBorder.show=!1,this.opts.yaxis[0].axisTicks.show=!1,this.opts.yaxis[0].floating=!0}},{key:"line",value:function(){return{dataLabels:{enabled:!1},stroke:{width:5,curve:"straight"},markers:{size:0,hover:{sizeOffset:6}},xaxis:{crosshairs:{width:1}}}}},{key:"sparkline",value:function(e){return this.hideYAxis(),M.extend(e,{grid:{show:!1,padding:{left:0,right:0,top:0,bottom:0}},legend:{show:!1},xaxis:{labels:{show:!1},tooltip:{enabled:!1},axisBorder:{show:!1},axisTicks:{show:!1}},chart:{toolbar:{show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1}})}},{key:"slope",value:function(){return this.hideYAxis(),{chart:{toolbar:{show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!0,formatter:function(e,t){var i=t.w.config.series[t.seriesIndex].name;return e!==null?i+": "+e:""},background:{enabled:!1},offsetX:-5},grid:{xaxis:{lines:{show:!0}},yaxis:{lines:{show:!1}}},xaxis:{position:"top",labels:{style:{fontSize:14,fontWeight:900}},tooltip:{enabled:!1},crosshairs:{show:!1}},markers:{size:8,hover:{sizeOffset:1}},legend:{show:!1},tooltip:{shared:!1,intersect:!0,followCursor:!0},stroke:{width:5,curve:"straight"}}}},{key:"bar",value:function(){return{chart:{stacked:!1},plotOptions:{bar:{dataLabels:{position:"center"}}},dataLabels:{style:{colors:["#fff"]},background:{enabled:!1}},stroke:{width:0,lineCap:"round"},fill:{opacity:.85},legend:{markers:{shape:"square"}},tooltip:{shared:!1,intersect:!0},xaxis:{tooltip:{enabled:!1},tickPlacement:"between",crosshairs:{width:"barWidth",position:"back",fill:{type:"gradient"},dropShadow:{enabled:!1},stroke:{width:0}}}}}},{key:"funnel",value:function(){return this.hideYAxis(),R(R({},this.bar()),{},{chart:{animations:{speed:800,animateGradually:{enabled:!1}}},plotOptions:{bar:{horizontal:!0,borderRadiusApplication:"around",borderRadius:0,dataLabels:{position:"center"}}},grid:{show:!1,padding:{left:0,right:0}},xaxis:{labels:{show:!1},tooltip:{enabled:!1},axisBorder:{show:!1},axisTicks:{show:!1}}})}},{key:"candlestick",value:function(){var e=this;return{stroke:{width:1,colors:["#333"]},fill:{opacity:1},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(t){var i=t.seriesIndex,a=t.dataPointIndex,s=t.w;return e._getBoxTooltip(s,i,a,["Open","High","","Low","Close"],"candlestick")}},states:{active:{filter:{type:"none"}}},xaxis:{crosshairs:{width:1}}}}},{key:"boxPlot",value:function(){var e=this;return{chart:{animations:{dynamicAnimation:{enabled:!1}}},stroke:{width:1,colors:["#24292e"]},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(t){var i=t.seriesIndex,a=t.dataPointIndex,s=t.w;return e._getBoxTooltip(s,i,a,["Minimum","Q1","Median","Q3","Maximum"],"boxPlot")}},markers:{size:7,strokeWidth:1,strokeColors:"#111"},xaxis:{crosshairs:{width:1}}}}},{key:"rangeBar",value:function(){return{chart:{animations:{animateGradually:!1}},stroke:{width:0,lineCap:"square"},plotOptions:{bar:{borderRadius:0,dataLabels:{position:"center"}}},dataLabels:{enabled:!1,formatter:function(e,t){t.ctx;var i=t.seriesIndex,a=t.dataPointIndex,s=t.w,r=function(){var n=s.globals.seriesRangeStart[i][a];return s.globals.seriesRangeEnd[i][a]-n};return s.globals.comboCharts?s.config.series[i].type==="rangeBar"||s.config.series[i].type==="rangeArea"?r():e:r()},background:{enabled:!1},style:{colors:["#fff"]}},markers:{size:10},tooltip:{shared:!1,followCursor:!0,custom:function(e){return e.w.config.plotOptions&&e.w.config.plotOptions.bar&&e.w.config.plotOptions.bar.horizontal?function(t){var i=Ci(R(R({},t),{},{isTimeline:!0})),a=i.color,s=i.seriesName,r=i.ylabel,n=i.startVal,l=i.endVal;return Si(R(R({},t),{},{color:a,seriesName:s,ylabel:r,start:n,end:l}))}(e):function(t){var i=Ci(t),a=i.color,s=i.seriesName,r=i.ylabel,n=i.start,l=i.end;return Si(R(R({},t),{},{color:a,seriesName:s,ylabel:r,start:n,end:l}))}(e)}},xaxis:{tickPlacement:"between",tooltip:{enabled:!1},crosshairs:{stroke:{width:0}}}}}},{key:"dumbbell",value:function(e){var t,i;return(t=e.plotOptions.bar)!==null&&t!==void 0&&t.barHeight||(e.plotOptions.bar.barHeight=2),(i=e.plotOptions.bar)!==null&&i!==void 0&&i.columnWidth||(e.plotOptions.bar.columnWidth=2),e}},{key:"area",value:function(){return{stroke:{width:4,fill:{type:"solid",gradient:{inverseColors:!1,shade:"light",type:"vertical",opacityFrom:.65,opacityTo:.5,stops:[0,100,100]}}},fill:{type:"gradient",gradient:{inverseColors:!1,shade:"light",type:"vertical",opacityFrom:.65,opacityTo:.5,stops:[0,100,100]}},markers:{size:0,hover:{sizeOffset:6}},tooltip:{followCursor:!1}}}},{key:"rangeArea",value:function(){return{stroke:{curve:"straight",width:0},fill:{type:"solid",opacity:.6},markers:{size:0},states:{hover:{filter:{type:"none"}},active:{filter:{type:"none"}}},tooltip:{intersect:!1,shared:!0,followCursor:!0,custom:function(e){return function(t){var i=Ci(t),a=i.color,s=i.seriesName,r=i.ylabel,n=i.start,l=i.end;return Si(R(R({},t),{},{color:a,seriesName:s,ylabel:r,start:n,end:l}))}(e)}}}}},{key:"brush",value:function(e){return M.extend(e,{chart:{toolbar:{autoSelected:"selection",show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1},stroke:{width:1},tooltip:{enabled:!1},xaxis:{tooltip:{enabled:!1}}})}},{key:"stacked100",value:function(e){e.dataLabels=e.dataLabels||{},e.dataLabels.formatter=e.dataLabels.formatter||void 0;var t=e.dataLabels.formatter;return e.yaxis.forEach(function(i,a){e.yaxis[a].min=0,e.yaxis[a].max=100}),e.chart.type==="bar"&&(e.dataLabels.formatter=t||function(i){return typeof i=="number"&&i?i.toFixed(0)+"%":i}),e}},{key:"stackedBars",value:function(){var e=this.bar();return R(R({},e),{},{plotOptions:R(R({},e.plotOptions),{},{bar:R(R({},e.plotOptions.bar),{},{borderRadiusApplication:"end",borderRadiusWhenStacked:"last"})})})}},{key:"convertCatToNumeric",value:function(e){return e.xaxis.convertedCatToNumeric=!0,e}},{key:"convertCatToNumericXaxis",value:function(e,t,i){e.xaxis.type="numeric",e.xaxis.labels=e.xaxis.labels||{},e.xaxis.labels.formatter=e.xaxis.labels.formatter||function(r){return M.isNumber(r)?Math.floor(r):r};var a=e.xaxis.labels.formatter,s=e.xaxis.categories&&e.xaxis.categories.length?e.xaxis.categories:e.labels;return i&&i.length&&(s=i.map(function(r){return Array.isArray(r)?r:String(r)})),s&&s.length&&(e.xaxis.labels.formatter=function(r){return M.isNumber(r)?a(s[Math.floor(r)-1]):a(r)}),e.xaxis.categories=[],e.labels=[],e.xaxis.tickAmount=e.xaxis.tickAmount||"dataPoints",e}},{key:"bubble",value:function(){return{dataLabels:{style:{colors:["#fff"]}},tooltip:{shared:!1,intersect:!0},xaxis:{crosshairs:{width:0}},fill:{type:"solid",gradient:{shade:"light",inverse:!0,shadeIntensity:.55,opacityFrom:.4,opacityTo:.8}}}}},{key:"scatter",value:function(){return{dataLabels:{enabled:!1},tooltip:{shared:!1,intersect:!0},markers:{size:6,strokeWidth:1,hover:{sizeOffset:2}}}}},{key:"heatmap",value:function(){return{chart:{stacked:!1},fill:{opacity:1},dataLabels:{style:{colors:["#fff"]}},stroke:{colors:["#fff"]},tooltip:{followCursor:!0,marker:{show:!1},x:{show:!1}},legend:{position:"top",markers:{shape:"square"}},grid:{padding:{right:20}}}}},{key:"treemap",value:function(){return{chart:{zoom:{enabled:!1}},dataLabels:{style:{fontSize:14,fontWeight:600,colors:["#fff"]}},stroke:{show:!0,width:2,colors:["#fff"]},legend:{show:!1},fill:{opacity:1,gradient:{stops:[0,100]}},tooltip:{followCursor:!0,x:{show:!1}},grid:{padding:{left:0,right:0}},xaxis:{crosshairs:{show:!1},tooltip:{enabled:!1}}}}},{key:"pie",value:function(){return{chart:{toolbar:{show:!1}},plotOptions:{pie:{donut:{labels:{show:!1}}}},dataLabels:{formatter:function(e){return e.toFixed(1)+"%"},style:{colors:["#fff"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:["#fff"]},fill:{opacity:1,gradient:{shade:"light",stops:[0,100]}},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"},grid:{padding:{left:0,right:0,top:0,bottom:0}}}}},{key:"donut",value:function(){return{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(e){return e.toFixed(1)+"%"},style:{colors:["#fff"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:["#fff"]},fill:{opacity:1,gradient:{shade:"light",shadeIntensity:.35,stops:[80,100],opacityFrom:1,opacityTo:1}},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"},grid:{padding:{left:0,right:0,top:0,bottom:0}}}}},{key:"polarArea",value:function(){return{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(e){return e.toFixed(1)+"%"},enabled:!1},stroke:{show:!0,width:2},fill:{opacity:.7},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"},grid:{padding:{left:0,right:0,top:0,bottom:0}}}}},{key:"radar",value:function(){return this.opts.yaxis[0].labels.offsetY=this.opts.yaxis[0].labels.offsetY?this.opts.yaxis[0].labels.offsetY:6,{dataLabels:{enabled:!1,style:{fontSize:"11px"}},stroke:{width:2},markers:{size:5,strokeWidth:1,strokeOpacity:1},fill:{opacity:.2},tooltip:{shared:!1,intersect:!0,followCursor:!0},grid:{show:!1,padding:{left:0,right:0,top:0,bottom:0}},xaxis:{labels:{formatter:function(e){return e},style:{colors:["#a8a8a8"],fontSize:"11px"}},tooltip:{enabled:!1},crosshairs:{show:!1}}}}},{key:"radialBar",value:function(){return{chart:{animations:{dynamicAnimation:{enabled:!0,speed:800}},toolbar:{show:!1}},fill:{gradient:{shade:"dark",shadeIntensity:.4,inverseColors:!1,type:"diagonal2",opacityFrom:1,opacityTo:1,stops:[70,98,100]}},legend:{show:!1,position:"right"},tooltip:{enabled:!1,fillSeriesColor:!0},grid:{padding:{left:0,right:0,top:0,bottom:0}}}}},{key:"_getBoxTooltip",value:function(e,t,i,a,s){var r=e.globals.seriesCandleO[t][i],n=e.globals.seriesCandleH[t][i],l=e.globals.seriesCandleM[t][i],h=e.globals.seriesCandleL[t][i],d=e.globals.seriesCandleC[t][i];return e.config.series[t].type&&e.config.series[t].type!==s?`
    + `.concat(e.config.series[t].name?e.config.series[t].name:"series-"+(t+1),": ").concat(e.globals.series[t][i],` +
    `):'
    ')+"
    ".concat(a[0],': ')+r+"
    "+"
    ".concat(a[1],': ')+n+"
    "+(l?"
    ".concat(a[2],': ')+l+"
    ":"")+"
    ".concat(a[3],': ')+h+"
    "+"
    ".concat(a[4],': ')+d+"
    "}}]),o}(),Rt=function(){function o(e){Y(this,o),this.opts=e}return H(o,[{key:"init",value:function(e){var t=e.responsiveOverride,i=this.opts,a=new it,s=new _t(i);this.chartType=i.chart.type,i=this.extendYAxis(i),i=this.extendAnnotations(i);var r=a.init(),n={};if(i&&ft(i)==="object"){var l,h,d,c,u,g,p,f,x,m,b={};b=["line","area","bar","candlestick","boxPlot","rangeBar","rangeArea","bubble","scatter","heatmap","treemap","pie","polarArea","donut","radar","radialBar"].indexOf(i.chart.type)!==-1?s[i.chart.type]():s.line(),(l=i.plotOptions)!==null&&l!==void 0&&(h=l.bar)!==null&&h!==void 0&&h.isFunnel&&(b=s.funnel()),i.chart.stacked&&i.chart.type==="bar"&&(b=s.stackedBars()),(d=i.chart.brush)!==null&&d!==void 0&&d.enabled&&(b=s.brush(b)),(c=i.plotOptions)!==null&&c!==void 0&&(u=c.line)!==null&&u!==void 0&&u.isSlopeChart&&(b=s.slope()),i.chart.stacked&&i.chart.stackType==="100%"&&(i=s.stacked100(i)),(g=i.plotOptions)!==null&&g!==void 0&&(p=g.bar)!==null&&p!==void 0&&p.isDumbbell&&(i=s.dumbbell(i)),this.checkForDarkTheme(window.Apex),this.checkForDarkTheme(i),i.xaxis=i.xaxis||window.Apex.xaxis||{},t||(i.xaxis.convertedCatToNumeric=!1),((f=(i=this.checkForCatToNumericXAxis(this.chartType,b,i)).chart.sparkline)!==null&&f!==void 0&&f.enabled||(x=window.Apex.chart)!==null&&x!==void 0&&(m=x.sparkline)!==null&&m!==void 0&&m.enabled)&&(b=s.sparkline(b)),n=M.extend(r,b)}var v=M.extend(n,window.Apex);return r=M.extend(v,i),r=this.handleUserInputErrors(r)}},{key:"checkForCatToNumericXAxis",value:function(e,t,i){var a,s,r=new _t(i),n=(e==="bar"||e==="boxPlot")&&((a=i.plotOptions)===null||a===void 0||(s=a.bar)===null||s===void 0?void 0:s.horizontal),l=e==="pie"||e==="polarArea"||e==="donut"||e==="radar"||e==="radialBar"||e==="heatmap",h=i.xaxis.type!=="datetime"&&i.xaxis.type!=="numeric",d=i.xaxis.tickPlacement?i.xaxis.tickPlacement:t.xaxis&&t.xaxis.tickPlacement;return n||l||!h||d==="between"||(i=r.convertCatToNumeric(i)),i}},{key:"extendYAxis",value:function(e,t){var i=new it;(e.yaxis===void 0||!e.yaxis||Array.isArray(e.yaxis)&&e.yaxis.length===0)&&(e.yaxis={}),e.yaxis.constructor!==Array&&window.Apex.yaxis&&window.Apex.yaxis.constructor!==Array&&(e.yaxis=M.extend(e.yaxis,window.Apex.yaxis)),e.yaxis.constructor!==Array?e.yaxis=[M.extend(i.yAxis,e.yaxis)]:e.yaxis=M.extendArray(e.yaxis,i.yAxis);var a=!1;e.yaxis.forEach(function(r){r.logarithmic&&(a=!0)});var s=e.series;return t&&!s&&(s=t.config.series),a&&s.length!==e.yaxis.length&&s.length&&(e.yaxis=s.map(function(r,n){if(r.name||(s[n].name="series-".concat(n+1)),e.yaxis[n])return e.yaxis[n].seriesName=s[n].name,e.yaxis[n];var l=M.extend(i.yAxis,e.yaxis[0]);return l.show=!1,l})),a&&s.length>1&&s.length!==e.yaxis.length&&console.warn("A multi-series logarithmic chart should have equal number of series and y-axes"),e}},{key:"extendAnnotations",value:function(e){return e.annotations===void 0&&(e.annotations={},e.annotations.yaxis=[],e.annotations.xaxis=[],e.annotations.points=[]),e=this.extendYAxisAnnotations(e),e=this.extendXAxisAnnotations(e),e=this.extendPointAnnotations(e)}},{key:"extendYAxisAnnotations",value:function(e){var t=new it;return e.annotations.yaxis=M.extendArray(e.annotations.yaxis!==void 0?e.annotations.yaxis:[],t.yAxisAnnotation),e}},{key:"extendXAxisAnnotations",value:function(e){var t=new it;return e.annotations.xaxis=M.extendArray(e.annotations.xaxis!==void 0?e.annotations.xaxis:[],t.xAxisAnnotation),e}},{key:"extendPointAnnotations",value:function(e){var t=new it;return e.annotations.points=M.extendArray(e.annotations.points!==void 0?e.annotations.points:[],t.pointAnnotation),e}},{key:"checkForDarkTheme",value:function(e){e.theme&&e.theme.mode==="dark"&&(e.tooltip||(e.tooltip={}),e.tooltip.theme!=="light"&&(e.tooltip.theme="dark"),e.chart.foreColor||(e.chart.foreColor="#f6f7f8"),e.theme.palette||(e.theme.palette="palette4"))}},{key:"handleUserInputErrors",value:function(e){var t=e;if(t.tooltip.shared&&t.tooltip.intersect)throw new Error("tooltip.shared cannot be enabled when tooltip.intersect is true. Turn off any other option by setting it to false.");if(t.chart.type==="bar"&&t.plotOptions.bar.horizontal){if(t.yaxis.length>1)throw new Error("Multiple Y Axis for bars are not supported. Switch to column chart by setting plotOptions.bar.horizontal=false");t.yaxis[0].reversed&&(t.yaxis[0].opposite=!0),t.xaxis.tooltip.enabled=!1,t.yaxis[0].tooltip.enabled=!1,t.chart.zoom.enabled=!1}return t.chart.type!=="bar"&&t.chart.type!=="rangeBar"||t.tooltip.shared&&t.xaxis.crosshairs.width==="barWidth"&&t.series.length>1&&(t.xaxis.crosshairs.width="tickWidth"),t.chart.type!=="candlestick"&&t.chart.type!=="boxPlot"||t.yaxis[0].reversed&&(console.warn("Reversed y-axis in ".concat(t.chart.type," chart is not supported.")),t.yaxis[0].reversed=!1),t}}]),o}(),qs=function(){function o(){Y(this,o)}return H(o,[{key:"initGlobalVars",value:function(e){e.series=[],e.seriesCandleO=[],e.seriesCandleH=[],e.seriesCandleM=[],e.seriesCandleL=[],e.seriesCandleC=[],e.seriesRangeStart=[],e.seriesRangeEnd=[],e.seriesRange=[],e.seriesPercent=[],e.seriesGoals=[],e.seriesX=[],e.seriesZ=[],e.seriesNames=[],e.seriesTotals=[],e.seriesLog=[],e.seriesColors=[],e.stackedSeriesTotals=[],e.seriesXvalues=[],e.seriesYvalues=[],e.labels=[],e.hasXaxisGroups=!1,e.groups=[],e.barGroups=[],e.lineGroups=[],e.areaGroups=[],e.hasSeriesGroups=!1,e.seriesGroups=[],e.categoryLabels=[],e.timescaleLabels=[],e.noLabelsProvided=!1,e.resizeTimer=null,e.selectionResizeTimer=null,e.lastWheelExecution=0,e.delayedElements=[],e.pointsArray=[],e.dataLabelsRects=[],e.isXNumeric=!1,e.skipLastTimelinelabel=!1,e.skipFirstTimelinelabel=!1,e.isDataXYZ=!1,e.isMultiLineX=!1,e.isMultipleYAxis=!1,e.maxY=-Number.MAX_VALUE,e.minY=Number.MIN_VALUE,e.minYArr=[],e.maxYArr=[],e.maxX=-Number.MAX_VALUE,e.minX=Number.MAX_VALUE,e.initialMaxX=-Number.MAX_VALUE,e.initialMinX=Number.MAX_VALUE,e.maxDate=0,e.minDate=Number.MAX_VALUE,e.minZ=Number.MAX_VALUE,e.maxZ=-Number.MAX_VALUE,e.minXDiff=Number.MAX_VALUE,e.yAxisScale=[],e.xAxisScale=null,e.xAxisTicksPositions=[],e.yLabelsCoords=[],e.yTitleCoords=[],e.barPadForNumericAxis=0,e.padHorizontal=0,e.xRange=0,e.yRange=[],e.zRange=0,e.dataPoints=0,e.xTickAmount=0,e.multiAxisTickAmount=0}},{key:"globalVars",value:function(e){return{chartID:null,cuid:null,events:{beforeMount:[],mounted:[],updated:[],clicked:[],selection:[],dataPointSelection:[],zoomed:[],scrolled:[]},colors:[],clientX:null,clientY:null,fill:{colors:[]},stroke:{colors:[]},dataLabels:{style:{colors:[]}},radarPolygons:{fill:{colors:[]}},markers:{colors:[],size:e.markers.size,largestSize:0},animationEnded:!1,isTouchDevice:"ontouchstart"in window||navigator.msMaxTouchPoints,isDirty:!1,isExecCalled:!1,initialConfig:null,initialSeries:[],lastXAxis:[],lastYAxis:[],columnSeries:null,labels:[],timescaleLabels:[],noLabelsProvided:!1,allSeriesCollapsed:!1,collapsedSeries:[],collapsedSeriesIndices:[],ancillaryCollapsedSeries:[],ancillaryCollapsedSeriesIndices:[],risingSeries:[],dataFormatXNumeric:!1,capturedSeriesIndex:-1,capturedDataPointIndex:-1,selectedDataPoints:[],invalidLogScale:!1,ignoreYAxisIndexes:[],maxValsInArrayIndex:0,radialSize:0,selection:void 0,zoomEnabled:e.chart.toolbar.autoSelected==="zoom"&&e.chart.toolbar.tools.zoom&&e.chart.zoom.enabled,panEnabled:e.chart.toolbar.autoSelected==="pan"&&e.chart.toolbar.tools.pan,selectionEnabled:e.chart.toolbar.autoSelected==="selection"&&e.chart.toolbar.tools.selection,yaxis:null,mousedown:!1,lastClientPosition:{},visibleXRange:void 0,yValueDecimal:0,total:0,SVGNS:"http://www.w3.org/2000/svg",svgWidth:0,svgHeight:0,noData:!1,locale:{},dom:{},memory:{methodsToExec:[]},shouldAnimate:!0,skipLastTimelinelabel:!1,skipFirstTimelinelabel:!1,delayedElements:[],axisCharts:!0,isDataXYZ:!1,isSlopeChart:e.plotOptions.line.isSlopeChart,resized:!1,resizeTimer:null,comboCharts:!1,dataChanged:!1,previousPaths:[],allSeriesHasEqualX:!0,pointsArray:[],dataLabelsRects:[],lastDrawnDataLabelsIndexes:[],hasNullValues:!1,zoomed:!1,gridWidth:0,gridHeight:0,rotateXLabels:!1,defaultLabels:!1,xLabelFormatter:void 0,yLabelFormatters:[],xaxisTooltipFormatter:void 0,ttKeyFormatter:void 0,ttVal:void 0,ttZFormatter:void 0,LINE_HEIGHT_RATIO:1.618,xAxisLabelsHeight:0,xAxisGroupLabelsHeight:0,xAxisLabelsWidth:0,yAxisLabelsWidth:0,scaleX:1,scaleY:1,translateX:0,translateY:0,translateYAxisX:[],yAxisWidths:[],translateXAxisY:0,translateXAxisX:0,tooltip:null,niceScaleAllowedMagMsd:[[1,1,2,5,5,5,10,10,10,10,10],[1,1,2,5,5,5,10,10,10,10,10]],niceScaleDefaultTicks:[1,2,4,4,6,6,6,6,6,6,6,6,6,6,6,6,6,6,12,12,12,12,12,12,12,12,12,24],seriesYAxisMap:[],seriesYAxisReverseMap:[]}}},{key:"init",value:function(e){var t=this.globalVars(e);return this.initGlobalVars(t),t.initialConfig=M.extend({},e),t.initialSeries=M.clone(e.series),t.lastXAxis=M.clone(t.initialConfig.xaxis),t.lastYAxis=M.clone(t.initialConfig.yaxis),t}}]),o}(),Ol=function(){function o(e){Y(this,o),this.opts=e}return H(o,[{key:"init",value:function(){var e=new Rt(this.opts).init({responsiveOverride:!1});return{config:e,globals:new qs().init(e)}}}]),o}(),Ne=function(){function o(e){Y(this,o),this.ctx=e,this.w=e.w,this.opts=null,this.seriesIndex=0,this.patternIDs=[]}return H(o,[{key:"clippedImgArea",value:function(e){var t=this.w,i=t.config,a=parseInt(t.globals.gridWidth,10),s=parseInt(t.globals.gridHeight,10),r=a>s?a:s,n=e.image,l=0,h=0;e.width===void 0&&e.height===void 0?i.fill.image.width!==void 0&&i.fill.image.height!==void 0?(l=i.fill.image.width+1,h=i.fill.image.height):(l=r+1,h=r):(l=e.width,h=e.height);var d=document.createElementNS(t.globals.SVGNS,"pattern");X.setAttrs(d,{id:e.patternID,patternUnits:e.patternUnits?e.patternUnits:"userSpaceOnUse",width:l+"px",height:h+"px"});var c=document.createElementNS(t.globals.SVGNS,"image");d.appendChild(c),c.setAttributeNS(window.SVG.xlink,"href",n),X.setAttrs(c,{x:0,y:0,preserveAspectRatio:"none",width:l+"px",height:h+"px"}),c.style.opacity=e.opacity,t.globals.dom.elDefs.node.appendChild(d)}},{key:"getSeriesIndex",value:function(e){var t=this.w,i=t.config.chart.type;return(i==="bar"||i==="rangeBar")&&t.config.plotOptions.bar.distributed||i==="heatmap"||i==="treemap"?this.seriesIndex=e.seriesNumber:this.seriesIndex=e.seriesNumber%t.globals.series.length,this.seriesIndex}},{key:"computeColorStops",value:function(e,t){var i,a=this.w,s=null,r=null,n=Pt(e);try{for(n.s();!(i=n.n()).done;){var l=i.value;l>=t.threshold?(s===null||l>s)&&(s=l):(r===null||l-1?x=M.getOpacityFromRGBA(c):b=M.hexToRgba(M.rgb2hex(c),x),e.opacity&&(x=e.opacity),f==="pattern"&&(n=this.handlePatternFill({fillConfig:e.fillConfig,patternFill:n,fillColor:c,fillOpacity:x,defaultColor:b})),m){var v=ve(h.fill.gradient.colorStops)||[],k=h.fill.gradient.type;d&&(v[this.seriesIndex]=this.computeColorStops(s.globals.series[this.seriesIndex],h.plotOptions.line.colors),k="vertical"),l=this.handleGradientFill({type:k,fillConfig:e.fillConfig,fillColor:c,fillOpacity:x,colorStops:v,i:this.seriesIndex})}if(f==="image"){var w=h.fill.image.src,C=e.patternID?e.patternID:"",y="pattern".concat(s.globals.cuid).concat(e.seriesNumber+1).concat(C);this.patternIDs.indexOf(y)===-1&&(this.clippedImgArea({opacity:x,image:Array.isArray(w)?e.seriesNumber-1&&(p=M.getOpacityFromRGBA(g));var f=l.gradient.opacityTo===void 0?a:Array.isArray(l.gradient.opacityTo)?l.gradient.opacityTo[n]:l.gradient.opacityTo;if(l.gradient.gradientToColors===void 0||l.gradient.gradientToColors.length===0)u=l.gradient.shade==="dark"?c.shadeColor(-1*parseFloat(l.gradient.shadeIntensity),i.indexOf("rgb")>-1?M.rgb2hex(i):i):c.shadeColor(parseFloat(l.gradient.shadeIntensity),i.indexOf("rgb")>-1?M.rgb2hex(i):i);else if(l.gradient.gradientToColors[h.seriesNumber]){var x=l.gradient.gradientToColors[h.seriesNumber];u=x,x.indexOf("rgba")>-1&&(f=M.getOpacityFromRGBA(x))}else u=i;if(l.gradient.gradientFrom&&(g=l.gradient.gradientFrom),l.gradient.gradientTo&&(u=l.gradient.gradientTo),l.gradient.inverseColors){var m=g;g=u,u=m}return g.indexOf("rgb")>-1&&(g=M.rgb2hex(g)),u.indexOf("rgb")>-1&&(u=M.rgb2hex(u)),d.drawGradient(t,g,u,p,f,h.size,l.gradient.stops,r,n)}}]),o}(),Ct=function(){function o(e,t){Y(this,o),this.ctx=e,this.w=e.w}return H(o,[{key:"setGlobalMarkerSize",value:function(){var e=this.w;if(e.globals.markers.size=Array.isArray(e.config.markers.size)?e.config.markers.size:[e.config.markers.size],e.globals.markers.size.length>0){if(e.globals.markers.size.length4&&arguments[4]!==void 0&&arguments[4],r=this.w,n=t,l=e,h=null,d=new X(this.ctx),c=r.config.markers.discrete&&r.config.markers.discrete.length;if(Array.isArray(l.x))for(var u=0;u0:r.config.markers.size>0)||s||c){f||(x+=" w".concat(M.randomId()));var m=this.getMarkerConfig({cssClass:x,seriesIndex:t,dataPointIndex:p});r.config.series[n].data[p]&&(r.config.series[n].data[p].fillColor&&(m.pointFillColor=r.config.series[n].data[p].fillColor),r.config.series[n].data[p].strokeColor&&(m.pointStrokeColor=r.config.series[n].data[p].strokeColor)),a!==void 0&&(m.pSize=a),(l.x[u]<-r.globals.markers.largestSize||l.x[u]>r.globals.gridWidth+r.globals.markers.largestSize||l.y[u]<-r.globals.markers.largestSize||l.y[u]>r.globals.gridHeight+r.globals.markers.largestSize)&&(m.pSize=0),!f&&((r.globals.markers.size[t]>0||s||c)&&!h&&(h=d.group({class:s||c?"":"apexcharts-series-markers"})).attr("clip-path","url(#gridRectMarkerMask".concat(r.globals.cuid,")")),(g=d.drawMarker(l.x[u],l.y[u],m)).attr("rel",p),g.attr("j",p),g.attr("index",t),g.node.setAttribute("default-marker-size",m.pSize),new ke(this.ctx).setSelectionFilter(g,t,p),this.addEvents(g),h&&h.add(g))}else r.globals.pointsArray[t]===void 0&&(r.globals.pointsArray[t]=[]),r.globals.pointsArray[t].push([l.x[u],l.y[u]])}return h}},{key:"getMarkerConfig",value:function(e){var t=e.cssClass,i=e.seriesIndex,a=e.dataPointIndex,s=a===void 0?null:a,r=e.radius,n=r===void 0?null:r,l=e.size,h=l===void 0?null:l,d=e.strokeWidth,c=d===void 0?null:d,u=this.w,g=this.getMarkerStyle(i),p=h===null?u.globals.markers.size[i]:h,f=u.config.markers;return s!==null&&f.discrete.length&&f.discrete.map(function(x){x.seriesIndex===i&&x.dataPointIndex===s&&(g.pointStrokeColor=x.strokeColor,g.pointFillColor=x.fillColor,p=x.size,g.pointShape=x.shape)}),{pSize:n===null?p:n,pRadius:n!==null?n:f.radius,pointStrokeWidth:c!==null?c:Array.isArray(f.strokeWidth)?f.strokeWidth[i]:f.strokeWidth,pointStrokeColor:g.pointStrokeColor,pointFillColor:g.pointFillColor,shape:g.pointShape||(Array.isArray(f.shape)?f.shape[i]:f.shape),class:t,pointStrokeOpacity:Array.isArray(f.strokeOpacity)?f.strokeOpacity[i]:f.strokeOpacity,pointStrokeDashArray:Array.isArray(f.strokeDashArray)?f.strokeDashArray[i]:f.strokeDashArray,pointFillOpacity:Array.isArray(f.fillOpacity)?f.fillOpacity[i]:f.fillOpacity,seriesIndex:i}}},{key:"addEvents",value:function(e){var t=this.w,i=new X(this.ctx);e.node.addEventListener("mouseenter",i.pathMouseEnter.bind(this.ctx,e)),e.node.addEventListener("mouseleave",i.pathMouseLeave.bind(this.ctx,e)),e.node.addEventListener("mousedown",i.pathMouseDown.bind(this.ctx,e)),e.node.addEventListener("click",t.config.markers.onClick),e.node.addEventListener("dblclick",t.config.markers.onDblClick),e.node.addEventListener("touchstart",i.pathMouseDown.bind(this.ctx,e),{passive:!0})}},{key:"getMarkerStyle",value:function(e){var t=this.w,i=t.globals.markers.colors,a=t.config.markers.strokeColor||t.config.markers.strokeColors;return{pointStrokeColor:Array.isArray(a)?a[e]:a,pointFillColor:Array.isArray(i)?i[e]:i}}}]),o}(),$s=function(){function o(e){Y(this,o),this.ctx=e,this.w=e.w,this.initialAnim=this.w.config.chart.animations.enabled}return H(o,[{key:"draw",value:function(e,t,i){var a=this.w,s=new X(this.ctx),r=i.realIndex,n=i.pointsPos,l=i.zRatio,h=i.elParent,d=s.group({class:"apexcharts-series-markers apexcharts-series-".concat(a.config.chart.type)});if(d.attr("clip-path","url(#gridRectMarkerMask".concat(a.globals.cuid,")")),Array.isArray(n.x))for(var c=0;cf.maxBubbleRadius&&(p=f.maxBubbleRadius)}var x=n.x[c],m=n.y[c];if(p=p||0,m!==null&&a.globals.series[r][u]!==void 0||(g=!1),g){var b=this.drawPoint(x,m,p,r,u,t);d.add(b)}h.add(d)}}},{key:"drawPoint",value:function(e,t,i,a,s,r){var n=this.w,l=a,h=new yt(this.ctx),d=new ke(this.ctx),c=new Ne(this.ctx),u=new Ct(this.ctx),g=new X(this.ctx),p=u.getMarkerConfig({cssClass:"apexcharts-marker",seriesIndex:l,dataPointIndex:s,radius:n.config.chart.type==="bubble"||n.globals.comboCharts&&n.config.series[a]&&n.config.series[a].type==="bubble"?i:null}),f=c.fillPath({seriesNumber:a,dataPointIndex:s,color:p.pointFillColor,patternUnits:"objectBoundingBox",value:n.globals.series[a][r]}),x=g.drawMarker(e,t,p);if(n.config.series[l].data[s]&&n.config.series[l].data[s].fillColor&&(f=n.config.series[l].data[s].fillColor),x.attr({fill:f}),n.config.chart.dropShadow.enabled){var m=n.config.chart.dropShadow;d.dropShadow(x,m,a)}if(!this.initialAnim||n.globals.dataChanged||n.globals.resized)n.globals.animationEnded=!0;else{var b=n.config.chart.animations.speed;h.animateMarker(x,b,n.globals.easing,function(){window.setTimeout(function(){h.animationCompleted(x)},100)})}return x.attr({rel:s,j:s,index:a,"default-marker-size":p.pSize}),d.setSelectionFilter(x,a,s),u.addEvents(x),x.node.classList.add("apexcharts-marker"),x}},{key:"centerTextInBubble",value:function(e){var t=this.w;return{y:e+=parseInt(t.config.dataLabels.style.fontSize,10)/4}}}]),o}(),xt=function(){function o(e){Y(this,o),this.ctx=e,this.w=e.w}return H(o,[{key:"dataLabelsCorrection",value:function(e,t,i,a,s,r,n){var l=this.w,h=!1,d=new X(this.ctx).getTextRects(i,n),c=d.width,u=d.height;t<0&&(t=0),t>l.globals.gridHeight+u&&(t=l.globals.gridHeight+u/2),l.globals.dataLabelsRects[a]===void 0&&(l.globals.dataLabelsRects[a]=[]),l.globals.dataLabelsRects[a].push({x:e,y:t,width:c,height:u});var g=l.globals.dataLabelsRects[a].length-2,p=l.globals.lastDrawnDataLabelsIndexes[a]!==void 0?l.globals.lastDrawnDataLabelsIndexes[a][l.globals.lastDrawnDataLabelsIndexes[a].length-1]:0;if(l.globals.dataLabelsRects[a][g]!==void 0){var f=l.globals.dataLabelsRects[a][p];(e>f.x+f.width||t>f.y+f.height||t+ut.globals.gridWidth+b.textRects.width+30)&&(l="");var v=t.globals.dataLabels.style.colors[r];((t.config.chart.type==="bar"||t.config.chart.type==="rangeBar")&&t.config.plotOptions.bar.distributed||t.config.dataLabels.distributed)&&(v=t.globals.dataLabels.style.colors[n]),typeof v=="function"&&(v=v({series:t.globals.series,seriesIndex:r,dataPointIndex:n,w:t})),g&&(v=g);var k=u.offsetX,w=u.offsetY;if(t.config.chart.type!=="bar"&&t.config.chart.type!=="rangeBar"||(k=0,w=0),t.globals.isSlopeChart&&(n!==0&&(k=-2*u.offsetX+5),n!==0&&n!==t.config.series[r].data.length-1&&(k=0)),b.drawnextLabel){if((m=i.drawText({width:100,height:parseInt(u.style.fontSize,10),x:a+k,y:s+w,foreColor:v,textAnchor:h||u.textAnchor,text:l,fontSize:d||u.style.fontSize,fontFamily:u.style.fontFamily,fontWeight:u.style.fontWeight||"normal"})).attr({class:x||"apexcharts-datalabel",cx:a,cy:s}),u.dropShadow.enabled){var C=u.dropShadow;new ke(this.ctx).dropShadow(m,C)}c.add(m),t.globals.lastDrawnDataLabelsIndexes[r]===void 0&&(t.globals.lastDrawnDataLabelsIndexes[r]=[]),t.globals.lastDrawnDataLabelsIndexes[r].push(n)}return m}},{key:"addBackgroundToDataLabel",value:function(e,t){var i=this.w,a=i.config.dataLabels.background,s=a.padding,r=a.padding/2,n=t.width,l=t.height,h=new X(this.ctx).drawRect(t.x-s,t.y-r/2,n+2*s,l+r,a.borderRadius,i.config.chart.background!=="transparent"&&i.config.chart.background?i.config.chart.background:"#fff",a.opacity,a.borderWidth,a.borderColor);return a.dropShadow.enabled&&new ke(this.ctx).dropShadow(h,a.dropShadow),h}},{key:"dataLabelsBackground",value:function(){var e=this.w;if(e.config.chart.type!=="bubble")for(var t=e.globals.dom.baseEl.querySelectorAll(".apexcharts-datalabels text"),i=0;i0&&arguments[0]!==void 0)||arguments[0],t=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],i=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],a=this.w,s=M.clone(a.globals.initialSeries);a.globals.previousPaths=[],i?(a.globals.collapsedSeries=[],a.globals.ancillaryCollapsedSeries=[],a.globals.collapsedSeriesIndices=[],a.globals.ancillaryCollapsedSeriesIndices=[]):s=this.emptyCollapsedSeries(s),a.config.series=s,e&&(t&&(a.globals.zoomed=!1,this.ctx.updateHelpers.revertDefaultAxisMinMax()),this.ctx.updateHelpers._updateSeries(s,a.config.chart.animations.dynamicAnimation.enabled))}},{key:"emptyCollapsedSeries",value:function(e){for(var t=this.w,i=0;i-1&&(e[i].data=[]);return e}},{key:"highlightSeries",value:function(e){var t=this.w,i=this.getSeriesByName(e),a=parseInt(i==null?void 0:i.getAttribute("data:realIndex"),10),s=t.globals.dom.baseEl.querySelectorAll(".apexcharts-series, .apexcharts-datalabels, .apexcharts-yaxis"),r=null,n=null,l=null;if(t.globals.axisCharts||t.config.chart.type==="radialBar")if(t.globals.axisCharts){r=t.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(a,"']")),n=t.globals.dom.baseEl.querySelector(".apexcharts-datalabels[data\\:realIndex='".concat(a,"']"));var h=t.globals.seriesYAxisReverseMap[a];l=t.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(h,"']"))}else r=t.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(a+1,"']"));else r=t.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(a+1,"'] path"));for(var d=0;d=h.from&&(u0&&arguments[0]!==void 0?arguments[0]:"asc",t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],i=this.w,a=0;if(i.config.series.length>1){for(var s=i.config.series.map(function(n,l){return n.data&&n.data.length>0&&i.globals.collapsedSeriesIndices.indexOf(l)===-1&&(!i.globals.comboCharts||t.length===0||t.length&&t.indexOf(i.config.series[l].type)>-1)?l:-1}),r=e==="asc"?0:s.length-1;e==="asc"?r=0;e==="asc"?r++:r--)if(s[r]!==-1){a=s[r];break}}return a}},{key:"getBarSeriesIndices",value:function(){return this.w.globals.comboCharts?this.w.config.series.map(function(e,t){return e.type==="bar"||e.type==="column"?t:-1}).filter(function(e){return e!==-1}):this.w.config.series.map(function(e,t){return t})}},{key:"getPreviousPaths",value:function(){var e=this.w;function t(r,n,l){for(var h=r[n].childNodes,d={type:l,paths:[],realIndex:r[n].getAttribute("data:realIndex")},c=0;c0)for(var a=function(r){for(var n=e.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(e.config.chart.type," .apexcharts-series[data\\:realIndex='").concat(r,"'] rect")),l=[],h=function(c){var u=function(p){return n[c].getAttribute(p)},g={x:parseFloat(u("x")),y:parseFloat(u("y")),width:parseFloat(u("width")),height:parseFloat(u("height"))};l.push({rect:g,color:n[c].getAttribute("color")})},d=0;d0?t:[]});return e}}]),o}(),fa=function(){function o(e){Y(this,o),this.ctx=e,this.w=e.w,this.twoDSeries=[],this.threeDSeries=[],this.twoDSeriesX=[],this.seriesGoals=[],this.coreUtils=new be(this.ctx)}return H(o,[{key:"isMultiFormat",value:function(){return this.isFormatXY()||this.isFormat2DArray()}},{key:"isFormatXY",value:function(){var e=this.w.config.series.slice(),t=new He(this.ctx);if(this.activeSeriesIndex=t.getActiveConfigSeriesIndex(),e[this.activeSeriesIndex].data!==void 0&&e[this.activeSeriesIndex].data.length>0&&e[this.activeSeriesIndex].data[0]!==null&&e[this.activeSeriesIndex].data[0].x!==void 0&&e[this.activeSeriesIndex].data[0]!==null)return!0}},{key:"isFormat2DArray",value:function(){var e=this.w.config.series.slice(),t=new He(this.ctx);if(this.activeSeriesIndex=t.getActiveConfigSeriesIndex(),e[this.activeSeriesIndex].data!==void 0&&e[this.activeSeriesIndex].data.length>0&&e[this.activeSeriesIndex].data[0]!==void 0&&e[this.activeSeriesIndex].data[0]!==null&&e[this.activeSeriesIndex].data[0].constructor===Array)return!0}},{key:"handleFormat2DArray",value:function(e,t){for(var i=this.w.config,a=this.w.globals,s=i.chart.type==="boxPlot"||i.series[t].type==="boxPlot",r=0;r=5?this.twoDSeries.push(M.parseNumber(e[t].data[r][4])):this.twoDSeries.push(M.parseNumber(e[t].data[r][1])),a.dataFormatXNumeric=!0),i.xaxis.type==="datetime"){var n=new Date(e[t].data[r][0]);n=new Date(n).getTime(),this.twoDSeriesX.push(n)}else this.twoDSeriesX.push(e[t].data[r][0]);for(var l=0;l-1&&(r=this.activeSeriesIndex);for(var n=0;n1&&arguments[1]!==void 0?arguments[1]:this.ctx,a=this.w.config,s=this.w.globals,r=new we(i),n=a.labels.length>0?a.labels.slice():a.xaxis.categories.slice();s.isRangeBar=a.chart.type==="rangeBar"&&s.isBarHorizontal,s.hasXaxisGroups=a.xaxis.type==="category"&&a.xaxis.group.groups.length>0,s.hasXaxisGroups&&(s.groups=a.xaxis.group.groups),e.forEach(function(g,p){g.name!==void 0?s.seriesNames.push(g.name):s.seriesNames.push("series-"+parseInt(p+1,10))}),this.coreUtils.setSeriesYAxisMappings();var l=[],h=ve(new Set(a.series.map(function(g){return g.group})));a.series.forEach(function(g,p){var f=h.indexOf(g.group);l[f]||(l[f]=[]),l[f].push(s.seriesNames[p])}),s.seriesGroups=l;for(var d=function(){for(var g=0;g0&&(this.twoDSeriesX=n,s.seriesX.push(this.twoDSeriesX))),s.labels.push(this.twoDSeriesX);var u=e[c].data.map(function(g){return M.parseNumber(g)});s.series.push(u)}s.seriesZ.push(this.threeDSeries),e[c].color!==void 0?s.seriesColors.push(e[c].color):s.seriesColors.push(void 0)}return this.w}},{key:"parseDataNonAxisCharts",value:function(e){var t=this.w.globals,i=this.w.config;t.series=e.slice(),t.seriesNames=i.labels.slice();for(var a=0;a0?i.labels=t.xaxis.categories:t.labels.length>0?i.labels=t.labels.slice():this.fallbackToCategory?(i.labels=i.labels[0],i.seriesRange.length&&(i.seriesRange.map(function(a){a.forEach(function(s){i.labels.indexOf(s.x)<0&&s.x&&i.labels.push(s.x)})}),i.labels=Array.from(new Set(i.labels.map(JSON.stringify)),JSON.parse)),t.xaxis.convertedCatToNumeric&&(new _t(t).convertCatToNumericXaxis(t,this.ctx,i.seriesX[0]),this._generateExternalLabels(e))):this._generateExternalLabels(e)}},{key:"_generateExternalLabels",value:function(e){var t=this.w.globals,i=this.w.config,a=[];if(t.axisCharts){if(t.series.length>0)if(this.isFormatXY())for(var s=i.series.map(function(c,u){return c.data.filter(function(g,p,f){return f.findIndex(function(x){return x.x===g.x})===p})}),r=s.reduce(function(c,u,g,p){return p[c].length>u.length?c:g},0),n=0;n0&&s==i.length&&t.push(a)}),e.globals.ignoreYAxisIndexes=t.map(function(i){return i})}}]),o}(),ai=function(){function o(e){Y(this,o),this.ctx=e,this.w=e.w}return H(o,[{key:"scaleSvgNode",value:function(e,t){var i=parseFloat(e.getAttributeNS(null,"width")),a=parseFloat(e.getAttributeNS(null,"height"));e.setAttributeNS(null,"width",i*t),e.setAttributeNS(null,"height",a*t),e.setAttributeNS(null,"viewBox","0 0 "+i+" "+a)}},{key:"getSvgString",value:function(){var e=this;return new Promise(function(t){var i=e.w,a=i.config.chart.toolbar.export.width,s=i.config.chart.toolbar.export.scale||a/i.globals.svgWidth;s||(s=1);var r=e.w.globals.dom.Paper.svg(),n=e.w.globals.dom.Paper.node.cloneNode(!0);s!==1&&e.scaleSvgNode(n,s),e.convertImagesToBase64(n).then(function(){r=new XMLSerializer().serializeToString(n),t(r.replace(/ /g," "))})})}},{key:"convertImagesToBase64",value:function(e){var t=this,i=e.getElementsByTagName("image"),a=Array.from(i).map(function(s){var r=s.getAttributeNS("http://www.w3.org/1999/xlink","href");return r&&!r.startsWith("data:")?t.getBase64FromUrl(r).then(function(n){s.setAttributeNS("http://www.w3.org/1999/xlink","href",n)}).catch(function(n){console.error("Error converting image to base64:",n)}):Promise.resolve()});return Promise.all(a)}},{key:"getBase64FromUrl",value:function(e){return new Promise(function(t,i){var a=new Image;a.crossOrigin="Anonymous",a.onload=function(){var s=document.createElement("canvas");s.width=a.width,s.height=a.height,s.getContext("2d").drawImage(a,0,0),t(s.toDataURL())},a.onerror=i,a.src=e})}},{key:"cleanup",value:function(){var e=this.w,t=e.globals.dom.baseEl.getElementsByClassName("apexcharts-xcrosshairs"),i=e.globals.dom.baseEl.getElementsByClassName("apexcharts-ycrosshairs"),a=e.globals.dom.baseEl.querySelectorAll(".apexcharts-zoom-rect, .apexcharts-selection-rect");Array.prototype.forEach.call(a,function(s){s.setAttribute("width",0)}),t&&t[0]&&(t[0].setAttribute("x",-500),t[0].setAttribute("x1",-500),t[0].setAttribute("x2",-500)),i&&i[0]&&(i[0].setAttribute("y",-100),i[0].setAttribute("y1",-100),i[0].setAttribute("y2",-100))}},{key:"svgUrl",value:function(){var e=this;return new Promise(function(t){e.cleanup(),e.getSvgString().then(function(i){var a=new Blob([i],{type:"image/svg+xml;charset=utf-8"});t(URL.createObjectURL(a))})})}},{key:"dataURI",value:function(e){var t=this;return new Promise(function(i){var a=t.w,s=e?e.scale||e.width/a.globals.svgWidth:1;t.cleanup();var r=document.createElement("canvas");r.width=a.globals.svgWidth*s,r.height=parseInt(a.globals.dom.elWrap.style.height,10)*s;var n=a.config.chart.background!=="transparent"&&a.config.chart.background?a.config.chart.background:"#fff",l=r.getContext("2d");l.fillStyle=n,l.fillRect(0,0,r.width*s,r.height*s),t.getSvgString().then(function(h){var d="data:image/svg+xml,"+encodeURIComponent(h),c=new Image;c.crossOrigin="anonymous",c.onload=function(){if(l.drawImage(c,0,0),r.msToBlob){var u=r.msToBlob();i({blob:u})}else{var g=r.toDataURL("image/png");i({imgURI:g})}},c.src=d})})}},{key:"exportToSVG",value:function(){var e=this;this.svgUrl().then(function(t){e.triggerDownload(t,e.w.config.chart.toolbar.export.svg.filename,".svg")})}},{key:"exportToPng",value:function(){var e=this,t=this.w.config.chart.toolbar.export.scale,i=this.w.config.chart.toolbar.export.width,a=t?{scale:t}:i?{width:i}:void 0;this.dataURI(a).then(function(s){var r=s.imgURI,n=s.blob;n?navigator.msSaveOrOpenBlob(n,e.w.globals.chartID+".png"):e.triggerDownload(r,e.w.config.chart.toolbar.export.png.filename,".png")})}},{key:"exportToCSV",value:function(e){var t=this,i=e.series,a=e.fileName,s=e.columnDelimiter,r=s===void 0?",":s,n=e.lineDelimiter,l=n===void 0?` +`:n,h=this.w;i||(i=h.config.series);var d=[],c=[],u="",g=h.globals.series.map(function(w,C){return h.globals.collapsedSeriesIndices.indexOf(C)===-1?w:[]}),p=function(w){return typeof h.config.chart.toolbar.export.csv.categoryFormatter=="function"?h.config.chart.toolbar.export.csv.categoryFormatter(w):h.config.xaxis.type==="datetime"&&String(w).length>=10?new Date(w).toDateString():M.isNumber(w)?w:w.split(r).join("")},f=function(w){return typeof h.config.chart.toolbar.export.csv.valueFormatter=="function"?h.config.chart.toolbar.export.csv.valueFormatter(w):w},x=Math.max.apply(Math,ve(i.map(function(w){return w.data?w.data.length:0}))),m=new fa(this.ctx),b=new Qe(this.ctx),v=function(w){var C="";if(h.globals.axisCharts){if(h.config.xaxis.type==="category"||h.config.xaxis.convertedCatToNumeric)if(h.globals.isBarHorizontal){var y=h.globals.yLabelFormatters[0],A=new He(t.ctx).getActiveConfigSeriesIndex();C=y(h.globals.labels[w],{seriesIndex:A,dataPointIndex:w,w:h})}else C=b.getLabel(h.globals.labels,h.globals.timescaleLabels,0,w).text;h.config.xaxis.type==="datetime"&&(h.config.xaxis.categories.length?C=h.config.xaxis.categories[w]:h.config.labels.length&&(C=h.config.labels[w]))}else C=h.config.labels[w];return C===null?"nullvalue":(Array.isArray(C)&&(C=C.join(" ")),M.isNumber(C)?C:C.split(r).join(""))},k=function(w,C){if(d.length&&C===0&&c.push(d.join(r)),w.data){w.data=w.data.length&&w.data||ve(Array(x)).map(function(){return""});for(var y=0;y0&&!i.globals.isBarHorizontal&&(this.xaxisLabels=i.globals.timescaleLabels.slice()),i.config.xaxis.overwriteCategories&&(this.xaxisLabels=i.config.xaxis.overwriteCategories),this.drawnLabels=[],this.drawnLabelsRects=[],i.config.xaxis.position==="top"?this.offY=0:this.offY=i.globals.gridHeight,this.offY=this.offY+i.config.xaxis.axisBorder.offsetY,this.isCategoryBarHorizontal=i.config.chart.type==="bar"&&i.config.plotOptions.bar.horizontal,this.xaxisFontSize=i.config.xaxis.labels.style.fontSize,this.xaxisFontFamily=i.config.xaxis.labels.style.fontFamily,this.xaxisForeColors=i.config.xaxis.labels.style.colors,this.xaxisBorderWidth=i.config.xaxis.axisBorder.width,this.isCategoryBarHorizontal&&(this.xaxisBorderWidth=i.config.yaxis[0].axisBorder.width.toString()),this.xaxisBorderWidth.indexOf("%")>-1?this.xaxisBorderWidth=i.globals.gridWidth*parseInt(this.xaxisBorderWidth,10)/100:this.xaxisBorderWidth=parseInt(this.xaxisBorderWidth,10),this.xaxisBorderHeight=i.config.xaxis.axisBorder.height,this.yaxis=i.config.yaxis[0]}return H(o,[{key:"drawXaxis",value:function(){var e=this.w,t=new X(this.ctx),i=t.group({class:"apexcharts-xaxis",transform:"translate(".concat(e.config.xaxis.offsetX,", ").concat(e.config.xaxis.offsetY,")")}),a=t.group({class:"apexcharts-xaxis-texts-g",transform:"translate(".concat(e.globals.translateXAxisX,", ").concat(e.globals.translateXAxisY,")")});i.add(a);for(var s=[],r=0;r6&&arguments[6]!==void 0?arguments[6]:{},d=[],c=[],u=this.w,g=h.xaxisFontSize||this.xaxisFontSize,p=h.xaxisFontFamily||this.xaxisFontFamily,f=h.xaxisForeColors||this.xaxisForeColors,x=h.fontWeight||u.config.xaxis.labels.style.fontWeight,m=h.cssClass||u.config.xaxis.labels.style.cssClass,b=u.globals.padHorizontal,v=a.length,k=u.config.xaxis.type==="category"?u.globals.dataPoints:v;if(k===0&&v>k&&(k=v),s){var w=k>1?k-1:k;n=u.globals.gridWidth/Math.min(w,v-1),b=b+r(0,n)/2+u.config.xaxis.labels.offsetX}else n=u.globals.gridWidth/k,b=b+r(0,n)+u.config.xaxis.labels.offsetX;for(var C=function(A){var L=b-r(A,n)/2+u.config.xaxis.labels.offsetX;A===0&&v===1&&n/2===b&&k===1&&(L=u.globals.gridWidth/2);var S=l.axesUtils.getLabel(a,u.globals.timescaleLabels,L,A,d,g,e),P=28;if(u.globals.rotateXLabels&&e&&(P=22),u.config.xaxis.title.text&&u.config.xaxis.position==="top"&&(P+=parseFloat(u.config.xaxis.title.style.fontSize)+2),e||(P=P+parseFloat(g)+(u.globals.xAxisLabelsHeight-u.globals.xAxisGroupLabelsHeight)+(u.globals.rotateXLabels?10:0)),S=u.config.xaxis.tickAmount!==void 0&&u.config.xaxis.tickAmount!=="dataPoints"&&u.config.xaxis.type!=="datetime"?l.axesUtils.checkLabelBasedOnTickamount(A,S,v):l.axesUtils.checkForOverflowingLabels(A,S,v,d,c),u.config.xaxis.labels.show){var I=t.drawText({x:S.x,y:l.offY+u.config.xaxis.labels.offsetY+P-(u.config.xaxis.position==="top"?u.globals.xAxisHeight+u.config.xaxis.axisTicks.height-2:0),text:S.text,textAnchor:"middle",fontWeight:S.isBold?600:x,fontSize:g,fontFamily:p,foreColor:Array.isArray(f)?e&&u.config.xaxis.convertedCatToNumeric?f[u.globals.minX+A-1]:f[A]:f,isPlainText:!1,cssClass:(e?"apexcharts-xaxis-label ":"apexcharts-xaxis-group-label ")+m});if(i.add(I),I.on("click",function(z){if(typeof u.config.chart.events.xAxisLabelClick=="function"){var O=Object.assign({},u,{labelIndex:A});u.config.chart.events.xAxisLabelClick(z,l.ctx,O)}}),e){var T=document.createElementNS(u.globals.SVGNS,"title");T.textContent=Array.isArray(S.text)?S.text.join(" "):S.text,I.node.appendChild(T),S.text!==""&&(d.push(S.text),c.push(S))}}Aa.globals.gridWidth)){var r=this.offY+a.config.xaxis.axisTicks.offsetY;if(t=t+r+a.config.xaxis.axisTicks.height,a.config.xaxis.position==="top"&&(t=r-a.config.xaxis.axisTicks.height),a.config.xaxis.axisTicks.show){var n=new X(this.ctx).drawLine(e+a.config.xaxis.axisTicks.offsetX,r+a.config.xaxis.offsetY,s+a.config.xaxis.axisTicks.offsetX,t+a.config.xaxis.offsetY,a.config.xaxis.axisTicks.color);i.add(n),n.node.classList.add("apexcharts-xaxis-tick")}}}},{key:"getXAxisTicksPositions",value:function(){var e=this.w,t=[],i=this.xaxisLabels.length,a=e.globals.padHorizontal;if(e.globals.timescaleLabels.length>0)for(var s=0;s0){var d=s[s.length-1].getBBox(),c=s[0].getBBox();d.x<-20&&s[s.length-1].parentNode.removeChild(s[s.length-1]),c.x+c.width>e.globals.gridWidth&&!e.globals.isBarHorizontal&&s[0].parentNode.removeChild(s[0]);for(var u=0;u0&&(this.xaxisLabels=t.globals.timescaleLabels.slice())}return H(o,[{key:"drawGridArea",value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,t=this.w,i=new X(this.ctx);e||(e=i.group({class:"apexcharts-grid"}));var a=i.drawLine(t.globals.padHorizontal,1,t.globals.padHorizontal,t.globals.gridHeight,"transparent"),s=i.drawLine(t.globals.padHorizontal,t.globals.gridHeight,t.globals.gridWidth,t.globals.gridHeight,"transparent");return e.add(s),e.add(a),e}},{key:"drawGrid",value:function(){if(this.w.globals.axisCharts){var e=this.renderGrid();return this.drawGridArea(e.el),e}return null}},{key:"createGridMask",value:function(){var e=this.w,t=e.globals,i=new X(this.ctx),a=Array.isArray(e.config.stroke.width)?Math.max.apply(Math,ve(e.config.stroke.width)):e.config.stroke.width,s=function(d){var c=document.createElementNS(t.SVGNS,"clipPath");return c.setAttribute("id",d),c};t.dom.elGridRectMask=s("gridRectMask".concat(t.cuid)),t.dom.elGridRectBarMask=s("gridRectBarMask".concat(t.cuid)),t.dom.elGridRectMarkerMask=s("gridRectMarkerMask".concat(t.cuid)),t.dom.elForecastMask=s("forecastMask".concat(t.cuid)),t.dom.elNonForecastMask=s("nonForecastMask".concat(t.cuid));var r=0,n=0;(["bar","rangeBar","candlestick","boxPlot"].includes(e.config.chart.type)||e.globals.comboBarCount>0)&&e.globals.isXNumeric&&!e.globals.isBarHorizontal&&(r=Math.max(e.config.grid.padding.left,t.barPadForNumericAxis),n=Math.max(e.config.grid.padding.right,t.barPadForNumericAxis)),t.dom.elGridRect=i.drawRect(0,0,t.gridWidth,t.gridHeight,0,"#fff"),t.dom.elGridRectBar=i.drawRect(-a/2-r-2,-a/2-2,t.gridWidth+a+n+r+4,t.gridHeight+a+4,0,"#fff");var l=e.globals.markers.largestSize;t.dom.elGridRectMarker=i.drawRect(-l,-l,t.gridWidth+2*l,t.gridHeight+2*l,0,"#fff"),t.dom.elGridRectMask.appendChild(t.dom.elGridRect.node),t.dom.elGridRectBarMask.appendChild(t.dom.elGridRectBar.node),t.dom.elGridRectMarkerMask.appendChild(t.dom.elGridRectMarker.node);var h=t.dom.baseEl.querySelector("defs");h.appendChild(t.dom.elGridRectMask),h.appendChild(t.dom.elGridRectBarMask),h.appendChild(t.dom.elGridRectMarkerMask),h.appendChild(t.dom.elForecastMask),h.appendChild(t.dom.elNonForecastMask)}},{key:"_drawGridLines",value:function(e){var t=e.i,i=e.x1,a=e.y1,s=e.x2,r=e.y2,n=e.xCount,l=e.parent,h=this.w;if(!(t===0&&h.globals.skipFirstTimelinelabel||t===n-1&&h.globals.skipLastTimelinelabel&&!h.config.xaxis.labels.formatter||h.config.chart.type==="radar")){h.config.grid.xaxis.lines.show&&this._drawGridLine({i:t,x1:i,y1:a,x2:s,y2:r,xCount:n,parent:l});var d=0;if(h.globals.hasXaxisGroups&&h.config.xaxis.tickPlacement==="between"){var c=h.globals.groups;if(c){for(var u=0,g=0;u0&&e.config.xaxis.type!=="datetime"&&(s=t.yAxisScale[a].result.length-1)),this._drawXYLines({xCount:s,tickAmount:r})}else s=r,r=t.xTickAmount,this._drawInvertedXYLines({xCount:s,tickAmount:r});return this.drawGridBands(s,r),{el:this.elg,elGridBorders:this.elGridBorders,xAxisTickWidth:t.gridWidth/s}}},{key:"drawGridBands",value:function(e,t){var i,a,s=this,r=this.w;if(((i=r.config.grid.row.colors)===null||i===void 0?void 0:i.length)>0&&function(p,f,x,m,b,v){for(var k=0,w=0;k=r.config.grid[p].colors.length&&(w=0),s._drawGridBandRect({c:w,x1:x,y1:m,x2:b,y2:v,type:p}),m+=r.globals.gridHeight/t}("row",t,0,0,r.globals.gridWidth,r.globals.gridHeight/t),((a=r.config.grid.column.colors)===null||a===void 0?void 0:a.length)>0){var n=r.globals.isBarHorizontal||r.config.xaxis.tickPlacement!=="on"||r.config.xaxis.type!=="category"&&!r.config.xaxis.convertedCatToNumeric?e:e-1;r.globals.isXNumeric&&(n=r.globals.xAxisScale.result.length-1);for(var l=r.globals.padHorizontal,h=r.globals.padHorizontal+r.globals.gridWidth/n,d=r.globals.gridHeight,c=0,u=0;c=r.config.grid.column.colors.length&&(u=0),r.config.xaxis.type==="datetime"&&(l=this.xaxisLabels[c].position,h=(((g=this.xaxisLabels[c+1])===null||g===void 0?void 0:g.position)||r.globals.gridWidth)-this.xaxisLabels[c].position),this._drawGridBandRect({c:u,x1:l,y1:0,x2:h,y2:d,type:"column"}),l+=r.globals.gridWidth/n}}}}]),o}(),Js=function(){function o(e){Y(this,o),this.ctx=e,this.w=e.w,this.coreUtils=new be(this.ctx)}return H(o,[{key:"niceScale",value:function(e,t){var i,a,s,r,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,l=1e-11,h=this.w,d=h.globals;d.isBarHorizontal?(i=h.config.xaxis,a=Math.max((d.svgWidth-100)/25,2)):(i=h.config.yaxis[n],a=Math.max((d.svgHeight-100)/15,2)),M.isNumber(a)||(a=10),s=i.min!==void 0&&i.min!==null,r=i.max!==void 0&&i.min!==null;var c=i.stepSize!==void 0&&i.stepSize!==null,u=i.tickAmount!==void 0&&i.tickAmount!==null,g=u?i.tickAmount:d.niceScaleDefaultTicks[Math.min(Math.round(a/2),d.niceScaleDefaultTicks.length-1)];if(d.isMultipleYAxis&&!u&&d.multiAxisTickAmount>0&&(g=d.multiAxisTickAmount,u=!0),g=g==="dataPoints"?d.dataPoints-1:Math.abs(Math.round(g)),(e===Number.MIN_VALUE&&t===0||!M.isNumber(e)&&!M.isNumber(t)||e===Number.MIN_VALUE&&t===-Number.MAX_VALUE)&&(e=M.isNumber(i.min)?i.min:0,t=M.isNumber(i.max)?i.max:e+g,d.allSeriesCollapsed=!1),e>t){console.warn("axis.min cannot be greater than axis.max: swapping min and max");var p=t;t=e,e=p}else e===t&&(e=e===0?0:e-1,t=t===0?2:t+1);var f=[];g<1&&(g=1);var x=g,m=Math.abs(t-e);!s&&e>0&&e/m<.15&&(e=0,s=!0),!r&&t<0&&-t/m<.15&&(t=0,r=!0);var b=(m=Math.abs(t-e))/x,v=b,k=Math.floor(Math.log10(v)),w=Math.pow(10,k),C=Math.ceil(v/w);if(b=v=(C=d.niceScaleAllowedMagMsd[d.yValueDecimal===0?0:1][C])*w,d.isBarHorizontal&&i.stepSize&&i.type!=="datetime"?(b=i.stepSize,c=!0):c&&(b=i.stepSize),c&&i.forceNiceScale){var y=Math.floor(Math.log10(b));b*=Math.pow(10,k-y)}if(s&&r){var A=m/x;if(u)if(c)if(M.mod(m,b)!=0){var L=M.getGCD(b,A);b=A/L<10?L:A}else M.mod(b,A)==0?b=A:(A=b,u=!1);else b=A;else if(c)M.mod(m,b)==0?A=b:b=A;else if(M.mod(m,b)==0)A=b;else{A=m/(x=Math.ceil(m/b));var S=M.getGCD(m,b);m/Sa&&(e=t-b*g,e+=b*Math.floor((P-e)/b))}else if(s)if(u)t=e+b*x;else{var I=t;t=b*Math.ceil(t/b),Math.abs(t-e)/M.getGCD(m,b)>a&&(t=e+b*g,t+=b*Math.ceil((I-t)/b))}}else if(d.isMultipleYAxis&&u){var T=b*Math.floor(e/b),z=T+b*x;z0&&e16&&M.getPrimeFactors(x).length<2&&x++,!u&&i.forceNiceScale&&d.yValueDecimal===0&&x>m&&(x=m,b=Math.round(m/x)),x>a&&(!u&&!c||i.forceNiceScale)){var O=M.getPrimeFactors(x),E=O.length-1,F=x;e:for(var B=0;BCe);return{result:f,niceMin:f[0],niceMax:f[f.length-1]}}},{key:"linearScale",value:function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:10,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:void 0,r=Math.abs(t-e),n=[];if(e===t)return{result:n=[e],niceMin:n[0],niceMax:n[n.length-1]};(i=this._adjustTicksForSmallRange(i,a,r))==="dataPoints"&&(i=this.w.globals.dataPoints-1),s||(s=r/i),s=Math.round(10*(s+Number.EPSILON))/10,i===Number.MAX_VALUE&&(i=5,s=1);for(var l=e;i>=0;)n.push(l),l=M.preciseAddition(l,s),i-=1;return{result:n,niceMin:n[0],niceMax:n[n.length-1]}}},{key:"logarithmicScaleNice",value:function(e,t,i){t<=0&&(t=Math.max(e,i)),e<=0&&(e=Math.min(t,i));for(var a=[],s=Math.ceil(Math.log(t)/Math.log(i)+1),r=Math.floor(Math.log(e)/Math.log(i));r5?(a.allSeriesCollapsed=!1,a.yAxisScale[e]=r.forceNiceScale?this.logarithmicScaleNice(t,i,r.logBase):this.logarithmicScale(t,i,r.logBase)):i!==-Number.MAX_VALUE&&M.isNumber(i)&&t!==Number.MAX_VALUE&&M.isNumber(t)?(a.allSeriesCollapsed=!1,a.yAxisScale[e]=this.niceScale(t,i,e)):a.yAxisScale[e]=this.niceScale(Number.MIN_VALUE,0,e)}},{key:"setXScale",value:function(e,t){var i=this.w,a=i.globals,s=Math.abs(t-e);if(t!==-Number.MAX_VALUE&&M.isNumber(t)){var r=a.xTickAmount+1;s<10&&s>1&&(r=s),a.xAxisScale=this.linearScale(e,t,r,0,i.config.xaxis.stepSize)}else a.xAxisScale=this.linearScale(0,10,10);return a.xAxisScale}},{key:"scaleMultipleYAxes",value:function(){var e=this,t=this.w.config,i=this.w.globals;this.coreUtils.setSeriesYAxisMappings();var a=i.seriesYAxisMap,s=i.minYArr,r=i.maxYArr;i.allSeriesCollapsed=!0,i.barGroups=[],a.forEach(function(n,l){var h=[];n.forEach(function(d){var c=t.series[d].group;h.indexOf(c)<0&&h.push(c)}),n.length>0?function(){var d,c,u=Number.MAX_VALUE,g=-Number.MAX_VALUE,p=u,f=g;if(t.chart.stacked)(function(){var b=new Array(i.dataPoints).fill(0),v=[],k=[],w=[];h.forEach(function(){v.push(b.map(function(){return Number.MIN_VALUE})),k.push(b.map(function(){return Number.MIN_VALUE})),w.push(b.map(function(){return Number.MIN_VALUE}))});for(var C=function(A){!d&&t.series[n[A]].type&&(d=t.series[n[A]].type);var L=n[A];c=t.series[L].group?t.series[L].group:"axis-".concat(l),!(i.collapsedSeriesIndices.indexOf(L)<0&&i.ancillaryCollapsedSeriesIndices.indexOf(L)<0)||(i.allSeriesCollapsed=!1,h.forEach(function(S,P){if(t.series[L].group===S)for(var I=0;I=0?k[P][I]+=T:w[P][I]+=T,v[P][I]+=T,p=Math.min(p,T),f=Math.max(f,T)}})),d!=="bar"&&d!=="column"||i.barGroups.push(c)},y=0;y1&&arguments[1]!==void 0?arguments[1]:Number.MAX_VALUE,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:-Number.MAX_VALUE,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null,s=this.w.config,r=this.w.globals,n=-Number.MAX_VALUE,l=Number.MIN_VALUE;a===null&&(a=e+1);var h=r.series,d=h,c=h;s.chart.type==="candlestick"?(d=r.seriesCandleL,c=r.seriesCandleH):s.chart.type==="boxPlot"?(d=r.seriesCandleO,c=r.seriesCandleC):r.isRangeData&&(d=r.seriesRangeStart,c=r.seriesRangeEnd);var u=!1;if(r.seriesX.length>=a){var g,p=(g=r.brushSource)===null||g===void 0?void 0:g.w.config.chart.brush;(s.chart.zoom.enabled&&s.chart.zoom.autoScaleYaxis||p!=null&&p.enabled&&p!=null&&p.autoScaleYaxis)&&(u=!0)}for(var f=e;fm&&r.seriesX[f][b]>s.xaxis.max;b--);}for(var v=m;v<=b&&vd[f][v]&&d[f][v]<0&&(l=d[f][v])}else r.hasNullValues=!0}x!=="bar"&&x!=="column"||(l<0&&n<0&&(n=0,i=Math.max(i,0)),l===Number.MIN_VALUE&&(l=0,t=Math.min(t,0)))}return s.chart.type==="rangeBar"&&r.seriesRangeStart.length&&r.isBarHorizontal&&(l=t),s.chart.type==="bar"&&(l<0&&n<0&&(n=0),l===Number.MIN_VALUE&&(l=0)),{minY:l,maxY:n,lowestY:t,highestY:i}}},{key:"setYRange",value:function(){var e=this.w.globals,t=this.w.config;e.maxY=-Number.MAX_VALUE,e.minY=Number.MIN_VALUE;var i,a=Number.MAX_VALUE;if(e.isMultipleYAxis){a=Number.MAX_VALUE;for(var s=0;se.dataPoints&&e.dataPoints!==0&&(a=e.dataPoints-1);else if(t.xaxis.tickAmount==="dataPoints"){if(e.series.length>1&&(a=e.series[e.maxValsInArrayIndex].length-1),e.isXNumeric){var s=e.maxX-e.minX;s<30&&(a=s-1)}}else a=t.xaxis.tickAmount;if(e.xTickAmount=a,t.xaxis.max!==void 0&&typeof t.xaxis.max=="number"&&(e.maxX=t.xaxis.max),t.xaxis.min!==void 0&&typeof t.xaxis.min=="number"&&(e.minX=t.xaxis.min),t.xaxis.range!==void 0&&(e.minX=e.maxX-t.xaxis.range),e.minX!==Number.MAX_VALUE&&e.maxX!==-Number.MAX_VALUE)if(t.xaxis.convertedCatToNumeric&&!e.dataFormatXNumeric){for(var r=[],n=e.minX-1;n0&&(e.xAxisScale=this.scales.linearScale(1,e.labels.length,a-1,0,t.xaxis.stepSize),e.seriesX=e.labels.slice());i&&(e.labels=e.xAxisScale.result.slice())}return e.isBarHorizontal&&e.labels.length&&(e.xTickAmount=e.labels.length),this._handleSingleDataPoint(),this._getMinXDiff(),{minX:e.minX,maxX:e.maxX}}},{key:"setZRange",value:function(){var e=this.w.globals;if(e.isDataXYZ){for(var t=0;t0){var n=s-a[r-1];n>0&&(e.minXDiff=Math.min(n,e.minXDiff))}}),e.dataPoints!==1&&e.minXDiff!==Number.MAX_VALUE||(e.minXDiff=.5)})}},{key:"_setStackedMinMax",value:function(){var e=this,t=this.w.globals;if(t.series.length){var i=t.seriesGroups;i.length||(i=[this.w.globals.seriesNames.map(function(r){return r})]);var a={},s={};i.forEach(function(r){a[r]=[],s[r]=[],e.w.config.series.map(function(n,l){return r.indexOf(t.seriesNames[l])>-1?l:null}).filter(function(n){return n!==null}).forEach(function(n){for(var l=0;l0?a[r][l]+=parseFloat(t.series[n][l])+1e-4:s[r][l]+=parseFloat(t.series[n][l]))}})}),Object.entries(a).forEach(function(r){var n=vs(r,1)[0];a[n].forEach(function(l,h){t.maxY=Math.max(t.maxY,a[n][h]),t.minY=Math.min(t.minY,s[n][h])})})}}}]),o}(),xa=function(){function o(e,t){Y(this,o),this.ctx=e,this.elgrid=t,this.w=e.w;var i=this.w;this.xaxisFontSize=i.config.xaxis.labels.style.fontSize,this.axisFontFamily=i.config.xaxis.labels.style.fontFamily,this.xaxisForeColors=i.config.xaxis.labels.style.colors,this.isCategoryBarHorizontal=i.config.chart.type==="bar"&&i.config.plotOptions.bar.horizontal,this.xAxisoffX=i.config.xaxis.position==="bottom"?i.globals.gridHeight:0,this.drawnLabels=[],this.axesUtils=new Qe(e)}return H(o,[{key:"drawYaxis",value:function(e){var t=this.w,i=new X(this.ctx),a=t.config.yaxis[e].labels.style,s=a.fontSize,r=a.fontFamily,n=a.fontWeight,l=i.group({class:"apexcharts-yaxis",rel:e,transform:"translate(".concat(t.globals.translateYAxisX[e],", 0)")});if(this.axesUtils.isYAxisHidden(e))return l;var h=i.group({class:"apexcharts-yaxis-texts-g"});l.add(h);var d=t.globals.yAxisScale[e].result.length-1,c=t.globals.gridHeight/d,u=t.globals.yLabelFormatters[e],g=this.axesUtils.checkForReversedLabels(e,t.globals.yAxisScale[e].result.slice());if(t.config.yaxis[e].labels.show){var p=t.globals.translateY+t.config.yaxis[e].labels.offsetY;t.globals.isBarHorizontal?p=0:t.config.chart.type==="heatmap"&&(p-=c/2),p+=parseInt(s,10)/3;for(var f=d;f>=0;f--){var x=u(g[f],f,t),m=t.config.yaxis[e].labels.padding;t.config.yaxis[e].opposite&&t.config.yaxis.length!==0&&(m*=-1);var b=this.getTextAnchor(t.config.yaxis[e].labels.align,t.config.yaxis[e].opposite),v=this.axesUtils.getYAxisForeColor(a.colors,e),k=Array.isArray(v)?v[f]:v,w=M.listToArray(t.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis[rel='".concat(e,"'] .apexcharts-yaxis-label tspan"))).map(function(y){return y.textContent}),C=i.drawText({x:m,y:p,text:w.includes(x)&&!t.config.yaxis[e].labels.showDuplicates?"":x,textAnchor:b,fontSize:s,fontFamily:r,fontWeight:n,maxWidth:t.config.yaxis[e].labels.maxWidth,foreColor:k,isPlainText:!1,cssClass:"apexcharts-yaxis-label ".concat(a.cssClass)});h.add(C),this.addTooltip(C,x),t.config.yaxis[e].labels.rotate!==0&&this.rotateLabel(i,C,firstLabel,t.config.yaxis[e].labels.rotate),p+=c}}return this.addYAxisTitle(i,l,e),this.addAxisBorder(i,l,e,d,c),l}},{key:"getTextAnchor",value:function(e,t){return e==="left"?"start":e==="center"?"middle":e==="right"?"end":t?"start":"end"}},{key:"addTooltip",value:function(e,t){var i=document.createElementNS(this.w.globals.SVGNS,"title");i.textContent=Array.isArray(t)?t.join(" "):t,e.node.appendChild(i)}},{key:"rotateLabel",value:function(e,t,i,a){var s=e.rotateAroundCenter(i.node),r=e.rotateAroundCenter(t.node);t.node.setAttribute("transform","rotate(".concat(a," ").concat(s.x," ").concat(r.y,")"))}},{key:"addYAxisTitle",value:function(e,t,i){var a=this.w;if(a.config.yaxis[i].title.text!==void 0){var s=e.group({class:"apexcharts-yaxis-title"}),r=a.config.yaxis[i].opposite?a.globals.translateYAxisX[i]:0,n=e.drawText({x:r,y:a.globals.gridHeight/2+a.globals.translateY+a.config.yaxis[i].title.offsetY,text:a.config.yaxis[i].title.text,textAnchor:"end",foreColor:a.config.yaxis[i].title.style.color,fontSize:a.config.yaxis[i].title.style.fontSize,fontWeight:a.config.yaxis[i].title.style.fontWeight,fontFamily:a.config.yaxis[i].title.style.fontFamily,cssClass:"apexcharts-yaxis-title-text ".concat(a.config.yaxis[i].title.style.cssClass)});s.add(n),t.add(s)}}},{key:"addAxisBorder",value:function(e,t,i,a,s){var r=this.w,n=r.config.yaxis[i].axisBorder,l=31+n.offsetX;if(r.config.yaxis[i].opposite&&(l=-31-n.offsetX),n.show){var h=e.drawLine(l,r.globals.translateY+n.offsetY-2,l,r.globals.gridHeight+r.globals.translateY+n.offsetY+2,n.color,0,n.width);t.add(h)}r.config.yaxis[i].axisTicks.show&&this.axesUtils.drawYAxisTicks(l,a,n,r.config.yaxis[i].axisTicks,i,s,t)}},{key:"drawYaxisInversed",value:function(e){var t=this.w,i=new X(this.ctx),a=i.group({class:"apexcharts-xaxis apexcharts-yaxis-inversed"}),s=i.group({class:"apexcharts-xaxis-texts-g",transform:"translate(".concat(t.globals.translateXAxisX,", ").concat(t.globals.translateXAxisY,")")});a.add(s);var r=t.globals.yAxisScale[e].result.length-1,n=t.globals.gridWidth/r+.1,l=n+t.config.xaxis.labels.offsetX,h=t.globals.xLabelFormatter,d=this.axesUtils.checkForReversedLabels(e,t.globals.yAxisScale[e].result.slice()),c=t.globals.timescaleLabels;if(c.length>0&&(this.xaxisLabels=c.slice(),r=(d=c.slice()).length),t.config.xaxis.labels.show)for(var u=c.length?0:r;c.length?u=0;c.length?u++:u--){var g=h(d[u],u,t),p=t.globals.gridWidth+t.globals.padHorizontal-(l-n+t.config.xaxis.labels.offsetX);if(c.length){var f=this.axesUtils.getLabel(d,c,p,u,this.drawnLabels,this.xaxisFontSize);p=f.x,g=f.text,this.drawnLabels.push(f.text),u===0&&t.globals.skipFirstTimelinelabel&&(g=""),u===d.length-1&&t.globals.skipLastTimelinelabel&&(g="")}var x=i.drawText({x:p,y:this.xAxisoffX+t.config.xaxis.labels.offsetY+30-(t.config.xaxis.position==="top"?t.globals.xAxisHeight+t.config.xaxis.axisTicks.height-2:0),text:g,textAnchor:"middle",foreColor:Array.isArray(this.xaxisForeColors)?this.xaxisForeColors[e]:this.xaxisForeColors,fontSize:this.xaxisFontSize,fontFamily:this.xaxisFontFamily,fontWeight:t.config.xaxis.labels.style.fontWeight,isPlainText:!1,cssClass:"apexcharts-xaxis-label ".concat(t.config.xaxis.labels.style.cssClass)});s.add(x),x.tspan(g),this.addTooltip(x,g),l+=n}return this.inversedYAxisTitleText(a),this.inversedYAxisBorder(a),a}},{key:"inversedYAxisBorder",value:function(e){var t=this.w,i=new X(this.ctx),a=t.config.xaxis.axisBorder;if(a.show){var s=0;t.config.chart.type==="bar"&&t.globals.isXNumeric&&(s-=15);var r=i.drawLine(t.globals.padHorizontal+s+a.offsetX,this.xAxisoffX,t.globals.gridWidth,this.xAxisoffX,a.color,0,a.height);this.elgrid&&this.elgrid.elGridBorders&&t.config.grid.show?this.elgrid.elGridBorders.add(r):e.add(r)}}},{key:"inversedYAxisTitleText",value:function(e){var t=this.w,i=new X(this.ctx);if(t.config.xaxis.title.text!==void 0){var a=i.group({class:"apexcharts-xaxis-title apexcharts-yaxis-title-inversed"}),s=i.drawText({x:t.globals.gridWidth/2+t.config.xaxis.title.offsetX,y:this.xAxisoffX+parseFloat(this.xaxisFontSize)+parseFloat(t.config.xaxis.title.style.fontSize)+t.config.xaxis.title.offsetY+20,text:t.config.xaxis.title.text,textAnchor:"middle",fontSize:t.config.xaxis.title.style.fontSize,fontFamily:t.config.xaxis.title.style.fontFamily,fontWeight:t.config.xaxis.title.style.fontWeight,foreColor:t.config.xaxis.title.style.color,cssClass:"apexcharts-xaxis-title-text ".concat(t.config.xaxis.title.style.cssClass)});a.add(s),e.add(a)}}},{key:"yAxisTitleRotate",value:function(e,t){var i=this.w,a=new X(this.ctx),s=i.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(e,"'] .apexcharts-yaxis-texts-g")),r=s?s.getBoundingClientRect():{width:0,height:0},n=i.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(e,"'] .apexcharts-yaxis-title text")),l=n?n.getBoundingClientRect():{width:0,height:0};if(n){var h=this.xPaddingForYAxisTitle(e,r,l,t);n.setAttribute("x",h.xPos-(t?10:0));var d=a.rotateAroundCenter(n);n.setAttribute("transform","rotate(".concat(t?-1*i.config.yaxis[e].title.rotate:i.config.yaxis[e].title.rotate," ").concat(d.x," ").concat(d.y,")"))}}},{key:"xPaddingForYAxisTitle",value:function(e,t,i,a){var s=this.w,r=0,n=10;return s.config.yaxis[e].title.text===void 0||e<0?{xPos:r,padd:0}:(a?r=t.width+s.config.yaxis[e].title.offsetX+i.width/2+n/2:(r=-1*t.width+s.config.yaxis[e].title.offsetX+n/2+i.width/2,s.globals.isBarHorizontal&&(n=25,r=-1*t.width-s.config.yaxis[e].title.offsetX-n)),{xPos:r,padd:n})}},{key:"setYAxisXPosition",value:function(e,t){var i=this.w,a=0,s=0,r=18,n=1;i.config.yaxis.length>1&&(this.multipleYs=!0),i.config.yaxis.forEach(function(l,h){var d=i.globals.ignoreYAxisIndexes.includes(h)||!l.show||l.floating||e[h].width===0,c=e[h].width+t[h].width;l.opposite?i.globals.isBarHorizontal?(s=i.globals.gridWidth+i.globals.translateX-1,i.globals.translateYAxisX[h]=s-l.labels.offsetX):(s=i.globals.gridWidth+i.globals.translateX+n,d||(n+=c+20),i.globals.translateYAxisX[h]=s-l.labels.offsetX+20):(a=i.globals.translateX-r,d||(r+=c+20),i.globals.translateYAxisX[h]=a+l.labels.offsetX)})}},{key:"setYAxisTextAlignments",value:function(){var e=this.w;M.listToArray(e.globals.dom.baseEl.getElementsByClassName("apexcharts-yaxis")).forEach(function(t,i){var a=e.config.yaxis[i];if(a&&!a.floating&&a.labels.align!==void 0){var s=e.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(i,"'] .apexcharts-yaxis-texts-g")),r=M.listToArray(e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis[rel='".concat(i,"'] .apexcharts-yaxis-label"))),n=s.getBoundingClientRect();r.forEach(function(l){l.setAttribute("text-anchor",a.labels.align)}),a.labels.align!=="left"||a.opposite?a.labels.align==="center"?s.setAttribute("transform","translate(".concat(n.width/2*(a.opposite?1:-1),", 0)")):a.labels.align==="right"&&a.opposite&&s.setAttribute("transform","translate(".concat(n.width,", 0)")):s.setAttribute("transform","translate(-".concat(n.width,", 0)"))}})}}]),o}(),Yl=function(){function o(e){Y(this,o),this.ctx=e,this.w=e.w,this.documentEvent=M.bind(this.documentEvent,this)}return H(o,[{key:"addEventListener",value:function(e,t){var i=this.w;i.globals.events.hasOwnProperty(e)?i.globals.events[e].push(t):i.globals.events[e]=[t]}},{key:"removeEventListener",value:function(e,t){var i=this.w;if(i.globals.events.hasOwnProperty(e)){var a=i.globals.events[e].indexOf(t);a!==-1&&i.globals.events[e].splice(a,1)}}},{key:"fireEvent",value:function(e,t){var i=this.w;if(i.globals.events.hasOwnProperty(e)){t&&t.length||(t=[]);for(var a=i.globals.events[e],s=a.length,r=0;r0&&(t=this.w.config.chart.locales.concat(window.Apex.chart.locales));var i=t.filter(function(s){return s.name===e})[0];if(!i)throw new Error("Wrong locale name provided. Please make sure you set the correct locale name in options");var a=M.extend(Us,i);this.w.globals.locale=a.options}}]),o}(),Fl=function(){function o(e){Y(this,o),this.ctx=e,this.w=e.w}return H(o,[{key:"drawAxis",value:function(e,t){var i,a,s=this,r=this.w.globals,n=this.w.config,l=new Et(this.ctx,t),h=new xa(this.ctx,t);r.axisCharts&&e!=="radar"&&(r.isBarHorizontal?(a=h.drawYaxisInversed(0),i=l.drawXaxisInversed(0),r.dom.elGraphical.add(i),r.dom.elGraphical.add(a)):(i=l.drawXaxis(),r.dom.elGraphical.add(i),n.yaxis.map(function(d,c){if(r.ignoreYAxisIndexes.indexOf(c)===-1&&(a=h.drawYaxis(c),r.dom.Paper.add(a),s.w.config.grid.position==="back")){var u=r.dom.Paper.children()[1];u.remove(),r.dom.Paper.add(u)}})))}}]),o}(),Vi=function(){function o(e){Y(this,o),this.ctx=e,this.w=e.w}return H(o,[{key:"drawXCrosshairs",value:function(){var e=this.w,t=new X(this.ctx),i=new ke(this.ctx),a=e.config.xaxis.crosshairs.fill.gradient,s=e.config.xaxis.crosshairs.dropShadow,r=e.config.xaxis.crosshairs.fill.type,n=a.colorFrom,l=a.colorTo,h=a.opacityFrom,d=a.opacityTo,c=a.stops,u=s.enabled,g=s.left,p=s.top,f=s.blur,x=s.color,m=s.opacity,b=e.config.xaxis.crosshairs.fill.color;if(e.config.xaxis.crosshairs.show){r==="gradient"&&(b=t.drawGradient("vertical",n,l,h,d,null,c,null));var v=t.drawRect();e.config.xaxis.crosshairs.width===1&&(v=t.drawLine());var k=e.globals.gridHeight;(!M.isNumber(k)||k<0)&&(k=0);var w=e.config.xaxis.crosshairs.width;(!M.isNumber(w)||w<0)&&(w=0),v.attr({class:"apexcharts-xcrosshairs",x:0,y:0,y2:k,width:w,height:k,fill:b,filter:"none","fill-opacity":e.config.xaxis.crosshairs.opacity,stroke:e.config.xaxis.crosshairs.stroke.color,"stroke-width":e.config.xaxis.crosshairs.stroke.width,"stroke-dasharray":e.config.xaxis.crosshairs.stroke.dashArray}),u&&(v=i.dropShadow(v,{left:g,top:p,blur:f,color:x,opacity:m})),e.globals.dom.elGraphical.add(v)}}},{key:"drawYCrosshairs",value:function(){var e=this.w,t=new X(this.ctx),i=e.config.yaxis[0].crosshairs,a=e.globals.barPadForNumericAxis;if(e.config.yaxis[0].crosshairs.show){var s=t.drawLine(-a,0,e.globals.gridWidth+a,0,i.stroke.color,i.stroke.dashArray,i.stroke.width);s.attr({class:"apexcharts-ycrosshairs"}),e.globals.dom.elGraphical.add(s)}var r=t.drawLine(-a,0,e.globals.gridWidth+a,0,i.stroke.color,0,0);r.attr({class:"apexcharts-ycrosshairs-hidden"}),e.globals.dom.elGraphical.add(r)}}]),o}(),Dl=function(){function o(e){Y(this,o),this.ctx=e,this.w=e.w}return H(o,[{key:"checkResponsiveConfig",value:function(e){var t=this,i=this.w,a=i.config;if(a.responsive.length!==0){var s=a.responsive.slice();s.sort(function(h,d){return h.breakpoint>d.breakpoint?1:d.breakpoint>h.breakpoint?-1:0}).reverse();var r=new Rt({}),n=function(){var h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},d=s[0].breakpoint,c=window.innerWidth>0?window.innerWidth:screen.width;if(c>d){var u=M.clone(i.globals.initialConfig);u.series=M.clone(i.config.series);var g=be.extendArrayProps(r,u,i);h=M.extend(g,h),h=M.extend(i.config,h),t.overrideResponsiveOptions(h)}else for(var p=0;p0&&typeof e[0]=="function"?(this.isColorFn=!0,i.config.series.map(function(a,s){var r=e[s]||e[0];return typeof r=="function"?r({value:i.globals.axisCharts?i.globals.series[s][0]||0:i.globals.series[s],seriesIndex:s,dataPointIndex:s,w:t.w}):r})):e:this.predefined()}},{key:"applySeriesColors",value:function(e,t){e.forEach(function(i,a){i&&(t[a]=i)})}},{key:"getMonochromeColors",value:function(e,t,i){var a=e.color,s=e.shadeIntensity,r=e.shadeTo,n=this.isBarDistributed||this.isHeatmapDistributed?t[0].length*t.length:t.length,l=1/(n/s),h=0;return Array.from({length:n},function(){var d=r==="dark"?i.shadeColor(-1*h,a):i.shadeColor(h,a);return h+=l,d})}},{key:"applyColorTypes",value:function(e,t){var i=this,a=this.w;e.forEach(function(s){a.globals[s].colors=a.config[s].colors===void 0?i.isColorFn?a.config.colors:t:a.config[s].colors.slice(),i.pushExtraColors(a.globals[s].colors)})}},{key:"applyDataLabelsColors",value:function(e){var t=this.w;t.globals.dataLabels.style.colors=t.config.dataLabels.style.colors===void 0?e:t.config.dataLabels.style.colors.slice(),this.pushExtraColors(t.globals.dataLabels.style.colors,50)}},{key:"applyRadarPolygonsColors",value:function(){var e=this.w;e.globals.radarPolygons.fill.colors=e.config.plotOptions.radar.polygons.fill.colors===void 0?[e.config.theme.mode==="dark"?"#424242":"none"]:e.config.plotOptions.radar.polygons.fill.colors.slice(),this.pushExtraColors(e.globals.radarPolygons.fill.colors,20)}},{key:"applyMarkersColors",value:function(e){var t=this.w;t.globals.markers.colors=t.config.markers.colors===void 0?e:t.config.markers.colors.slice(),this.pushExtraColors(t.globals.markers.colors)}},{key:"pushExtraColors",value:function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,a=this.w,s=t||a.globals.series.length;if(i===null&&(i=this.isBarDistributed||this.isHeatmapDistributed||a.config.chart.type==="heatmap"&&a.config.plotOptions.heatmap&&a.config.plotOptions.heatmap.colorScale.inverse),i&&a.globals.series.length&&(s=a.globals.series[a.globals.maxValsInArrayIndex].length*a.globals.series.length),e.lengthe.globals.svgWidth&&(this.dCtx.lgRect.width=e.globals.svgWidth/1.5),this.dCtx.lgRect}},{key:"getDatalabelsRect",value:function(){var e=this,t=this.w,i=[];t.config.series.forEach(function(l,h){l.data.forEach(function(d,c){var u;u=t.globals.series[h][c],a=t.config.dataLabels.formatter(u,{ctx:e.dCtx.ctx,seriesIndex:h,dataPointIndex:c,w:t}),i.push(a)})});var a=M.getLargestStringFromArr(i),s=new X(this.dCtx.ctx),r=t.config.dataLabels.style,n=s.getTextRects(a,parseInt(r.fontSize),r.fontFamily);return{width:1.05*n.width,height:n.height}}},{key:"getLargestStringFromMultiArr",value:function(e,t){var i=e;if(this.w.globals.isMultiLineX){var a=t.map(function(r,n){return Array.isArray(r)?r.length:1}),s=Math.max.apply(Math,ve(a));i=t[a.indexOf(s)]}return i}}]),o}(),Gl=function(){function o(e){Y(this,o),this.w=e.w,this.dCtx=e}return H(o,[{key:"getxAxisLabelsCoords",value:function(){var e,t=this.w,i=t.globals.labels.slice();if(t.config.xaxis.convertedCatToNumeric&&i.length===0&&(i=t.globals.categoryLabels),t.globals.timescaleLabels.length>0){var a=this.getxAxisTimeScaleLabelsCoords();e={width:a.width,height:a.height},t.globals.rotateXLabels=!1}else{this.dCtx.lgWidthForSideLegends=t.config.legend.position!=="left"&&t.config.legend.position!=="right"||t.config.legend.floating?0:this.dCtx.lgRect.width;var s=t.globals.xLabelFormatter,r=M.getLargestStringFromArr(i),n=this.dCtx.dimHelpers.getLargestStringFromMultiArr(r,i);t.globals.isBarHorizontal&&(n=r=t.globals.yAxisScale[0].result.reduce(function(p,f){return p.length>f.length?p:f},0));var l=new Nt(this.dCtx.ctx),h=r;r=l.xLabelFormat(s,r,h,{i:void 0,dateFormatter:new we(this.dCtx.ctx).formatDate,w:t}),n=l.xLabelFormat(s,n,h,{i:void 0,dateFormatter:new we(this.dCtx.ctx).formatDate,w:t}),(t.config.xaxis.convertedCatToNumeric&&r===void 0||String(r).trim()==="")&&(n=r="1");var d=new X(this.dCtx.ctx),c=d.getTextRects(r,t.config.xaxis.labels.style.fontSize),u=c;if(r!==n&&(u=d.getTextRects(n,t.config.xaxis.labels.style.fontSize)),(e={width:c.width>=u.width?c.width:u.width,height:c.height>=u.height?c.height:u.height}).width*i.length>t.globals.svgWidth-this.dCtx.lgWidthForSideLegends-this.dCtx.yAxisWidth-this.dCtx.gridPad.left-this.dCtx.gridPad.right&&t.config.xaxis.labels.rotate!==0||t.config.xaxis.labels.rotateAlways){if(!t.globals.isBarHorizontal){t.globals.rotateXLabels=!0;var g=function(p){return d.getTextRects(p,t.config.xaxis.labels.style.fontSize,t.config.xaxis.labels.style.fontFamily,"rotate(".concat(t.config.xaxis.labels.rotate," 0 0)"),!1)};c=g(r),r!==n&&(u=g(n)),e.height=(c.height>u.height?c.height:u.height)/1.5,e.width=c.width>u.width?c.width:u.width}}else t.globals.rotateXLabels=!1}return t.config.xaxis.labels.show||(e={width:0,height:0}),{width:e.width,height:e.height}}},{key:"getxAxisGroupLabelsCoords",value:function(){var e,t=this.w;if(!t.globals.hasXaxisGroups)return{width:0,height:0};var i,a=((e=t.config.xaxis.group.style)===null||e===void 0?void 0:e.fontSize)||t.config.xaxis.labels.style.fontSize,s=t.globals.groups.map(function(c){return c.title}),r=M.getLargestStringFromArr(s),n=this.dCtx.dimHelpers.getLargestStringFromMultiArr(r,s),l=new X(this.dCtx.ctx),h=l.getTextRects(r,a),d=h;return r!==n&&(d=l.getTextRects(n,a)),i={width:h.width>=d.width?h.width:d.width,height:h.height>=d.height?h.height:d.height},t.config.xaxis.labels.show||(i={width:0,height:0}),{width:i.width,height:i.height}}},{key:"getxAxisTitleCoords",value:function(){var e=this.w,t=0,i=0;if(e.config.xaxis.title.text!==void 0){var a=new X(this.dCtx.ctx).getTextRects(e.config.xaxis.title.text,e.config.xaxis.title.style.fontSize);t=a.width,i=a.height}return{width:t,height:i}}},{key:"getxAxisTimeScaleLabelsCoords",value:function(){var e,t=this.w;this.dCtx.timescaleLabels=t.globals.timescaleLabels.slice();var i=this.dCtx.timescaleLabels.map(function(s){return s.value}),a=i.reduce(function(s,r){return s===void 0?(console.error("You have possibly supplied invalid Date format. Please supply a valid JavaScript Date"),0):s.length>r.length?s:r},0);return 1.05*(e=new X(this.dCtx.ctx).getTextRects(a,t.config.xaxis.labels.style.fontSize)).width*i.length>t.globals.gridWidth&&t.config.xaxis.labels.rotate!==0&&(t.globals.overlappingXLabels=!0),e}},{key:"additionalPaddingXLabels",value:function(e){var t=this,i=this.w,a=i.globals,s=i.config,r=s.xaxis.type,n=e.width;a.skipLastTimelinelabel=!1,a.skipFirstTimelinelabel=!1;var l=i.config.yaxis[0].opposite&&i.globals.isBarHorizontal,h=function(d,c){s.yaxis.length>1&&function(u){return a.collapsedSeriesIndices.indexOf(u)!==-1}(c)||function(u){if(t.dCtx.timescaleLabels&&t.dCtx.timescaleLabels.length){var g=t.dCtx.timescaleLabels[0],p=t.dCtx.timescaleLabels[t.dCtx.timescaleLabels.length-1].position+n/1.75-t.dCtx.yAxisWidthRight,f=g.position-n/1.75+t.dCtx.yAxisWidthLeft,x=i.config.legend.position==="right"&&t.dCtx.lgRect.width>0?t.dCtx.lgRect.width:0;p>a.svgWidth-a.translateX-x&&(a.skipLastTimelinelabel=!0),f<-(u.show&&!u.floating||s.chart.type!=="bar"&&s.chart.type!=="candlestick"&&s.chart.type!=="rangeBar"&&s.chart.type!=="boxPlot"?10:n/1.75)&&(a.skipFirstTimelinelabel=!0)}else r==="datetime"?t.dCtx.gridPad.right((y=String(c(w,l)))===null||y===void 0?void 0:y.length)?k:w},u),p=g=c(g,l);if(g!==void 0&&g.length!==0||(g=h.niceMax),t.globals.isBarHorizontal){a=0;var f=t.globals.labels.slice();g=M.getLargestStringFromArr(f),g=c(g,{seriesIndex:n,dataPointIndex:-1,w:t}),p=e.dCtx.dimHelpers.getLargestStringFromMultiArr(g,f)}var x=new X(e.dCtx.ctx),m="rotate(".concat(r.labels.rotate," 0 0)"),b=x.getTextRects(g,r.labels.style.fontSize,r.labels.style.fontFamily,m,!1),v=b;g!==p&&(v=x.getTextRects(p,r.labels.style.fontSize,r.labels.style.fontFamily,m,!1)),i.push({width:(d>v.width||d>b.width?d:v.width>b.width?v.width:b.width)+a,height:v.height>b.height?v.height:b.height})}else i.push({width:0,height:0})}),i}},{key:"getyAxisTitleCoords",value:function(){var e=this,t=this.w,i=[];return t.config.yaxis.map(function(a,s){if(a.show&&a.title.text!==void 0){var r=new X(e.dCtx.ctx),n="rotate(".concat(a.title.rotate," 0 0)"),l=r.getTextRects(a.title.text,a.title.style.fontSize,a.title.style.fontFamily,n,!1);i.push({width:l.width,height:l.height})}else i.push({width:0,height:0})}),i}},{key:"getTotalYAxisWidth",value:function(){var e=this.w,t=0,i=0,a=0,s=e.globals.yAxisScale.length>1?10:0,r=new Qe(this.dCtx.ctx),n=function(l,h){var d=e.config.yaxis[h].floating,c=0;l.width>0&&!d?(c=l.width+s,function(u){return e.globals.ignoreYAxisIndexes.indexOf(u)>-1}(h)&&(c=c-l.width-s)):c=d||r.isYAxisHidden(h)?0:5,e.config.yaxis[h].opposite?a+=c:i+=c,t+=c};return e.globals.yLabelsCoords.map(function(l,h){n(l,h)}),e.globals.yTitleCoords.map(function(l,h){n(l,h)}),e.globals.isBarHorizontal&&!e.config.yaxis[0].floating&&(t=e.globals.yLabelsCoords[0].width+e.globals.yTitleCoords[0].width+15),this.dCtx.yAxisWidthLeft=i,this.dCtx.yAxisWidthRight=a,t}}]),o}(),Vl=function(){function o(e){Y(this,o),this.w=e.w,this.dCtx=e}return H(o,[{key:"gridPadForColumnsInNumericAxis",value:function(e){var t=this.w,i=t.config,a=t.globals;if(a.noData||a.collapsedSeries.length+a.ancillaryCollapsedSeries.length===i.series.length)return 0;var s=function(g){return["bar","rangeBar","candlestick","boxPlot"].includes(g)},r=i.chart.type,n=0,l=s(r)?i.series.length:1;a.comboBarCount>0&&(l=a.comboBarCount),a.collapsedSeries.forEach(function(g){s(g.type)&&(l-=1)}),i.chart.stacked&&(l=1);var h=s(r)||a.comboBarCount>0,d=Math.abs(a.initialMaxX-a.initialMinX);if(h&&a.isXNumeric&&!a.isBarHorizontal&&l>0&&d!==0){d<=3&&(d=a.dataPoints);var c=d/e,u=a.minXDiff&&a.minXDiff/c>0?a.minXDiff/c:0;u>e/2&&(u/=2),(n=u*parseInt(i.plotOptions.bar.columnWidth,10)/100)<1&&(n=1),a.barPadForNumericAxis=n}return n}},{key:"gridPadFortitleSubtitle",value:function(){var e=this,t=this.w,i=t.globals,a=this.dCtx.isSparkline||!i.axisCharts?0:10;["title","subtitle"].forEach(function(n){t.config[n].text!==void 0?a+=t.config[n].margin:a+=e.dCtx.isSparkline||!i.axisCharts?0:5}),!t.config.legend.show||t.config.legend.position!=="bottom"||t.config.legend.floating||i.axisCharts||(a+=10);var s=this.dCtx.dimHelpers.getTitleSubtitleCoords("title"),r=this.dCtx.dimHelpers.getTitleSubtitleCoords("subtitle");i.gridHeight-=s.height+r.height+a,i.translateY+=s.height+r.height+a}},{key:"setGridXPosForDualYAxis",value:function(e,t){var i=this.w,a=new Qe(this.dCtx.ctx);i.config.yaxis.forEach(function(s,r){i.globals.ignoreYAxisIndexes.indexOf(r)!==-1||s.floating||a.isYAxisHidden(r)||(s.opposite&&(i.globals.translateX-=t[r].width+e[r].width+parseInt(s.labels.style.fontSize,10)/1.2+12),i.globals.translateX<2&&(i.globals.translateX=2))})}}]),o}(),si=function(){function o(e){Y(this,o),this.ctx=e,this.w=e.w,this.lgRect={},this.yAxisWidth=0,this.yAxisWidthLeft=0,this.yAxisWidthRight=0,this.xAxisHeight=0,this.isSparkline=this.w.config.chart.sparkline.enabled,this.dimHelpers=new Bl(this),this.dimYAxis=new jl(this),this.dimXAxis=new Gl(this),this.dimGrid=new Vl(this),this.lgWidthForSideLegends=0,this.gridPad=this.w.config.grid.padding,this.xPadRight=0,this.xPadLeft=0}return H(o,[{key:"plotCoords",value:function(){var e=this,t=this.w,i=t.globals;this.lgRect=this.dimHelpers.getLegendsRect(),this.datalabelsCoords={width:0,height:0};var a=Array.isArray(t.config.stroke.width)?Math.max.apply(Math,ve(t.config.stroke.width)):t.config.stroke.width;this.isSparkline&&((t.config.markers.discrete.length>0||t.config.markers.size>0)&&Object.entries(this.gridPad).forEach(function(r){var n=vs(r,2),l=n[0],h=n[1];e.gridPad[l]=Math.max(h,e.w.globals.markers.largestSize/1.5)}),this.gridPad.top=Math.max(a/2,this.gridPad.top),this.gridPad.bottom=Math.max(a/2,this.gridPad.bottom)),i.axisCharts?this.setDimensionsForAxisCharts():this.setDimensionsForNonAxisCharts(),this.dimGrid.gridPadFortitleSubtitle(),i.gridHeight=i.gridHeight-this.gridPad.top-this.gridPad.bottom,i.gridWidth=i.gridWidth-this.gridPad.left-this.gridPad.right-this.xPadRight-this.xPadLeft;var s=this.dimGrid.gridPadForColumnsInNumericAxis(i.gridWidth);i.gridWidth=i.gridWidth-2*s,i.translateX=i.translateX+this.gridPad.left+this.xPadLeft+(s>0?s:0),i.translateY=i.translateY+this.gridPad.top}},{key:"setDimensionsForAxisCharts",value:function(){var e=this,t=this.w,i=t.globals,a=this.dimYAxis.getyAxisLabelsCoords(),s=this.dimYAxis.getyAxisTitleCoords();i.isSlopeChart&&(this.datalabelsCoords=this.dimHelpers.getDatalabelsRect()),t.globals.yLabelsCoords=[],t.globals.yTitleCoords=[],t.config.yaxis.map(function(g,p){t.globals.yLabelsCoords.push({width:a[p].width,index:p}),t.globals.yTitleCoords.push({width:s[p].width,index:p})}),this.yAxisWidth=this.dimYAxis.getTotalYAxisWidth();var r=this.dimXAxis.getxAxisLabelsCoords(),n=this.dimXAxis.getxAxisGroupLabelsCoords(),l=this.dimXAxis.getxAxisTitleCoords();this.conditionalChecksForAxisCoords(r,l,n),i.translateXAxisY=t.globals.rotateXLabels?this.xAxisHeight/8:-4,i.translateXAxisX=t.globals.rotateXLabels&&t.globals.isXNumeric&&t.config.xaxis.labels.rotate<=-45?-this.xAxisWidth/4:0,t.globals.isBarHorizontal&&(i.rotateXLabels=!1,i.translateXAxisY=parseInt(t.config.xaxis.labels.style.fontSize,10)/1.5*-1),i.translateXAxisY=i.translateXAxisY+t.config.xaxis.labels.offsetY,i.translateXAxisX=i.translateXAxisX+t.config.xaxis.labels.offsetX;var h=this.yAxisWidth,d=this.xAxisHeight;i.xAxisLabelsHeight=this.xAxisHeight-l.height,i.xAxisGroupLabelsHeight=i.xAxisLabelsHeight-r.height,i.xAxisLabelsWidth=this.xAxisWidth,i.xAxisHeight=this.xAxisHeight;var c=10;(t.config.chart.type==="radar"||this.isSparkline)&&(h=0,d=0),this.isSparkline&&(this.lgRect={height:0,width:0}),(this.isSparkline||t.config.chart.type==="treemap")&&(h=0,d=0,c=0),this.isSparkline||t.config.chart.type==="treemap"||this.dimXAxis.additionalPaddingXLabels(r);var u=function(){i.translateX=h+e.datalabelsCoords.width,i.gridHeight=i.svgHeight-e.lgRect.height-d-(e.isSparkline||t.config.chart.type==="treemap"?0:t.globals.rotateXLabels?10:15),i.gridWidth=i.svgWidth-h-2*e.datalabelsCoords.width};switch(t.config.xaxis.position==="top"&&(c=i.xAxisHeight-t.config.xaxis.axisTicks.height-5),t.config.legend.position){case"bottom":i.translateY=c,u();break;case"top":i.translateY=this.lgRect.height+c,u();break;case"left":i.translateY=c,i.translateX=this.lgRect.width+h+this.datalabelsCoords.width,i.gridHeight=i.svgHeight-d-12,i.gridWidth=i.svgWidth-this.lgRect.width-h-2*this.datalabelsCoords.width;break;case"right":i.translateY=c,i.translateX=h+this.datalabelsCoords.width,i.gridHeight=i.svgHeight-d-12,i.gridWidth=i.svgWidth-this.lgRect.width-h-2*this.datalabelsCoords.width-5;break;default:throw new Error("Legend position not supported")}this.dimGrid.setGridXPosForDualYAxis(s,a),new xa(this.ctx).setYAxisXPosition(a,s)}},{key:"setDimensionsForNonAxisCharts",value:function(){var e=this.w,t=e.globals,i=e.config,a=0;e.config.legend.show&&!e.config.legend.floating&&(a=20);var s=i.chart.type==="pie"||i.chart.type==="polarArea"||i.chart.type==="donut"?"pie":"radialBar",r=i.plotOptions[s].offsetY,n=i.plotOptions[s].offsetX;if(!i.legend.show||i.legend.floating){t.gridHeight=t.svgHeight;var l=t.dom.elWrap.getBoundingClientRect().width;return t.gridWidth=Math.min(l,t.gridHeight),t.translateY=r,void(t.translateX=n+(t.svgWidth-t.gridWidth)/2)}switch(i.legend.position){case"bottom":t.gridHeight=t.svgHeight-this.lgRect.height,t.gridWidth=t.svgWidth,t.translateY=r-10,t.translateX=n+(t.svgWidth-t.gridWidth)/2;break;case"top":t.gridHeight=t.svgHeight-this.lgRect.height,t.gridWidth=t.svgWidth,t.translateY=this.lgRect.height+r+10,t.translateX=n+(t.svgWidth-t.gridWidth)/2;break;case"left":t.gridWidth=t.svgWidth-this.lgRect.width-a,t.gridHeight=i.chart.height!=="auto"?t.svgHeight:t.gridWidth,t.translateY=r,t.translateX=n+this.lgRect.width+a;break;case"right":t.gridWidth=t.svgWidth-this.lgRect.width-a-5,t.gridHeight=i.chart.height!=="auto"?t.svgHeight:t.gridWidth,t.translateY=r,t.translateX=n+10;break;default:throw new Error("Legend position not supported")}}},{key:"conditionalChecksForAxisCoords",value:function(e,t,i){var a=this.w,s=a.globals.hasXaxisGroups?2:1,r=i.height+e.height+t.height,n=a.globals.isMultiLineX?1.2:a.globals.LINE_HEIGHT_RATIO,l=a.globals.rotateXLabels?22:10,h=a.globals.rotateXLabels&&a.config.legend.position==="bottom"?10:0;this.xAxisHeight=r*n+s*l+h,this.xAxisWidth=e.width,this.xAxisHeight-t.height>a.config.xaxis.labels.maxHeight&&(this.xAxisHeight=a.config.xaxis.labels.maxHeight),a.config.xaxis.labels.minHeight&&this.xAxisHeightc&&(this.yAxisWidth=c)}}]),o}(),Ul=function(){function o(e){Y(this,o),this.w=e.w,this.lgCtx=e}return H(o,[{key:"getLegendStyles",value:function(){var e,t,i,a=document.createElement("style");a.setAttribute("type","text/css");var s=((e=this.lgCtx.ctx)===null||e===void 0||(t=e.opts)===null||t===void 0||(i=t.chart)===null||i===void 0?void 0:i.nonce)||this.w.config.chart.nonce;s&&a.setAttribute("nonce",s);var r=document.createTextNode(` + .apexcharts-flip-y { + transform: scaleY(-1) translateY(-100%); + transform-origin: top; + transform-box: fill-box; + } + .apexcharts-flip-x { + transform: scaleX(-1); + transform-origin: center; + transform-box: fill-box; + } + .apexcharts-legend { + display: flex; + overflow: auto; + padding: 0 10px; + } + .apexcharts-legend.apx-legend-position-bottom, .apexcharts-legend.apx-legend-position-top { + flex-wrap: wrap + } + .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left { + flex-direction: column; + bottom: 0; + } + .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-left, .apexcharts-legend.apx-legend-position-top.apexcharts-align-left, .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left { + justify-content: flex-start; + } + .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-center, .apexcharts-legend.apx-legend-position-top.apexcharts-align-center { + justify-content: center; + } + .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-right, .apexcharts-legend.apx-legend-position-top.apexcharts-align-right { + justify-content: flex-end; + } + .apexcharts-legend-series { + cursor: pointer; + line-height: normal; + display: flex; + align-items: center; + } + .apexcharts-legend-text { + position: relative; + font-size: 14px; + } + .apexcharts-legend-text *, .apexcharts-legend-marker * { + pointer-events: none; + } + .apexcharts-legend-marker { + position: relative; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + margin-right: 1px; + } + + .apexcharts-legend-series.apexcharts-no-click { + cursor: auto; + } + .apexcharts-legend .apexcharts-hidden-zero-series, .apexcharts-legend .apexcharts-hidden-null-series { + display: none !important; + } + .apexcharts-inactive-legend { + opacity: 0.45; + } + + `);return a.appendChild(r),a}},{key:"getLegendDimensions",value:function(){var e=this.w.globals.dom.baseEl.querySelector(".apexcharts-legend").getBoundingClientRect(),t=e.width;return{clwh:e.height,clww:t}}},{key:"appendToForeignObject",value:function(){this.w.globals.dom.elLegendForeign.appendChild(this.getLegendStyles())}},{key:"toggleDataSeries",value:function(e,t){var i=this,a=this.w;if(a.globals.axisCharts||a.config.chart.type==="radialBar"){a.globals.resized=!0;var s=null,r=null;a.globals.risingSeries=[],a.globals.axisCharts?(s=a.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(e,"']")),r=parseInt(s.getAttribute("data:realIndex"),10)):(s=a.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(e+1,"']")),r=parseInt(s.getAttribute("rel"),10)-1),t?[{cs:a.globals.collapsedSeries,csi:a.globals.collapsedSeriesIndices},{cs:a.globals.ancillaryCollapsedSeries,csi:a.globals.ancillaryCollapsedSeriesIndices}].forEach(function(d){i.riseCollapsedSeries(d.cs,d.csi,r)}):this.hideSeries({seriesEl:s,realIndex:r})}else{var n=a.globals.dom.Paper.findOne(" .apexcharts-series[rel='".concat(e+1,"'] path")),l=a.config.chart.type;if(l==="pie"||l==="polarArea"||l==="donut"){var h=a.config.plotOptions.pie.donut.labels;new X(this.lgCtx.ctx).pathMouseDown(n,null),this.lgCtx.ctx.pie.printDataLabelsInner(n.node,h)}n.fire("click")}}},{key:"getSeriesAfterCollapsing",value:function(e){var t=e.realIndex,i=this.w,a=i.globals,s=M.clone(i.config.series);if(a.axisCharts){var r=i.config.yaxis[a.seriesYAxisReverseMap[t]],n={index:t,data:s[t].data.slice(),type:s[t].type||i.config.chart.type};if(r&&r.show&&r.showAlways)a.ancillaryCollapsedSeriesIndices.indexOf(t)<0&&(a.ancillaryCollapsedSeries.push(n),a.ancillaryCollapsedSeriesIndices.push(t));else if(a.collapsedSeriesIndices.indexOf(t)<0){a.collapsedSeries.push(n),a.collapsedSeriesIndices.push(t);var l=a.risingSeries.indexOf(t);a.risingSeries.splice(l,1)}}else a.collapsedSeries.push({index:t,data:s[t]}),a.collapsedSeriesIndices.push(t);return a.allSeriesCollapsed=a.collapsedSeries.length+a.ancillaryCollapsedSeries.length===i.config.series.length,this._getSeriesBasedOnCollapsedState(s)}},{key:"hideSeries",value:function(e){for(var t=e.seriesEl,i=e.realIndex,a=this.w,s=this.getSeriesAfterCollapsing({realIndex:i}),r=t.childNodes,n=0;n0){for(var r=0;r1;if(this.legendHelpers.appendToForeignObject(),(a||!t.axisCharts)&&i.legend.show){for(;t.dom.elLegendWrap.firstChild;)t.dom.elLegendWrap.removeChild(t.dom.elLegendWrap.firstChild);this.drawLegends(),i.legend.position==="bottom"||i.legend.position==="top"?this.legendAlignHorizontal():i.legend.position!=="right"&&i.legend.position!=="left"||this.legendAlignVertical()}}},{key:"createLegendMarker",value:function(e){var t=e.i,i=e.fillcolor,a=this.w,s=document.createElement("span");s.classList.add("apexcharts-legend-marker");var r=a.config.legend.markers.shape||a.config.markers.shape,n=r;Array.isArray(r)&&(n=r[t]);var l=Array.isArray(a.config.legend.markers.size)?parseFloat(a.config.legend.markers.size[t]):parseFloat(a.config.legend.markers.size),h=Array.isArray(a.config.legend.markers.offsetX)?parseFloat(a.config.legend.markers.offsetX[t]):parseFloat(a.config.legend.markers.offsetX),d=Array.isArray(a.config.legend.markers.offsetY)?parseFloat(a.config.legend.markers.offsetY[t]):parseFloat(a.config.legend.markers.offsetY),c=Array.isArray(a.config.legend.markers.strokeWidth)?parseFloat(a.config.legend.markers.strokeWidth[t]):parseFloat(a.config.legend.markers.strokeWidth),u=s.style;if(u.height=2*(l+c)+"px",u.width=2*(l+c)+"px",u.left=h+"px",u.top=d+"px",a.config.legend.markers.customHTML)u.background="transparent",u.color=i[t],Array.isArray(a.config.legend.markers.customHTML)?a.config.legend.markers.customHTML[t]&&(s.innerHTML=a.config.legend.markers.customHTML[t]()):s.innerHTML=a.config.legend.markers.customHTML();else{var g=new Ct(this.ctx).getMarkerConfig({cssClass:"apexcharts-legend-marker apexcharts-marker apexcharts-marker-".concat(n),seriesIndex:t,strokeWidth:c,size:l}),p=window.SVG().addTo(s).size("100%","100%"),f=new X(this.ctx).drawMarker(0,0,R(R({},g),{},{pointFillColor:Array.isArray(i)?i[t]:g.pointFillColor,shape:n}));a.globals.dom.Paper.find(".apexcharts-legend-marker.apexcharts-marker").forEach(function(x){x.node.classList.contains("apexcharts-marker-triangle")?x.node.style.transform="translate(50%, 45%)":x.node.style.transform="translate(50%, 50%)"}),p.add(f)}return s}},{key:"drawLegends",value:function(){var e=this,t=this.w,i=t.config.legend.fontFamily,a=t.globals.seriesNames,s=t.config.legend.markers.fillColors?t.config.legend.markers.fillColors.slice():t.globals.colors.slice();if(t.config.chart.type==="heatmap"){var r=t.config.plotOptions.heatmap.colorScale.ranges;a=r.map(function(w){return w.name?w.name:w.from+" - "+w.to}),s=r.map(function(w){return w.color})}else this.isBarsDistributed&&(a=t.globals.labels.slice());t.config.legend.customLegendItems.length&&(a=t.config.legend.customLegendItems);for(var n=t.globals.legendFormatter,l=t.config.legend.inverseOrder,h=l?a.length-1:0;l?h>=0:h<=a.length-1;l?h--:h++){var d,c=n(a[h],{seriesIndex:h,w:t}),u=!1,g=!1;if(t.globals.collapsedSeries.length>0)for(var p=0;p0)for(var f=0;f0?h-10:0)+(d>0?d-10:0)}a.style.position="absolute",r=r+e+i.config.legend.offsetX,n=n+t+i.config.legend.offsetY,a.style.left=r+"px",a.style.top=n+"px",i.config.legend.position==="right"&&(a.style.left="auto",a.style.right=25+i.config.legend.offsetX+"px"),["width","height"].forEach(function(c){a.style[c]&&(a.style[c]=parseInt(i.config.legend[c],10)+"px")})}},{key:"legendAlignHorizontal",value:function(){var e=this.w;e.globals.dom.elLegendWrap.style.right=0;var t=new si(this.ctx),i=t.dimHelpers.getTitleSubtitleCoords("title"),a=t.dimHelpers.getTitleSubtitleCoords("subtitle"),s=0;e.config.legend.position==="top"&&(s=i.height+a.height+e.config.title.margin+e.config.subtitle.margin-10),this.setLegendWrapXY(20,s)}},{key:"legendAlignVertical",value:function(){var e=this.w,t=this.legendHelpers.getLegendDimensions(),i=0;e.config.legend.position==="left"&&(i=20),e.config.legend.position==="right"&&(i=e.globals.svgWidth-t.clww-10),this.setLegendWrapXY(i,20)}},{key:"onLegendHovered",value:function(e){var t=this.w,i=e.target.classList.contains("apexcharts-legend-series")||e.target.classList.contains("apexcharts-legend-text")||e.target.classList.contains("apexcharts-legend-marker");if(t.config.chart.type==="heatmap"||this.isBarsDistributed){if(i){var a=parseInt(e.target.getAttribute("rel"),10)-1;this.ctx.events.fireEvent("legendHover",[this.ctx,a,this.w]),new He(this.ctx).highlightRangeInSeries(e,e.target)}}else!e.target.classList.contains("apexcharts-inactive-legend")&&i&&new He(this.ctx).toggleSeriesOnHover(e,e.target)}},{key:"onLegendClick",value:function(e){var t=this.w;if(!t.config.legend.customLegendItems.length&&(e.target.classList.contains("apexcharts-legend-series")||e.target.classList.contains("apexcharts-legend-text")||e.target.classList.contains("apexcharts-legend-marker"))){var i=parseInt(e.target.getAttribute("rel"),10)-1,a=e.target.getAttribute("data:collapsed")==="true",s=this.w.config.chart.events.legendClick;typeof s=="function"&&s(this.ctx,i,this.w),this.ctx.events.fireEvent("legendClick",[this.ctx,i,this.w]);var r=this.w.config.legend.markers.onClick;typeof r=="function"&&e.target.classList.contains("apexcharts-legend-marker")&&(r(this.ctx,i,this.w),this.ctx.events.fireEvent("legendMarkerClick",[this.ctx,i,this.w])),t.config.chart.type!=="treemap"&&t.config.chart.type!=="heatmap"&&!this.isBarsDistributed&&t.config.legend.onItemClick.toggleDataSeries&&this.legendHelpers.toggleDataSeries(i,a)}}}]),o}(),Qs=function(){function o(e){Y(this,o),this.ctx=e,this.w=e.w;var t=this.w;this.ev=this.w.config.chart.events,this.selectedClass="apexcharts-selected",this.localeValues=this.w.globals.locale.toolbar,this.minX=t.globals.minX,this.maxX=t.globals.maxX}return H(o,[{key:"createToolbar",value:function(){var e=this,t=this.w,i=function(){return document.createElement("div")},a=i();if(a.setAttribute("class","apexcharts-toolbar"),a.style.top=t.config.chart.toolbar.offsetY+"px",a.style.right=3-t.config.chart.toolbar.offsetX+"px",t.globals.dom.elWrap.appendChild(a),this.elZoom=i(),this.elZoomIn=i(),this.elZoomOut=i(),this.elPan=i(),this.elSelection=i(),this.elZoomReset=i(),this.elMenuIcon=i(),this.elMenu=i(),this.elCustomIcons=[],this.t=t.config.chart.toolbar.tools,Array.isArray(this.t.customIcons))for(var s=0;s + + + +`),n("zoomOut",this.elZoomOut,` + + + +`);var l=function(c){e.t[c]&&t.config.chart[c].enabled&&r.push({el:c==="zoom"?e.elZoom:e.elSelection,icon:typeof e.t[c]=="string"?e.t[c]:c==="zoom"?` + + + +`:` + + +`,title:e.localeValues[c==="zoom"?"selectionZoom":"selection"],class:t.globals.isTouchDevice?"apexcharts-element-hidden":"apexcharts-".concat(c,"-icon")})};l("zoom"),l("selection"),this.t.pan&&t.config.chart.zoom.enabled&&r.push({el:this.elPan,icon:typeof this.t.pan=="string"?this.t.pan:` + + + + + + + +`,title:this.localeValues.pan,class:t.globals.isTouchDevice?"apexcharts-element-hidden":"apexcharts-pan-icon"}),n("reset",this.elZoomReset,` + + +`),this.t.download&&r.push({el:this.elMenuIcon,icon:typeof this.t.download=="string"?this.t.download:'',title:this.localeValues.menu,class:"apexcharts-menu-icon"});for(var h=0;hthis.wheelDelay&&(this.executeMouseWheelZoom(i),s.globals.lastWheelExecution=r),this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout(function(){r-s.globals.lastWheelExecution>a.wheelDelay&&(a.executeMouseWheelZoom(i),s.globals.lastWheelExecution=r)},this.debounceDelay)}},{key:"executeMouseWheelZoom",value:function(i){var a,s=this.w;this.minX=s.globals.isRangeBar?s.globals.minY:s.globals.minX,this.maxX=s.globals.isRangeBar?s.globals.maxY:s.globals.maxX;var r=(a=this.gridRect)===null||a===void 0?void 0:a.getBoundingClientRect();if(r){var n,l,h,d=(i.clientX-r.left)/r.width,c=this.minX,u=this.maxX,g=u-c;if(i.deltaY<0){var p=c+d*g;l=p-(n=.5*g)/2,h=p+n/2}else l=c-(n=1.5*g)/2,h=u+n/2;if(!s.globals.isRangeBar){l=Math.max(l,s.globals.initialMinX),h=Math.min(h,s.globals.initialMaxX);var f=.01*(s.globals.initialMaxX-s.globals.initialMinX);if(h-l0&&i.height>0&&(this.selectionRect.select(!1).resize(!1),this.selectionRect.select({createRot:function(){},updateRot:function(){},createHandle:function(a,s,r,n,l){return l==="l"||l==="r"?a.circle(8).css({"stroke-width":1,stroke:"#333",fill:"#fff"}):a.circle(0)},updateHandle:function(a,s){return a.center(s[0],s[1])}}).resize().on("resizing",this.selectionDragging.bind(this,"resizing")))}}},{key:"preselectedSelection",value:function(){var i=this.w,a=this.xyRatios;if(!i.globals.zoomEnabled){if(i.globals.selection!==void 0&&i.globals.selection!==null)this.drawSelectionRect(R(R({},i.globals.selection),{},{translateX:i.globals.translateX,translateY:i.globals.translateY}));else if(i.config.chart.selection.xaxis.min!==void 0&&i.config.chart.selection.xaxis.max!==void 0){var s=(i.config.chart.selection.xaxis.min-i.globals.minX)/a.xRatio,r=i.globals.gridWidth-(i.globals.maxX-i.config.chart.selection.xaxis.max)/a.xRatio-s;i.globals.isRangeBar&&(s=(i.config.chart.selection.xaxis.min-i.globals.yAxisScale[0].niceMin)/a.invertedYRatio,r=(i.config.chart.selection.xaxis.max-i.config.chart.selection.xaxis.min)/a.invertedYRatio);var n={x:s,y:0,width:r,height:i.globals.gridHeight,translateX:i.globals.translateX,translateY:i.globals.translateY,selectionEnabled:!0};this.drawSelectionRect(n),this.makeSelectionRectDraggable(),typeof i.config.chart.events.selection=="function"&&i.config.chart.events.selection(this.ctx,{xaxis:{min:i.config.chart.selection.xaxis.min,max:i.config.chart.selection.xaxis.max},yaxis:{}})}}}},{key:"drawSelectionRect",value:function(i){var a=i.x,s=i.y,r=i.width,n=i.height,l=i.translateX,h=l===void 0?0:l,d=i.translateY,c=d===void 0?0:d,u=this.w,g=this.zoomRect,p=this.selectionRect;if(this.dragged||u.globals.selection!==null){var f={transform:"translate("+h+", "+c+")"};u.globals.zoomEnabled&&this.dragged&&(r<0&&(r=1),g.attr({x:a,y:s,width:r,height:n,fill:u.config.chart.zoom.zoomedArea.fill.color,"fill-opacity":u.config.chart.zoom.zoomedArea.fill.opacity,stroke:u.config.chart.zoom.zoomedArea.stroke.color,"stroke-width":u.config.chart.zoom.zoomedArea.stroke.width,"stroke-opacity":u.config.chart.zoom.zoomedArea.stroke.opacity}),X.setAttrs(g.node,f)),u.globals.selectionEnabled&&(p.attr({x:a,y:s,width:r>0?r:0,height:n>0?n:0,fill:u.config.chart.selection.fill.color,"fill-opacity":u.config.chart.selection.fill.opacity,stroke:u.config.chart.selection.stroke.color,"stroke-width":u.config.chart.selection.stroke.width,"stroke-dasharray":u.config.chart.selection.stroke.dashArray,"stroke-opacity":u.config.chart.selection.stroke.opacity}),X.setAttrs(p.node,f))}}},{key:"hideSelectionRect",value:function(i){i&&i.attr({x:0,y:0,width:0,height:0})}},{key:"selectionDrawing",value:function(i){var a=i.context,s=i.zoomtype,r=this.w,n=a,l=this.gridRect.getBoundingClientRect(),h=n.startX-1,d=n.startY,c=!1,u=!1,g=n.clientX-l.left-h,p=n.clientY-l.top-d,f={translateX:r.globals.translateX,translateY:r.globals.translateY};return Math.abs(g+h)>r.globals.gridWidth?g=r.globals.gridWidth-h:n.clientX-l.left<0&&(g=h),h>n.clientX-l.left&&(c=!0,g=Math.abs(g)),d>n.clientY-l.top&&(u=!0,p=Math.abs(p)),f=R(R({},f=s==="x"?{x:c?h-g:h,y:0,width:g,height:r.globals.gridHeight}:s==="y"?{x:0,y:u?d-p:d,width:r.globals.gridWidth,height:p}:{x:c?h-g:h,y:u?d-p:d,width:g,height:p}),{},{translateX:r.globals.translateX,translateY:r.globals.translateY}),n.drawSelectionRect(f),n.selectionDragging("resizing"),f}},{key:"selectionDragging",value:function(i,a){var s=this,r=this.w;if(a){a.preventDefault();var n=a.detail,l=n.handler,h=n.box,d=h.x,c=h.y;dthis.constraints.x2&&(d=this.constraints.x2-h.w),h.y2>this.constraints.y2&&(c=this.constraints.y2-h.h),l.move(d,c);var u=this.xyRatios,g=this.selectionRect,p=0;i==="resizing"&&(p=30);var f=function(m){return parseFloat(g.node.getAttribute(m))},x={x:f("x"),y:f("y"),width:f("width"),height:f("height")};r.globals.selection=x,typeof r.config.chart.events.selection=="function"&&r.globals.selectionEnabled&&(clearTimeout(this.w.globals.selectionResizeTimer),this.w.globals.selectionResizeTimer=window.setTimeout(function(){var m,b,v,k,w=s.gridRect.getBoundingClientRect(),C=g.node.getBoundingClientRect();r.globals.isRangeBar?(m=r.globals.yAxisScale[0].niceMin+(C.left-w.left)*u.invertedYRatio,b=r.globals.yAxisScale[0].niceMin+(C.right-w.left)*u.invertedYRatio,v=0,k=1):(m=r.globals.xAxisScale.niceMin+(C.left-w.left)*u.xRatio,b=r.globals.xAxisScale.niceMin+(C.right-w.left)*u.xRatio,v=r.globals.yAxisScale[0].niceMin+(w.bottom-C.bottom)*u.yRatio[0],k=r.globals.yAxisScale[0].niceMax-(C.top-w.top)*u.yRatio[0]);var y={xaxis:{min:m,max:b},yaxis:{min:v,max:k}};r.config.chart.events.selection(s.ctx,y),r.config.chart.brush.enabled&&r.config.chart.events.brushScrolled!==void 0&&r.config.chart.events.brushScrolled(s.ctx,y)},p))}}},{key:"selectionDrawn",value:function(i){var a=i.context,s=i.zoomtype,r=this.w,n=a,l=this.xyRatios,h=this.ctx.toolbar;if(n.startX>n.endX){var d=n.startX;n.startX=n.endX,n.endX=d}if(n.startY>n.endY){var c=n.startY;n.startY=n.endY,n.endY=c}var u=void 0,g=void 0;r.globals.isRangeBar?(u=r.globals.yAxisScale[0].niceMin+n.startX*l.invertedYRatio,g=r.globals.yAxisScale[0].niceMin+n.endX*l.invertedYRatio):(u=r.globals.xAxisScale.niceMin+n.startX*l.xRatio,g=r.globals.xAxisScale.niceMin+n.endX*l.xRatio);var p=[],f=[];if(r.config.yaxis.forEach(function(C,y){var A=r.globals.seriesYAxisMap[y][0];p.push(r.globals.yAxisScale[y].niceMax-l.yRatio[A]*n.startY),f.push(r.globals.yAxisScale[y].niceMax-l.yRatio[A]*n.endY)}),n.dragged&&(n.dragX>10||n.dragY>10)&&u!==g){if(r.globals.zoomEnabled){var x=M.clone(r.globals.initialConfig.yaxis),m=M.clone(r.globals.initialConfig.xaxis);if(r.globals.zoomed=!0,r.config.xaxis.convertedCatToNumeric&&(u=Math.floor(u),g=Math.floor(g),u<1&&(u=1,g=r.globals.dataPoints),g-u<2&&(g=u+1)),s!=="xy"&&s!=="x"||(m={min:u,max:g}),s!=="xy"&&s!=="y"||x.forEach(function(C,y){x[y].min=f[y],x[y].max=p[y]}),h){var b=h.getBeforeZoomRange(m,x);b&&(m=b.xaxis?b.xaxis:m,x=b.yaxis?b.yaxis:x)}var v={xaxis:m};r.config.chart.group||(v.yaxis=x),n.ctx.updateHelpers._updateOptions(v,!1,n.w.config.chart.animations.dynamicAnimation.enabled),typeof r.config.chart.events.zoomed=="function"&&h.zoomCallback(m,x)}else if(r.globals.selectionEnabled){var k,w=null;k={min:u,max:g},s!=="xy"&&s!=="y"||(w=M.clone(r.config.yaxis)).forEach(function(C,y){w[y].min=f[y],w[y].max=p[y]}),r.globals.selection=n.selection,typeof r.config.chart.events.selection=="function"&&r.config.chart.events.selection(n.ctx,{xaxis:k,yaxis:w})}}}},{key:"panDragging",value:function(i){var a=i.context,s=this.w,r=a;if(s.globals.lastClientPosition.x!==void 0){var n=s.globals.lastClientPosition.x-r.clientX,l=s.globals.lastClientPosition.y-r.clientY;Math.abs(n)>Math.abs(l)&&n>0?this.moveDirection="left":Math.abs(n)>Math.abs(l)&&n<0?this.moveDirection="right":Math.abs(l)>Math.abs(n)&&l>0?this.moveDirection="up":Math.abs(l)>Math.abs(n)&&l<0&&(this.moveDirection="down")}s.globals.lastClientPosition={x:r.clientX,y:r.clientY};var h=s.globals.isRangeBar?s.globals.minY:s.globals.minX,d=s.globals.isRangeBar?s.globals.maxY:s.globals.maxX;s.config.xaxis.convertedCatToNumeric||r.panScrolled(h,d)}},{key:"delayedPanScrolled",value:function(){var i=this.w,a=i.globals.minX,s=i.globals.maxX,r=(i.globals.maxX-i.globals.minX)/2;this.moveDirection==="left"?(a=i.globals.minX+r,s=i.globals.maxX+r):this.moveDirection==="right"&&(a=i.globals.minX-r,s=i.globals.maxX-r),a=Math.floor(a),s=Math.floor(s),this.updateScrolledChart({xaxis:{min:a,max:s}},a,s)}},{key:"panScrolled",value:function(i,a){var s=this.w,r=this.xyRatios,n=M.clone(s.globals.initialConfig.yaxis),l=r.xRatio,h=s.globals.minX,d=s.globals.maxX;s.globals.isRangeBar&&(l=r.invertedYRatio,h=s.globals.minY,d=s.globals.maxY),this.moveDirection==="left"?(i=h+s.globals.gridWidth/15*l,a=d+s.globals.gridWidth/15*l):this.moveDirection==="right"&&(i=h-s.globals.gridWidth/15*l,a=d-s.globals.gridWidth/15*l),s.globals.isRangeBar||(is.globals.initialMaxX)&&(i=h,a=d);var c={xaxis:{min:i,max:a}};s.config.chart.group||(c.yaxis=n),this.updateScrolledChart(c,i,a)}},{key:"updateScrolledChart",value:function(i,a,s){var r=this.w;this.ctx.updateHelpers._updateOptions(i,!1,!1),typeof r.config.chart.events.scrolled=="function"&&r.config.chart.events.scrolled(this.ctx,{xaxis:{min:a,max:s}})}}]),t}(),er=function(){function o(e){Y(this,o),this.w=e.w,this.ttCtx=e,this.ctx=e.ctx}return H(o,[{key:"getNearestValues",value:function(e){var t=e.hoverArea,i=e.elGrid,a=e.clientX,s=e.clientY,r=this.w,n=i.getBoundingClientRect(),l=n.width,h=n.height,d=l/(r.globals.dataPoints-1),c=h/r.globals.dataPoints,u=this.hasBars();!r.globals.comboCharts&&!u||r.config.xaxis.convertedCatToNumeric||(d=l/r.globals.dataPoints);var g=a-n.left-r.globals.barPadForNumericAxis,p=s-n.top;g<0||p<0||g>l||p>h?(t.classList.remove("hovering-zoom"),t.classList.remove("hovering-pan")):r.globals.zoomEnabled?(t.classList.remove("hovering-pan"),t.classList.add("hovering-zoom")):r.globals.panEnabled&&(t.classList.remove("hovering-zoom"),t.classList.add("hovering-pan"));var f=Math.round(g/d),x=Math.floor(p/c);u&&!r.config.xaxis.convertedCatToNumeric&&(f=Math.ceil(g/d),f-=1);var m=null,b=null,v=r.globals.seriesXvalues.map(function(A){return A.filter(function(L){return M.isNumber(L)})}),k=r.globals.seriesYvalues.map(function(A){return A.filter(function(L){return M.isNumber(L)})});if(r.globals.isXNumeric){var w=this.ttCtx.getElGrid().getBoundingClientRect(),C=g*(w.width/l),y=p*(w.height/h);m=(b=this.closestInMultiArray(C,y,v,k)).index,f=b.j,m!==null&&(v=r.globals.seriesXvalues[m],f=(b=this.closestInArray(C,v)).index)}return r.globals.capturedSeriesIndex=m===null?-1:m,(!f||f<1)&&(f=0),r.globals.isBarHorizontal?r.globals.capturedDataPointIndex=x:r.globals.capturedDataPointIndex=f,{capturedSeries:m,j:r.globals.isBarHorizontal?x:f,hoverX:g,hoverY:p}}},{key:"closestInMultiArray",value:function(e,t,i,a){var s=this.w,r=0,n=null,l=-1;s.globals.series.length>1?r=this.getFirstActiveXArray(i):n=0;var h=i[r][0],d=Math.abs(e-h);if(i.forEach(function(g){g.forEach(function(p,f){var x=Math.abs(e-p);x<=d&&(d=x,l=f)})}),l!==-1){var c=a[r][l],u=Math.abs(t-c);n=r,a.forEach(function(g,p){var f=Math.abs(t-g[l]);f<=u&&(u=f,n=p)})}return{index:n,j:l}}},{key:"getFirstActiveXArray",value:function(e){for(var t=this.w,i=0,a=e.map(function(r,n){return r.length>0?n:-1}),s=0;s0)for(var a=0;a *")):this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers-wrap > *")}},{key:"getAllMarkers",value:function(){var e=this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers-wrap");(e=ve(e)).sort(function(i,a){var s=Number(i.getAttribute("data:realIndex")),r=Number(a.getAttribute("data:realIndex"));return rs?-1:0});var t=[];return e.forEach(function(i){t.push(i.querySelector(".apexcharts-marker"))}),t}},{key:"hasMarkers",value:function(e){return this.getElMarkers(e).length>0}},{key:"getPathFromPoint",value:function(e,t){var i=Number(e.getAttribute("cx")),a=Number(e.getAttribute("cy")),s=e.getAttribute("shape");return new X(this.ctx).getMarkerPath(i,a,s,t)}},{key:"getElBars",value:function(){return this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-bar-series, .apexcharts-candlestick-series, .apexcharts-boxPlot-series, .apexcharts-rangebar-series")}},{key:"hasBars",value:function(){return this.getElBars().length>0}},{key:"getHoverMarkerSize",value:function(e){var t=this.w,i=t.config.markers.hover.size;return i===void 0&&(i=t.globals.markers.size[e]+t.config.markers.hover.sizeOffset),i}},{key:"toggleAllTooltipSeriesGroups",value:function(e){var t=this.w,i=this.ttCtx;i.allTooltipSeriesGroups.length===0&&(i.allTooltipSeriesGroups=t.globals.dom.baseEl.querySelectorAll(".apexcharts-tooltip-series-group"));for(var a=i.allTooltipSeriesGroups,s=0;s ').concat(S.attrs.name,"

"),L+="
".concat(S.val,"
")}),v.innerHTML=A+"
",k.innerHTML=L+"
"};n?h.globals.seriesGoals[t][i]&&Array.isArray(h.globals.seriesGoals[t][i])?w():(v.innerHTML="",k.innerHTML=""):w()}else v.innerHTML="",k.innerHTML="";if(f!==null&&(a[t].querySelector(".apexcharts-tooltip-text-z-label").innerHTML=h.config.tooltip.z.title,a[t].querySelector(".apexcharts-tooltip-text-z-value").innerHTML=f!==void 0?f:""),n&&x[0]){if(h.config.tooltip.hideEmptySeries){var C=a[t].querySelector(".apexcharts-tooltip-marker"),y=a[t].querySelector(".apexcharts-tooltip-text");parseFloat(c)==0?(C.style.display="none",y.style.display="none"):(C.style.display="block",y.style.display="block")}c==null||h.globals.ancillaryCollapsedSeriesIndices.indexOf(t)>-1||h.globals.collapsedSeriesIndices.indexOf(t)>-1||Array.isArray(d.tConfig.enabledOnSeries)&&d.tConfig.enabledOnSeries.indexOf(t)===-1?x[0].parentNode.style.display="none":x[0].parentNode.style.display=h.config.tooltip.items.display}else Array.isArray(d.tConfig.enabledOnSeries)&&d.tConfig.enabledOnSeries.indexOf(t)===-1&&(x[0].parentNode.style.display="none")}},{key:"toggleActiveInactiveSeries",value:function(e,t){var i=this.w;if(e)this.tooltipUtil.toggleAllTooltipSeriesGroups("enable");else{this.tooltipUtil.toggleAllTooltipSeriesGroups("disable");var a=i.globals.dom.baseEl.querySelector(".apexcharts-tooltip-series-group-".concat(t));a&&(a.classList.add("apexcharts-active"),a.style.display=i.config.tooltip.items.display)}}},{key:"getValuesToPrint",value:function(e){var t=e.i,i=e.j,a=this.w,s=this.ctx.series.filteredSeriesX(),r="",n="",l=null,h=null,d={series:a.globals.series,seriesIndex:t,dataPointIndex:i,w:a},c=a.globals.ttZFormatter;i===null?h=a.globals.series[t]:a.globals.isXNumeric&&a.config.chart.type!=="treemap"?(r=s[t][i],s[t].length===0&&(r=s[this.tooltipUtil.getFirstActiveXArray(s)][i])):r=new fa(this.ctx).isFormatXY()?a.config.series[t].data[i]!==void 0?a.config.series[t].data[i].x:"":a.globals.labels[i]!==void 0?a.globals.labels[i]:"";var u=r;return a.globals.isXNumeric&&a.config.xaxis.type==="datetime"?r=new Nt(this.ctx).xLabelFormat(a.globals.ttKeyFormatter,u,u,{i:void 0,dateFormatter:new we(this.ctx).formatDate,w:this.w}):r=a.globals.isBarHorizontal?a.globals.yLabelFormatters[0](u,d):a.globals.xLabelFormatter(u,d),a.config.tooltip.x.formatter!==void 0&&(r=a.globals.ttKeyFormatter(u,d)),a.globals.seriesZ.length>0&&a.globals.seriesZ[t].length>0&&(l=c(a.globals.seriesZ[t][i],a)),n=typeof a.config.xaxis.tooltip.formatter=="function"?a.globals.xaxisTooltipFormatter(u,d):r,{val:Array.isArray(h)?h.join(" "):h,xVal:Array.isArray(r)?r.join(" "):r,xAxisTTVal:Array.isArray(n)?n.join(" "):n,zVal:l}}},{key:"handleCustomTooltip",value:function(e){var t=e.i,i=e.j,a=e.y1,s=e.y2,r=e.w,n=this.ttCtx.getElTooltip(),l=r.config.tooltip.custom;Array.isArray(l)&&l[t]&&(l=l[t]),n.innerHTML=l({ctx:this.ctx,series:r.globals.series,seriesIndex:t,dataPointIndex:i,y1:a,y2:s,w:r})}}]),o}(),tr=function(){function o(e){Y(this,o),this.ttCtx=e,this.ctx=e.ctx,this.w=e.w}return H(o,[{key:"moveXCrosshairs",value:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,i=this.ttCtx,a=this.w,s=i.getElXCrosshairs(),r=e-i.xcrosshairsWidth/2,n=a.globals.labels.slice().length;if(t!==null&&(r=a.globals.gridWidth/n*t),s===null||a.globals.isBarHorizontal||(s.setAttribute("x",r),s.setAttribute("x1",r),s.setAttribute("x2",r),s.setAttribute("y2",a.globals.gridHeight),s.classList.add("apexcharts-active")),r<0&&(r=0),r>a.globals.gridWidth&&(r=a.globals.gridWidth),i.isXAxisTooltipEnabled){var l=r;a.config.xaxis.crosshairs.width!=="tickWidth"&&a.config.xaxis.crosshairs.width!=="barWidth"||(l=r+i.xcrosshairsWidth/2),this.moveXAxisTooltip(l)}}},{key:"moveYCrosshairs",value:function(e){var t=this.ttCtx;t.ycrosshairs!==null&&X.setAttrs(t.ycrosshairs,{y1:e,y2:e}),t.ycrosshairsHidden!==null&&X.setAttrs(t.ycrosshairsHidden,{y1:e,y2:e})}},{key:"moveXAxisTooltip",value:function(e){var t=this.w,i=this.ttCtx;if(i.xaxisTooltip!==null&&i.xcrosshairsWidth!==0){i.xaxisTooltip.classList.add("apexcharts-active");var a=i.xaxisOffY+t.config.xaxis.tooltip.offsetY+t.globals.translateY+1+t.config.xaxis.offsetY;if(e-=i.xaxisTooltip.getBoundingClientRect().width/2,!isNaN(e)){e+=t.globals.translateX;var s;s=new X(this.ctx).getTextRects(i.xaxisTooltipText.innerHTML),i.xaxisTooltipText.style.minWidth=s.width+"px",i.xaxisTooltip.style.left=e+"px",i.xaxisTooltip.style.top=a+"px"}}}},{key:"moveYAxisTooltip",value:function(e){var t=this.w,i=this.ttCtx;i.yaxisTTEls===null&&(i.yaxisTTEls=t.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxistooltip"));var a=parseInt(i.ycrosshairsHidden.getAttribute("y1"),10),s=t.globals.translateY+a,r=i.yaxisTTEls[e].getBoundingClientRect().height,n=t.globals.translateYAxisX[e]-2;t.config.yaxis[e].opposite&&(n-=26),s-=r/2,t.globals.ignoreYAxisIndexes.indexOf(e)===-1?(i.yaxisTTEls[e].classList.add("apexcharts-active"),i.yaxisTTEls[e].style.top=s+"px",i.yaxisTTEls[e].style.left=n+t.config.yaxis[e].tooltip.offsetX+"px"):i.yaxisTTEls[e].classList.remove("apexcharts-active")}},{key:"moveTooltip",value:function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,a=this.w,s=this.ttCtx,r=s.getElTooltip(),n=s.tooltipRect,l=i!==null?parseFloat(i):1,h=parseFloat(e)+l+5,d=parseFloat(t)+l/2;if(h>a.globals.gridWidth/2&&(h=h-n.ttWidth-l-10),h>a.globals.gridWidth-n.ttWidth-10&&(h=a.globals.gridWidth-n.ttWidth),h<-20&&(h=-20),a.config.tooltip.followCursor){var c=s.getElGrid().getBoundingClientRect();(h=s.e.clientX-c.left)>a.globals.gridWidth/2&&(h-=s.tooltipRect.ttWidth),(d=s.e.clientY+a.globals.translateY-c.top)>a.globals.gridHeight/2&&(d-=s.tooltipRect.ttHeight)}else a.globals.isBarHorizontal||n.ttHeight/2+d>a.globals.gridHeight&&(d=a.globals.gridHeight-n.ttHeight+a.globals.translateY);isNaN(h)||(h+=a.globals.translateX,r.style.left=h+"px",r.style.top=d+"px")}},{key:"moveMarkers",value:function(e,t){var i=this.w,a=this.ttCtx;if(i.globals.markers.size[e]>0)for(var s=i.globals.dom.baseEl.querySelectorAll(" .apexcharts-series[data\\:realIndex='".concat(e,"'] .apexcharts-marker")),r=0;r0){var p=g.getAttribute("shape"),f=h.getMarkerPath(s,r,p,1.5*c);g.setAttribute("d",f)}this.moveXCrosshairs(s),l.fixedTooltip||this.moveTooltip(s,r,c)}}},{key:"moveDynamicPointsOnHover",value:function(e){var t,i=this.ttCtx,a=i.w,s=0,r=0,n=a.globals.pointsArray,l=new He(this.ctx),h=new X(this.ctx);t=l.getActiveConfigSeriesIndex("asc",["line","area","scatter","bubble"]);var d=i.tooltipUtil.getHoverMarkerSize(t);n[t]&&(s=n[t][e][0],r=n[t][e][1]);var c=i.tooltipUtil.getAllMarkers();if(c!==null)for(var u=0;u0){var b=h.getMarkerPath(s,p,x,d);c[u].setAttribute("d",b)}else c[u].setAttribute("d","")}}this.moveXCrosshairs(s),i.fixedTooltip||this.moveTooltip(s,r||a.globals.gridHeight,d)}},{key:"moveStickyTooltipOverBars",value:function(e,t){var i=this.w,a=this.ttCtx,s=i.globals.columnSeries?i.globals.columnSeries.length:i.globals.series.length,r=s>=2&&s%2==0?Math.floor(s/2):Math.floor(s/2)+1;i.globals.isBarHorizontal&&(r=new He(this.ctx).getActiveConfigSeriesIndex("desc")+1);var n=i.globals.dom.baseEl.querySelector(".apexcharts-bar-series .apexcharts-series[rel='".concat(r,"'] path[j='").concat(e,"'], .apexcharts-candlestick-series .apexcharts-series[rel='").concat(r,"'] path[j='").concat(e,"'], .apexcharts-boxPlot-series .apexcharts-series[rel='").concat(r,"'] path[j='").concat(e,"'], .apexcharts-rangebar-series .apexcharts-series[rel='").concat(r,"'] path[j='").concat(e,"']"));n||typeof t!="number"||(n=i.globals.dom.baseEl.querySelector(".apexcharts-bar-series .apexcharts-series[data\\:realIndex='".concat(t,"'] path[j='").concat(e,`'], + .apexcharts-candlestick-series .apexcharts-series[data\\:realIndex='`).concat(t,"'] path[j='").concat(e,`'], + .apexcharts-boxPlot-series .apexcharts-series[data\\:realIndex='`).concat(t,"'] path[j='").concat(e,`'], + .apexcharts-rangebar-series .apexcharts-series[data\\:realIndex='`).concat(t,"'] path[j='").concat(e,"']")));var l=n?parseFloat(n.getAttribute("cx")):0,h=n?parseFloat(n.getAttribute("cy")):0,d=n?parseFloat(n.getAttribute("barWidth")):0,c=a.getElGrid().getBoundingClientRect(),u=n&&(n.classList.contains("apexcharts-candlestick-area")||n.classList.contains("apexcharts-boxPlot-area"));i.globals.isXNumeric?(n&&!u&&(l-=s%2!=0?d/2:0),n&&u&&i.globals.comboCharts&&(l-=d/2)):i.globals.isBarHorizontal||(l=a.xAxisTicksPositions[e-1]+a.dataPointsDividedWidth/2,isNaN(l)&&(l=a.xAxisTicksPositions[e]-a.dataPointsDividedWidth/2)),i.globals.isBarHorizontal?h-=a.tooltipRect.ttHeight:i.config.tooltip.followCursor?h=a.e.clientY-c.top-a.tooltipRect.ttHeight/2:h+a.tooltipRect.ttHeight+15>i.globals.gridHeight&&(h=i.globals.gridHeight),i.globals.isBarHorizontal||this.moveXCrosshairs(l),a.fixedTooltip||this.moveTooltip(l,h||i.globals.gridHeight)}}]),o}(),Zl=function(){function o(e){Y(this,o),this.w=e.w,this.ttCtx=e,this.ctx=e.ctx,this.tooltipPosition=new tr(e)}return H(o,[{key:"drawDynamicPoints",value:function(){var e=this.w,t=new X(this.ctx),i=new Ct(this.ctx),a=e.globals.dom.baseEl.querySelectorAll(".apexcharts-series");a=ve(a),e.config.chart.stacked&&a.sort(function(c,u){return parseFloat(c.getAttribute("data:realIndex"))-parseFloat(u.getAttribute("data:realIndex"))});for(var s=0;s2&&arguments[2]!==void 0?arguments[2]:null,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null,s=this.w;s.config.chart.type!=="bubble"&&this.newPointSize(e,t);var r=t.getAttribute("cx"),n=t.getAttribute("cy");if(i!==null&&a!==null&&(r=i,n=a),this.tooltipPosition.moveXCrosshairs(r),!this.fixedTooltip){if(s.config.chart.type==="radar"){var l=this.ttCtx.getElGrid().getBoundingClientRect();r=this.ttCtx.e.clientX-l.left}this.tooltipPosition.moveTooltip(r,n,s.config.markers.hover.size)}}},{key:"enlargePoints",value:function(e){for(var t=this.w,i=this,a=this.ttCtx,s=e,r=t.globals.dom.baseEl.querySelectorAll(".apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker"),n=t.config.markers.hover.size,l=0;l0){var a=this.ttCtx.tooltipUtil.getPathFromPoint(e[t],i);e[t].setAttribute("d",a)}else e[t].setAttribute("d","M0,0")}}}]),o}(),Jl=function(){function o(e){Y(this,o),this.w=e.w;var t=this.w;this.ttCtx=e,this.isVerticalGroupedRangeBar=!t.globals.isBarHorizontal&&t.config.chart.type==="rangeBar"&&t.config.plotOptions.bar.rangeBarGroupRows}return H(o,[{key:"getAttr",value:function(e,t){return parseFloat(e.target.getAttribute(t))}},{key:"handleHeatTreeTooltip",value:function(e){var t=e.e,i=e.opt,a=e.x,s=e.y,r=e.type,n=this.ttCtx,l=this.w;if(t.target.classList.contains("apexcharts-".concat(r,"-rect"))){var h=this.getAttr(t,"i"),d=this.getAttr(t,"j"),c=this.getAttr(t,"cx"),u=this.getAttr(t,"cy"),g=this.getAttr(t,"width"),p=this.getAttr(t,"height");if(n.tooltipLabels.drawSeriesTexts({ttItems:i.ttItems,i:h,j:d,shared:!1,e:t}),l.globals.capturedSeriesIndex=h,l.globals.capturedDataPointIndex=d,a=c+n.tooltipRect.ttWidth/2+g,s=u+n.tooltipRect.ttHeight/2-p/2,n.tooltipPosition.moveXCrosshairs(c+g/2),a>l.globals.gridWidth/2&&(a=c-n.tooltipRect.ttWidth/2+g),n.w.config.tooltip.followCursor){var f=l.globals.dom.elWrap.getBoundingClientRect();a=l.globals.clientX-f.left-(a>l.globals.gridWidth/2?n.tooltipRect.ttWidth:0),s=l.globals.clientY-f.top-(s>l.globals.gridHeight/2?n.tooltipRect.ttHeight:0)}}return{x:a,y:s}}},{key:"handleMarkerTooltip",value:function(e){var t,i,a=e.e,s=e.opt,r=e.x,n=e.y,l=this.w,h=this.ttCtx;if(a.target.classList.contains("apexcharts-marker")){var d=parseInt(s.paths.getAttribute("cx"),10),c=parseInt(s.paths.getAttribute("cy"),10),u=parseFloat(s.paths.getAttribute("val"));if(i=parseInt(s.paths.getAttribute("rel"),10),t=parseInt(s.paths.parentNode.parentNode.parentNode.getAttribute("rel"),10)-1,h.intersect){var g=M.findAncestor(s.paths,"apexcharts-series");g&&(t=parseInt(g.getAttribute("data:realIndex"),10))}if(h.tooltipLabels.drawSeriesTexts({ttItems:s.ttItems,i:t,j:i,shared:!h.showOnIntersect&&l.config.tooltip.shared,e:a}),a.type==="mouseup"&&h.markerClick(a,t,i),l.globals.capturedSeriesIndex=t,l.globals.capturedDataPointIndex=i,r=d,n=c+l.globals.translateY-1.4*h.tooltipRect.ttHeight,h.w.config.tooltip.followCursor){var p=h.getElGrid().getBoundingClientRect();n=h.e.clientY+l.globals.translateY-p.top}u<0&&(n=c),h.marker.enlargeCurrentPoint(i,s.paths,r,n)}return{x:r,y:n}}},{key:"handleBarTooltip",value:function(e){var t,i,a=e.e,s=e.opt,r=this.w,n=this.ttCtx,l=n.getElTooltip(),h=0,d=0,c=0,u=this.getBarTooltipXY({e:a,opt:s});if(u.j!==null||u.barHeight!==0||u.barWidth!==0){t=u.i;var g=u.j;if(r.globals.capturedSeriesIndex=t,r.globals.capturedDataPointIndex=g,r.globals.isBarHorizontal&&n.tooltipUtil.hasBars()||!r.config.tooltip.shared?(d=u.x,c=u.y,i=Array.isArray(r.config.stroke.width)?r.config.stroke.width[t]:r.config.stroke.width,h=d):r.globals.comboCharts||r.config.tooltip.shared||(h/=2),isNaN(c)&&(c=r.globals.svgHeight-n.tooltipRect.ttHeight),parseInt(s.paths.parentNode.getAttribute("data:realIndex"),10),d+n.tooltipRect.ttWidth>r.globals.gridWidth?d-=n.tooltipRect.ttWidth:d<0&&(d=0),n.w.config.tooltip.followCursor){var p=n.getElGrid().getBoundingClientRect();c=n.e.clientY-p.top}n.tooltip===null&&(n.tooltip=r.globals.dom.baseEl.querySelector(".apexcharts-tooltip")),r.config.tooltip.shared||(r.globals.comboBarCount>0?n.tooltipPosition.moveXCrosshairs(h+i/2):n.tooltipPosition.moveXCrosshairs(h)),!n.fixedTooltip&&(!r.config.tooltip.shared||r.globals.isBarHorizontal&&n.tooltipUtil.hasBars())&&(c=c+r.globals.translateY-n.tooltipRect.ttHeight/2,l.style.left=d+r.globals.translateX+"px",l.style.top=c+"px")}}},{key:"getBarTooltipXY",value:function(e){var t=this,i=e.e,a=e.opt,s=this.w,r=null,n=this.ttCtx,l=0,h=0,d=0,c=0,u=0,g=i.target.classList;if(g.contains("apexcharts-bar-area")||g.contains("apexcharts-candlestick-area")||g.contains("apexcharts-boxPlot-area")||g.contains("apexcharts-rangebar-area")){var p=i.target,f=p.getBoundingClientRect(),x=a.elGrid.getBoundingClientRect(),m=f.height;u=f.height;var b=f.width,v=parseInt(p.getAttribute("cx"),10),k=parseInt(p.getAttribute("cy"),10);c=parseFloat(p.getAttribute("barWidth"));var w=i.type==="touchmove"?i.touches[0].clientX:i.clientX;r=parseInt(p.getAttribute("j"),10),l=parseInt(p.parentNode.getAttribute("rel"),10)-1;var C=p.getAttribute("data-range-y1"),y=p.getAttribute("data-range-y2");s.globals.comboCharts&&(l=parseInt(p.parentNode.getAttribute("data:realIndex"),10));var A=function(S){return s.globals.isXNumeric?v-b/2:t.isVerticalGroupedRangeBar?v+b/2:v-n.dataPointsDividedWidth+b/2},L=function(){return k-n.dataPointsDividedHeight+m/2-n.tooltipRect.ttHeight/2};n.tooltipLabels.drawSeriesTexts({ttItems:a.ttItems,i:l,j:r,y1:C?parseInt(C,10):null,y2:y?parseInt(y,10):null,shared:!n.showOnIntersect&&s.config.tooltip.shared,e:i}),s.config.tooltip.followCursor?s.globals.isBarHorizontal?(h=w-x.left+15,d=L()):(h=A(),d=i.clientY-x.top-n.tooltipRect.ttHeight/2-15):s.globals.isBarHorizontal?((h=v)0&&i.setAttribute("width",t.xcrosshairsWidth)}},{key:"handleYCrosshair",value:function(){var e=this.w,t=this.ttCtx;t.ycrosshairs=e.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs"),t.ycrosshairsHidden=e.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs-hidden")}},{key:"drawYaxisTooltipText",value:function(e,t,i){var a=this.ttCtx,s=this.w,r=s.globals,n=r.seriesYAxisMap[e];if(a.yaxisTooltips[e]&&n.length>0){var l=r.yLabelFormatters[e],h=a.getElGrid().getBoundingClientRect(),d=n[0],c=0;i.yRatio.length>1&&(c=d);var u=(t-h.top)*i.yRatio[c],g=r.maxYArr[d]-r.minYArr[d],p=r.minYArr[d]+(g-u);s.config.yaxis[e].reversed&&(p=r.maxYArr[d]-(g-u)),a.tooltipPosition.moveYCrosshairs(t-h.top),a.yaxisTooltipText[e].innerHTML=l(p),a.tooltipPosition.moveYAxisTooltip(e)}}}]),o}(),Qa=function(){function o(e){Y(this,o),this.ctx=e,this.w=e.w;var t=this.w;this.tConfig=t.config.tooltip,this.tooltipUtil=new er(this),this.tooltipLabels=new $l(this),this.tooltipPosition=new tr(this),this.marker=new Zl(this),this.intersect=new Jl(this),this.axesTooltip=new Kl(this),this.showOnIntersect=this.tConfig.intersect,this.showTooltipTitle=this.tConfig.x.show,this.fixedTooltip=this.tConfig.fixed.enabled,this.xaxisTooltip=null,this.yaxisTTEls=null,this.isBarShared=!t.globals.isBarHorizontal&&this.tConfig.shared,this.lastHoverTime=Date.now()}return H(o,[{key:"getElTooltip",value:function(e){return e||(e=this),e.w.globals.dom.baseEl?e.w.globals.dom.baseEl.querySelector(".apexcharts-tooltip"):null}},{key:"getElXCrosshairs",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-xcrosshairs")}},{key:"getElGrid",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-grid")}},{key:"drawTooltip",value:function(e){var t=this.w;this.xyRatios=e,this.isXAxisTooltipEnabled=t.config.xaxis.tooltip.enabled&&t.globals.axisCharts,this.yaxisTooltips=t.config.yaxis.map(function(r,n){return!!(r.show&&r.tooltip.enabled&&t.globals.axisCharts)}),this.allTooltipSeriesGroups=[],t.globals.axisCharts||(this.showTooltipTitle=!1);var i=document.createElement("div");if(i.classList.add("apexcharts-tooltip"),t.config.tooltip.cssClass&&i.classList.add(t.config.tooltip.cssClass),i.classList.add("apexcharts-theme-".concat(this.tConfig.theme)),t.globals.dom.elWrap.appendChild(i),t.globals.axisCharts){this.axesTooltip.drawXaxisTooltip(),this.axesTooltip.drawYaxisTooltip(),this.axesTooltip.setXCrosshairWidth(),this.axesTooltip.handleYCrosshair();var a=new Et(this.ctx);this.xAxisTicksPositions=a.getXAxisTicksPositions()}if(!t.globals.comboCharts&&!this.tConfig.intersect&&t.config.chart.type!=="rangeBar"||this.tConfig.shared||(this.showOnIntersect=!0),t.config.markers.size!==0&&t.globals.markers.largestSize!==0||this.marker.drawDynamicPoints(this),t.globals.collapsedSeries.length!==t.globals.series.length){this.dataPointsDividedHeight=t.globals.gridHeight/t.globals.dataPoints,this.dataPointsDividedWidth=t.globals.gridWidth/t.globals.dataPoints,this.showTooltipTitle&&(this.tooltipTitle=document.createElement("div"),this.tooltipTitle.classList.add("apexcharts-tooltip-title"),this.tooltipTitle.style.fontFamily=this.tConfig.style.fontFamily||t.config.chart.fontFamily,this.tooltipTitle.style.fontSize=this.tConfig.style.fontSize,i.appendChild(this.tooltipTitle));var s=t.globals.series.length;(t.globals.xyCharts||t.globals.comboCharts)&&this.tConfig.shared&&(s=this.showOnIntersect?1:t.globals.series.length),this.legendLabels=t.globals.dom.baseEl.querySelectorAll(".apexcharts-legend-text"),this.ttItems=this.createTTElements(s),this.addSVGEvents()}}},{key:"createTTElements",value:function(e){for(var t=this,i=this.w,a=[],s=this.getElTooltip(),r=function(l){var h=document.createElement("div");h.classList.add("apexcharts-tooltip-series-group","apexcharts-tooltip-series-group-".concat(l)),h.style.order=i.config.tooltip.inverseOrder?e-l:l+1;var d=document.createElement("span");d.classList.add("apexcharts-tooltip-marker"),d.style.backgroundColor=i.globals.colors[l],h.appendChild(d);var c=document.createElement("div");c.classList.add("apexcharts-tooltip-text"),c.style.fontFamily=t.tConfig.style.fontFamily||i.config.chart.fontFamily,c.style.fontSize=t.tConfig.style.fontSize,["y","goals","z"].forEach(function(u){var g=document.createElement("div");g.classList.add("apexcharts-tooltip-".concat(u,"-group"));var p=document.createElement("span");p.classList.add("apexcharts-tooltip-text-".concat(u,"-label")),g.appendChild(p);var f=document.createElement("span");f.classList.add("apexcharts-tooltip-text-".concat(u,"-value")),g.appendChild(f),c.appendChild(g)}),h.appendChild(c),s.appendChild(h),a.push(h)},n=0;n0&&this.addPathsEventListeners(p,c),this.tooltipUtil.hasBars()&&!this.tConfig.shared&&this.addDatapointEventsListeners(c)}}},{key:"drawFixedTooltipRect",value:function(){var e=this.w,t=this.getElTooltip(),i=t.getBoundingClientRect(),a=i.width+10,s=i.height+10,r=this.tConfig.fixed.offsetX,n=this.tConfig.fixed.offsetY,l=this.tConfig.fixed.position.toLowerCase();return l.indexOf("right")>-1&&(r=r+e.globals.svgWidth-a+10),l.indexOf("bottom")>-1&&(n=n+e.globals.svgHeight-s-10),t.style.left=r+"px",t.style.top=n+"px",{x:r,y:n,ttWidth:a,ttHeight:s}}},{key:"addDatapointEventsListeners",value:function(e){var t=this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers .apexcharts-marker, .apexcharts-bar-area, .apexcharts-candlestick-area, .apexcharts-boxPlot-area, .apexcharts-rangebar-area");this.addPathsEventListeners(t,e)}},{key:"addPathsEventListeners",value:function(e,t){for(var i=this,a=function(r){var n={paths:e[r],tooltipEl:t.tooltipEl,tooltipY:t.tooltipY,tooltipX:t.tooltipX,elGrid:t.elGrid,hoverArea:t.hoverArea,ttItems:t.ttItems};["mousemove","mouseup","touchmove","mouseout","touchend"].map(function(l){return e[r].addEventListener(l,i.onSeriesHover.bind(i,n),{capture:!1,passive:!0})})},s=0;s=20?this.seriesHover(e,t):(clearTimeout(this.seriesHoverTimeout),this.seriesHoverTimeout=setTimeout(function(){i.seriesHover(e,t)},20-a))}},{key:"seriesHover",value:function(e,t){var i=this;this.lastHoverTime=Date.now();var a=[],s=this.w;s.config.chart.group&&(a=this.ctx.getGroupedCharts()),s.globals.axisCharts&&(s.globals.minX===-1/0&&s.globals.maxX===1/0||s.globals.dataPoints===0)||(a.length?a.forEach(function(r){var n=i.getElTooltip(r),l={paths:e.paths,tooltipEl:n,tooltipY:e.tooltipY,tooltipX:e.tooltipX,elGrid:e.elGrid,hoverArea:e.hoverArea,ttItems:r.w.globals.tooltip.ttItems};r.w.globals.minX===i.w.globals.minX&&r.w.globals.maxX===i.w.globals.maxX&&r.w.globals.tooltip.seriesHoverByContext({chartCtx:r,ttCtx:r.w.globals.tooltip,opt:l,e:t})}):this.seriesHoverByContext({chartCtx:this.ctx,ttCtx:this.w.globals.tooltip,opt:e,e:t}))}},{key:"seriesHoverByContext",value:function(e){var t=e.chartCtx,i=e.ttCtx,a=e.opt,s=e.e,r=t.w,n=this.getElTooltip(t);n&&(i.tooltipRect={x:0,y:0,ttWidth:n.getBoundingClientRect().width,ttHeight:n.getBoundingClientRect().height},i.e=s,i.tooltipUtil.hasBars()&&!r.globals.comboCharts&&!i.isBarShared&&this.tConfig.onDatasetHover.highlightDataSeries&&new He(t).toggleSeriesOnHover(s,s.target.parentNode),i.fixedTooltip&&i.drawFixedTooltipRect(),r.globals.axisCharts?i.axisChartsTooltips({e:s,opt:a,tooltipRect:i.tooltipRect}):i.nonAxisChartsTooltips({e:s,opt:a,tooltipRect:i.tooltipRect}))}},{key:"axisChartsTooltips",value:function(e){var t,i,a=e.e,s=e.opt,r=this.w,n=s.elGrid.getBoundingClientRect(),l=a.type==="touchmove"?a.touches[0].clientX:a.clientX,h=a.type==="touchmove"?a.touches[0].clientY:a.clientY;if(this.clientY=h,this.clientX=l,r.globals.capturedSeriesIndex=-1,r.globals.capturedDataPointIndex=-1,hn.top+n.height)this.handleMouseOut(s);else{if(Array.isArray(this.tConfig.enabledOnSeries)&&!r.config.tooltip.shared){var d=parseInt(s.paths.getAttribute("index"),10);if(this.tConfig.enabledOnSeries.indexOf(d)<0)return void this.handleMouseOut(s)}var c=this.getElTooltip(),u=this.getElXCrosshairs(),g=[];r.config.chart.group&&(g=this.ctx.getSyncedCharts());var p=r.globals.xyCharts||r.config.chart.type==="bar"&&!r.globals.isBarHorizontal&&this.tooltipUtil.hasBars()&&this.tConfig.shared||r.globals.comboCharts&&this.tooltipUtil.hasBars();if(a.type==="mousemove"||a.type==="touchmove"||a.type==="mouseup"){if(r.globals.collapsedSeries.length+r.globals.ancillaryCollapsedSeries.length===r.globals.series.length)return;u!==null&&u.classList.add("apexcharts-active");var f=this.yaxisTooltips.filter(function(b){return b===!0});if(this.ycrosshairs!==null&&f.length&&this.ycrosshairs.classList.add("apexcharts-active"),p&&!this.showOnIntersect||g.length>1)this.handleStickyTooltip(a,l,h,s);else if(r.config.chart.type==="heatmap"||r.config.chart.type==="treemap"){var x=this.intersect.handleHeatTreeTooltip({e:a,opt:s,x:t,y:i,type:r.config.chart.type});t=x.x,i=x.y,c.style.left=t+"px",c.style.top=i+"px"}else this.tooltipUtil.hasBars()&&this.intersect.handleBarTooltip({e:a,opt:s}),this.tooltipUtil.hasMarkers()&&this.intersect.handleMarkerTooltip({e:a,opt:s,x:t,y:i});if(this.yaxisTooltips.length)for(var m=0;mh.width)this.handleMouseOut(a);else if(l!==null)this.handleStickyCapturedSeries(e,l,a,n);else if(this.tooltipUtil.isXoverlap(n)||s.globals.isBarHorizontal){var d=s.globals.series.findIndex(function(c,u){return!s.globals.collapsedSeriesIndices.includes(u)});this.create(e,this,d,n,a.ttItems)}}},{key:"handleStickyCapturedSeries",value:function(e,t,i,a){var s=this.w;if(!this.tConfig.shared&&s.globals.series[t][a]===null)return void this.handleMouseOut(i);if(s.globals.series[t][a]!==void 0)this.tConfig.shared&&this.tooltipUtil.isXoverlap(a)&&this.tooltipUtil.isInitialSeriesSameLen()?this.create(e,this,t,a,i.ttItems):this.create(e,this,t,a,i.ttItems,!1);else if(this.tooltipUtil.isXoverlap(a)){var r=s.globals.series.findIndex(function(n,l){return!s.globals.collapsedSeriesIndices.includes(l)});this.create(e,this,r,a,i.ttItems)}}},{key:"deactivateHoverFilter",value:function(){for(var e=this.w,t=new X(this.ctx),i=e.globals.dom.Paper.find(".apexcharts-bar-area"),a=0;a5&&arguments[5]!==void 0?arguments[5]:null,y=this.w,A=t;e.type==="mouseup"&&this.markerClick(e,i,a),C===null&&(C=this.tConfig.shared);var L=this.tooltipUtil.hasMarkers(i),S=this.tooltipUtil.getElBars();if(y.config.legend.tooltipHoverFormatter){var P=y.config.legend.tooltipHoverFormatter,I=Array.from(this.legendLabels);I.forEach(function(ge){var pe=ge.getAttribute("data:default-text");ge.innerHTML=decodeURIComponent(pe)});for(var T=0;T0?A.marker.enlargePoints(a):A.tooltipPosition.moveDynamicPointsOnHover(a);else if(this.tooltipUtil.hasBars()&&(this.barSeriesHeight=this.tooltipUtil.getBarsHeight(S),this.barSeriesHeight>0)){var V=new X(this.ctx),$=y.globals.dom.Paper.find(".apexcharts-bar-area[j='".concat(a,"']"));this.deactivateHoverFilter(),this.tooltipPosition.moveStickyTooltipOverBars(a,i);for(var q=0;q<$.length;q++)V.pathMouseEnter($[q])}}else A.tooltipLabels.drawSeriesTexts(R({shared:!1},B)),this.tooltipUtil.hasBars()&&A.tooltipPosition.moveStickyTooltipOverBars(a,i),L&&A.tooltipPosition.moveMarkers(i,a)}}]),o}(),Ql=function(){function o(e){Y(this,o),this.w=e.w,this.barCtx=e,this.totalFormatter=this.w.config.plotOptions.bar.dataLabels.total.formatter,this.totalFormatter||(this.totalFormatter=this.w.config.dataLabels.formatter)}return H(o,[{key:"handleBarDataLabels",value:function(e){var t,i,a=e.x,s=e.y,r=e.y1,n=e.y2,l=e.i,h=e.j,d=e.realIndex,c=e.columnGroupIndex,u=e.series,g=e.barHeight,p=e.barWidth,f=e.barXPosition,x=e.barYPosition,m=e.visibleSeries,b=e.renderedPath,v=this.w,k=new X(this.barCtx.ctx),w=Array.isArray(this.barCtx.strokeWidth)?this.barCtx.strokeWidth[d]:this.barCtx.strokeWidth;v.globals.isXNumeric&&!v.globals.isBarHorizontal?(t=a+parseFloat(p*(m+1)),i=s+parseFloat(g*(m+1))-w):(t=a+parseFloat(p*m),i=s+parseFloat(g*m));var C,y=null,A=a,L=s,S={},P=v.config.dataLabels,I=this.barCtx.barOptions.dataLabels,T=this.barCtx.barOptions.dataLabels.total;x!==void 0&&this.barCtx.isRangeBar&&(i=x,L=x),f!==void 0&&this.barCtx.isVerticalGroupedRangeBar&&(t=f,A=f);var z=P.offsetX,O=P.offsetY,E={width:0,height:0};if(v.config.dataLabels.enabled){var F=v.globals.series[l][h];E=k.getTextRects(v.config.dataLabels.formatter?v.config.dataLabels.formatter(F,R(R({},v),{},{seriesIndex:l,dataPointIndex:h,w:v})):v.globals.yLabelFormatters[0](F),parseFloat(P.style.fontSize))}var B={x:a,y:s,i:l,j:h,realIndex:d,columnGroupIndex:c,renderedPath:b,bcx:t,bcy:i,barHeight:g,barWidth:p,textRects:E,strokeWidth:w,dataLabelsX:A,dataLabelsY:L,dataLabelsConfig:P,barDataLabelsConfig:I,barTotalDataLabelsConfig:T,offX:z,offY:O};return S=this.barCtx.isHorizontal?this.calculateBarsDataLabelsPosition(B):this.calculateColumnsDataLabelsPosition(B),b.attr({cy:S.bcy,cx:S.bcx,j:h,val:v.globals.series[l][h],barHeight:g,barWidth:p}),C=this.drawCalculatedDataLabels({x:S.dataLabelsX,y:S.dataLabelsY,val:this.barCtx.isRangeBar?[r,n]:v.config.chart.stackType==="100%"?u[d][h]:v.globals.series[d][h],i:d,j:h,barWidth:p,barHeight:g,textRects:E,dataLabelsConfig:P}),v.config.chart.stacked&&T.enabled&&(y=this.drawTotalDataLabels({x:S.totalDataLabelsX,y:S.totalDataLabelsY,barWidth:p,barHeight:g,realIndex:d,textAnchor:S.totalDataLabelsAnchor,val:this.getStackedTotalDataLabel({realIndex:d,j:h}),dataLabelsConfig:P,barTotalDataLabelsConfig:T})),{dataLabels:C,totalDataLabels:y}}},{key:"getStackedTotalDataLabel",value:function(e){var t=e.realIndex,i=e.j,a=this.w,s=this.barCtx.stackedSeriesTotals[i];return this.totalFormatter&&(s=this.totalFormatter(s,R(R({},a),{},{seriesIndex:t,dataPointIndex:i,w:a}))),s}},{key:"calculateColumnsDataLabelsPosition",value:function(e){var t=this.w,i=e.i,a=e.j,s=e.realIndex;e.columnGroupIndex;var r,n,l=e.y,h=e.bcx,d=e.barWidth,c=e.barHeight,u=e.textRects,g=e.dataLabelsX,p=e.dataLabelsY,f=e.dataLabelsConfig,x=e.barDataLabelsConfig,m=e.barTotalDataLabelsConfig,b=e.strokeWidth,v=e.offX,k=e.offY,w=h;c=Math.abs(c);var C=t.config.plotOptions.bar.dataLabels.orientation==="vertical",y=this.barCtx.barHelpers.getZeroValueEncounters({i,j:a}).zeroEncounters;h-=b/2;var A=t.globals.gridWidth/t.globals.dataPoints;this.barCtx.isVerticalGroupedRangeBar?g+=d/2:(g=t.globals.isXNumeric?h-d/2+v:h-A+d/2+v,y>0&&t.config.plotOptions.bar.hideZeroBarsWhenGrouped&&(g-=d*y)),C&&(g=g+u.height/2-b/2-2);var L=t.globals.series[i][a]<0,S=l;switch(this.barCtx.isReversed&&(S=l+(L?c:-c)),x.position){case"center":p=C?L?S-c/2+k:S+c/2-k:L?S-c/2+u.height/2+k:S+c/2+u.height/2-k;break;case"bottom":p=C?L?S-c+k:S+c-k:L?S-c+u.height+b+k:S+c-u.height/2+b-k;break;case"top":p=C?L?S+k:S-k:L?S-u.height/2-k:S+u.height+k}if(this.barCtx.lastActiveBarSerieIndex===s&&m.enabled){var P=new X(this.barCtx.ctx).getTextRects(this.getStackedTotalDataLabel({realIndex:s,j:a}),f.fontSize);r=L?S-P.height/2-k-m.offsetY+18:S+P.height+k+m.offsetY-18;var I=A;n=w+(t.globals.isXNumeric?-d*t.globals.barGroups.length/2:t.globals.barGroups.length*d/2-(t.globals.barGroups.length-1)*d-I)+m.offsetX}return t.config.chart.stacked||(p<0?p=0+b:p+u.height/3>t.globals.gridHeight&&(p=t.globals.gridHeight-b)),{bcx:h,bcy:l,dataLabelsX:g,dataLabelsY:p,totalDataLabelsX:n,totalDataLabelsY:r,totalDataLabelsAnchor:"middle"}}},{key:"calculateBarsDataLabelsPosition",value:function(e){var t=this.w,i=e.x,a=e.i,s=e.j,r=e.realIndex,n=e.bcy,l=e.barHeight,h=e.barWidth,d=e.textRects,c=e.dataLabelsX,u=e.strokeWidth,g=e.dataLabelsConfig,p=e.barDataLabelsConfig,f=e.barTotalDataLabelsConfig,x=e.offX,m=e.offY,b=t.globals.gridHeight/t.globals.dataPoints;h=Math.abs(h);var v,k,w=n-(this.barCtx.isRangeBar?0:b)+l/2+d.height/2+m-3,C="start",y=t.globals.series[a][s]<0,A=i;switch(this.barCtx.isReversed&&(A=i+(y?-h:h),C=y?"start":"end"),p.position){case"center":c=y?A+h/2-x:Math.max(d.width/2,A-h/2)+x;break;case"bottom":c=y?A+h-u-x:A-h+u+x;break;case"top":c=y?A-u-x:A-u+x}if(this.barCtx.lastActiveBarSerieIndex===r&&f.enabled){var L=new X(this.barCtx.ctx).getTextRects(this.getStackedTotalDataLabel({realIndex:r,j:s}),g.fontSize);y?(v=A-u-x-f.offsetX,C="end"):v=A+x+f.offsetX+(this.barCtx.isReversed?-(h+u):u),k=w-d.height/2+L.height/2+f.offsetY+u}return t.config.chart.stacked||(g.textAnchor==="start"?c-d.width<0?c=y?d.width+u:u:c+d.width>t.globals.gridWidth&&(c=y?t.globals.gridWidth-u:t.globals.gridWidth-d.width-u):g.textAnchor==="middle"?c-d.width/2<0?c=d.width/2+u:c+d.width/2>t.globals.gridWidth&&(c=t.globals.gridWidth-d.width/2-u):g.textAnchor==="end"&&(c<1?c=d.width+u:c+1>t.globals.gridWidth&&(c=t.globals.gridWidth-d.width-u))),{bcx:i,bcy:n,dataLabelsX:c,dataLabelsY:w,totalDataLabelsX:v,totalDataLabelsY:k,totalDataLabelsAnchor:C}}},{key:"drawCalculatedDataLabels",value:function(e){var t=e.x,i=e.y,a=e.val,s=e.i,r=e.j,n=e.textRects,l=e.barHeight,h=e.barWidth,d=e.dataLabelsConfig,c=this.w,u="rotate(0)";c.config.plotOptions.bar.dataLabels.orientation==="vertical"&&(u="rotate(-90, ".concat(t,", ").concat(i,")"));var g=new xt(this.barCtx.ctx),p=new X(this.barCtx.ctx),f=d.formatter,x=null,m=c.globals.collapsedSeriesIndices.indexOf(s)>-1;if(d.enabled&&!m){x=p.group({class:"apexcharts-data-labels",transform:u});var b="";a!==void 0&&(b=f(a,R(R({},c),{},{seriesIndex:s,dataPointIndex:r,w:c}))),!a&&c.config.plotOptions.bar.hideZeroBarsWhenGrouped&&(b="");var v=c.globals.series[s][r]<0,k=c.config.plotOptions.bar.dataLabels.position;c.config.plotOptions.bar.dataLabels.orientation==="vertical"&&(k==="top"&&(d.textAnchor=v?"end":"start"),k==="center"&&(d.textAnchor="middle"),k==="bottom"&&(d.textAnchor=v?"end":"start")),this.barCtx.isRangeBar&&this.barCtx.barOptions.dataLabels.hideOverflowingLabels&&hMath.abs(h)&&(b=""):n.height/1.6>Math.abs(l)&&(b=""));var w=R({},d);this.barCtx.isHorizontal&&a<0&&(d.textAnchor==="start"?w.textAnchor="end":d.textAnchor==="end"&&(w.textAnchor="start")),g.plotDataLabelsText({x:t,y:i,text:b,i:s,j:r,parent:x,dataLabelsConfig:w,alwaysDrawDataLabel:!0,offsetCorrection:!0})}return x}},{key:"drawTotalDataLabels",value:function(e){var t=e.x,i=e.y,a=e.val,s=e.realIndex,r=e.textAnchor,n=e.barTotalDataLabelsConfig;this.w;var l,h=new X(this.barCtx.ctx);return n.enabled&&t!==void 0&&i!==void 0&&this.barCtx.lastActiveBarSerieIndex===s&&(l=h.drawText({x:t,y:i,foreColor:n.style.color,text:a,textAnchor:r,fontFamily:n.style.fontFamily,fontSize:n.style.fontSize,fontWeight:n.style.fontWeight})),l}}]),o}(),eh=function(){function o(e){Y(this,o),this.w=e.w,this.barCtx=e}return H(o,[{key:"initVariables",value:function(e){var t=this.w;this.barCtx.series=e,this.barCtx.totalItems=0,this.barCtx.seriesLen=0,this.barCtx.visibleI=-1,this.barCtx.visibleItems=1;for(var i=0;i0&&(this.barCtx.seriesLen=this.barCtx.seriesLen+1,this.barCtx.totalItems+=e[i].length),t.globals.isXNumeric)for(var a=0;at.globals.minX&&t.globals.seriesX[i][a]0&&(a=h.globals.minXDiff/u),(r=a/c*parseInt(this.barCtx.barOptions.columnWidth,10)/100)<1&&(r=1)}String(this.barCtx.barOptions.columnWidth).indexOf("%")===-1&&(r=parseInt(this.barCtx.barOptions.columnWidth,10)),n=h.globals.gridHeight-this.barCtx.baseLineY[this.barCtx.translationsIndex]-(this.barCtx.isReversed?h.globals.gridHeight:0)+(this.barCtx.isReversed?2*this.barCtx.baseLineY[this.barCtx.translationsIndex]:0),e=h.globals.padHorizontal+(a-r*this.barCtx.seriesLen)/2}return h.globals.barHeight=s,h.globals.barWidth=r,{x:e,y:t,yDivision:i,xDivision:a,barHeight:s,barWidth:r,zeroH:n,zeroW:l}}},{key:"initializeStackedPrevVars",value:function(e){e.w.globals.seriesGroups.forEach(function(t){e[t]||(e[t]={}),e[t].prevY=[],e[t].prevX=[],e[t].prevYF=[],e[t].prevXF=[],e[t].prevYVal=[],e[t].prevXVal=[]})}},{key:"initializeStackedXYVars",value:function(e){e.w.globals.seriesGroups.forEach(function(t){e[t]||(e[t]={}),e[t].xArrj=[],e[t].xArrjF=[],e[t].xArrjVal=[],e[t].yArrj=[],e[t].yArrjF=[],e[t].yArrjVal=[]})}},{key:"getPathFillColor",value:function(e,t,i,a){var s,r,n,l,h=this.w,d=this.barCtx.ctx.fill,c=null,u=this.barCtx.barOptions.distributed?i:t;return this.barCtx.barOptions.colors.ranges.length>0&&this.barCtx.barOptions.colors.ranges.map(function(g){e[t][i]>=g.from&&e[t][i]<=g.to&&(c=g.color)}),d.fillPath({seriesNumber:this.barCtx.barOptions.distributed?u:a,dataPointIndex:i,color:c,value:e[t][i],fillConfig:(s=h.config.series[t].data[i])===null||s===void 0?void 0:s.fill,fillType:(r=h.config.series[t].data[i])!==null&&r!==void 0&&(n=r.fill)!==null&&n!==void 0&&n.type?(l=h.config.series[t].data[i])===null||l===void 0?void 0:l.fill.type:Array.isArray(h.config.fill.type)?h.config.fill.type[a]:h.config.fill.type})}},{key:"getStrokeWidth",value:function(e,t,i){var a=0,s=this.w;return this.barCtx.series[e][t]?this.barCtx.isNullValue=!1:this.barCtx.isNullValue=!0,s.config.stroke.show&&(this.barCtx.isNullValue||(a=Array.isArray(this.barCtx.strokeWidth)?this.barCtx.strokeWidth[i]:this.barCtx.strokeWidth)),a}},{key:"createBorderRadiusArr",value:function(e){var t,i=this.w,a=!this.w.config.chart.stacked||i.config.plotOptions.bar.borderRadius<=0,s=e.length,r=0|((t=e[0])===null||t===void 0?void 0:t.length),n=Array.from({length:s},function(){return Array(r).fill(a?"top":"none")});if(a)return n;for(var l=0;l0?(h.push(u),c++):g<0&&(d.push(u),c++)}if(h.length>0&&d.length===0)if(h.length===1)n[h[0]][l]="both";else{var p,f=h[0],x=h[h.length-1],m=Pt(h);try{for(m.s();!(p=m.n()).done;){var b=p.value;n[b][l]=b===f?"bottom":b===x?"top":"none"}}catch(E){m.e(E)}finally{m.f()}}else if(d.length>0&&h.length===0)if(d.length===1)n[d[0]][l]="both";else{var v,k=Math.max.apply(Math,d),w=Math.min.apply(Math,d),C=Pt(d);try{for(C.s();!(v=C.n()).done;){var y=v.value;n[y][l]=y===k?"bottom":y===w?"top":"none"}}catch(E){C.e(E)}finally{C.f()}}else if(h.length>0&&d.length>0){var A,L=h[h.length-1],S=Pt(h);try{for(S.s();!(A=S.n()).done;){var P=A.value;n[P][l]=P===L?"top":"none"}}catch(E){S.e(E)}finally{S.f()}var I,T=Math.max.apply(Math,d),z=Pt(d);try{for(z.s();!(I=z.n()).done;){var O=I.value;n[O][l]=O===T?"bottom":"none"}}catch(E){z.e(E)}finally{z.f()}}else c===1&&(n[h[0]||d[0]][l]="both")}return n}},{key:"barBackground",value:function(e){var t=e.j,i=e.i,a=e.x1,s=e.x2,r=e.y1,n=e.y2,l=e.elSeries,h=this.w,d=new X(this.barCtx.ctx),c=new He(this.barCtx.ctx).getActiveConfigSeriesIndex();if(this.barCtx.barOptions.colors.backgroundBarColors.length>0&&c===i){t>=this.barCtx.barOptions.colors.backgroundBarColors.length&&(t%=this.barCtx.barOptions.colors.backgroundBarColors.length);var u=this.barCtx.barOptions.colors.backgroundBarColors[t],g=d.drawRect(a!==void 0?a:0,r!==void 0?r:0,s!==void 0?s:h.globals.gridWidth,n!==void 0?n:h.globals.gridHeight,this.barCtx.barOptions.colors.backgroundBarRadius,u,this.barCtx.barOptions.colors.backgroundBarOpacity);l.add(g),g.node.classList.add("apexcharts-backgroundBar")}}},{key:"getColumnPaths",value:function(e){var t,i=e.barWidth,a=e.barXPosition,s=e.y1,r=e.y2,n=e.strokeWidth,l=e.isReversed,h=e.series,d=e.seriesGroup,c=e.realIndex,u=e.i,g=e.j,p=e.w,f=new X(this.barCtx.ctx);(n=Array.isArray(n)?n[c]:n)||(n=0);var x=i,m=a;(t=p.config.series[c].data[g])!==null&&t!==void 0&&t.columnWidthOffset&&(m=a-p.config.series[c].data[g].columnWidthOffset/2,x=i+p.config.series[c].data[g].columnWidthOffset);var b=n/2,v=m+b,k=m+x-b,w=(h[u][g]>=0?1:-1)*(l?-1:1);s+=.001-b*w,r+=.001+b*w;var C=f.move(v,s),y=f.move(v,s),A=f.line(k,s);if(p.globals.previousPaths.length>0&&(y=this.barCtx.getPreviousPath(c,g,!1)),C=C+f.line(v,r)+f.line(k,r)+A+(p.config.plotOptions.bar.borderRadiusApplication==="around"||this.arrBorderRadius[c][g]==="both"?" Z":" z"),y=y+f.line(v,s)+A+A+A+A+A+f.line(v,s)+(p.config.plotOptions.bar.borderRadiusApplication==="around"||this.arrBorderRadius[c][g]==="both"?" Z":" z"),this.arrBorderRadius[c][g]!=="none"&&(C=f.roundPathCorners(C,p.config.plotOptions.bar.borderRadius)),p.config.chart.stacked){var L=this.barCtx;(L=this.barCtx[d]).yArrj.push(r-b*w),L.yArrjF.push(Math.abs(s-r+n*w)),L.yArrjVal.push(this.barCtx.series[u][g])}return{pathTo:C,pathFrom:y}}},{key:"getBarpaths",value:function(e){var t,i=e.barYPosition,a=e.barHeight,s=e.x1,r=e.x2,n=e.strokeWidth,l=e.isReversed,h=e.series,d=e.seriesGroup,c=e.realIndex,u=e.i,g=e.j,p=e.w,f=new X(this.barCtx.ctx);(n=Array.isArray(n)?n[c]:n)||(n=0);var x=i,m=a;(t=p.config.series[c].data[g])!==null&&t!==void 0&&t.barHeightOffset&&(x=i-p.config.series[c].data[g].barHeightOffset/2,m=a+p.config.series[c].data[g].barHeightOffset);var b=n/2,v=x+b,k=x+m-b,w=(h[u][g]>=0?1:-1)*(l?-1:1);s+=.001+b*w,r+=.001-b*w;var C=f.move(s,v),y=f.move(s,v);p.globals.previousPaths.length>0&&(y=this.barCtx.getPreviousPath(c,g,!1));var A=f.line(s,k);if(C=C+f.line(r,v)+f.line(r,k)+A+(p.config.plotOptions.bar.borderRadiusApplication==="around"||this.arrBorderRadius[c][g]==="both"?" Z":" z"),y=y+f.line(s,v)+A+A+A+A+A+f.line(s,v)+(p.config.plotOptions.bar.borderRadiusApplication==="around"||this.arrBorderRadius[c][g]==="both"?" Z":" z"),this.arrBorderRadius[c][g]!=="none"&&(C=f.roundPathCorners(C,p.config.plotOptions.bar.borderRadius)),p.config.chart.stacked){var L=this.barCtx;(L=this.barCtx[d]).xArrj.push(r+b*w),L.xArrjF.push(Math.abs(s-r-n*w)),L.xArrjVal.push(this.barCtx.series[u][g])}return{pathTo:C,pathFrom:y}}},{key:"checkZeroSeries",value:function(e){for(var t=e.series,i=this.w,a=0;a2&&arguments[2]!==void 0)||arguments[2]?t:null;return e!=null&&(i=t+e/this.barCtx.invertedYRatio-2*(this.barCtx.isReversed?e/this.barCtx.invertedYRatio:0)),i}},{key:"getYForValue",value:function(e,t,i){var a=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3]?t:null;return e!=null&&(a=t-e/this.barCtx.yRatio[i]+2*(this.barCtx.isReversed?e/this.barCtx.yRatio[i]:0)),a}},{key:"getGoalValues",value:function(e,t,i,a,s,r){var n=this,l=this.w,h=[],d=function(g,p){var f;h.push((Qt(f={},e,e==="x"?n.getXForValue(g,t,!1):n.getYForValue(g,i,r,!1)),Qt(f,"attrs",p),f))};if(l.globals.seriesGoals[a]&&l.globals.seriesGoals[a][s]&&Array.isArray(l.globals.seriesGoals[a][s])&&l.globals.seriesGoals[a][s].forEach(function(g){d(g.value,g)}),this.barCtx.barOptions.isDumbbell&&l.globals.seriesRange.length){var c=this.barCtx.barOptions.dumbbellColors?this.barCtx.barOptions.dumbbellColors:l.globals.colors,u={strokeHeight:e==="x"?0:l.globals.markers.size[a],strokeWidth:e==="x"?l.globals.markers.size[a]:0,strokeDashArray:0,strokeLineCap:"round",strokeColor:Array.isArray(c[a])?c[a][0]:c[a]};d(l.globals.seriesRangeStart[a][s],u),d(l.globals.seriesRangeEnd[a][s],R(R({},u),{},{strokeColor:Array.isArray(c[a])?c[a][1]:c[a]}))}return h}},{key:"drawGoalLine",value:function(e){var t=e.barXPosition,i=e.barYPosition,a=e.goalX,s=e.goalY,r=e.barWidth,n=e.barHeight,l=new X(this.barCtx.ctx),h=l.group({className:"apexcharts-bar-goals-groups"});h.node.classList.add("apexcharts-element-hidden"),this.barCtx.w.globals.delayedElements.push({el:h.node}),h.attr("clip-path","url(#gridRectMarkerMask".concat(this.barCtx.w.globals.cuid,")"));var d=null;return this.barCtx.isHorizontal?Array.isArray(a)&&a.forEach(function(c){if(c.x>=-1&&c.x<=l.w.globals.gridWidth+1){var u=c.attrs.strokeHeight!==void 0?c.attrs.strokeHeight:n/2,g=i+u+n/2;d=l.drawLine(c.x,g-2*u,c.x,g,c.attrs.strokeColor?c.attrs.strokeColor:void 0,c.attrs.strokeDashArray,c.attrs.strokeWidth?c.attrs.strokeWidth:2,c.attrs.strokeLineCap),h.add(d)}}):Array.isArray(s)&&s.forEach(function(c){if(c.y>=-1&&c.y<=l.w.globals.gridHeight+1){var u=c.attrs.strokeWidth!==void 0?c.attrs.strokeWidth:r/2,g=t+u+r/2;d=l.drawLine(g-2*u,c.y,g,c.y,c.attrs.strokeColor?c.attrs.strokeColor:void 0,c.attrs.strokeDashArray,c.attrs.strokeHeight?c.attrs.strokeHeight:2,c.attrs.strokeLineCap),h.add(d)}}),h}},{key:"drawBarShadow",value:function(e){var t=e.prevPaths,i=e.currPaths,a=e.color,s=this.w,r=t.x,n=t.x1,l=t.barYPosition,h=i.x,d=i.x1,c=i.barYPosition,u=l+i.barHeight,g=new X(this.barCtx.ctx),p=new M,f=g.move(n,u)+g.line(r,u)+g.line(h,c)+g.line(d,c)+g.line(n,u)+(s.config.plotOptions.bar.borderRadiusApplication==="around"||this.arrBorderRadius[realIndex][j]==="both"?" Z":" z");return g.drawPath({d:f,fill:p.shadeColor(.5,M.rgb2hex(a)),stroke:"none",strokeWidth:0,fillOpacity:1,classes:"apexcharts-bar-shadow apexcharts-decoration-element"})}},{key:"getZeroValueEncounters",value:function(e){var t,i=e.i,a=e.j,s=this.w,r=0,n=0;return(s.config.plotOptions.bar.horizontal?s.globals.series.map(function(l,h){return h}):((t=s.globals.columnSeries)===null||t===void 0?void 0:t.i.map(function(l){return l}))||[]).forEach(function(l){var h=s.globals.seriesPercent[l][a];h&&r++,l-1}),a=this.barCtx.columnGroupIndices,s=a.indexOf(i);return s<0&&(a.push(i),s=a.length-1),{groupIndex:i,columnGroupIndex:s}}}]),o}(),mt=function(){function o(e,t){Y(this,o),this.ctx=e,this.w=e.w;var i=this.w;this.barOptions=i.config.plotOptions.bar,this.isHorizontal=this.barOptions.horizontal,this.strokeWidth=i.config.stroke.width,this.isNullValue=!1,this.isRangeBar=i.globals.seriesRange.length&&this.isHorizontal,this.isVerticalGroupedRangeBar=!i.globals.isBarHorizontal&&i.globals.seriesRange.length&&i.config.plotOptions.bar.rangeBarGroupRows,this.isFunnel=this.barOptions.isFunnel,this.xyRatios=t,this.xyRatios!==null&&(this.xRatio=t.xRatio,this.yRatio=t.yRatio,this.invertedXRatio=t.invertedXRatio,this.invertedYRatio=t.invertedYRatio,this.baseLineY=t.baseLineY,this.baseLineInvertedY=t.baseLineInvertedY),this.yaxisIndex=0,this.translationsIndex=0,this.seriesLen=0,this.pathArr=[];var a=new He(this.ctx);this.lastActiveBarSerieIndex=a.getActiveConfigSeriesIndex("desc",["bar","column"]),this.columnGroupIndices=[];var s=a.getBarSeriesIndices(),r=new be(this.ctx);this.stackedSeriesTotals=r.getStackedSeriesTotals(this.w.config.series.map(function(n,l){return s.indexOf(l)===-1?l:-1}).filter(function(n){return n!==-1})),this.barHelpers=new eh(this)}return H(o,[{key:"draw",value:function(e,t){var i=this.w,a=new X(this.ctx),s=new be(this.ctx,i);e=s.getLogSeries(e),this.series=e,this.yRatio=s.getLogYRatios(this.yRatio),this.barHelpers.initVariables(e);var r=a.group({class:"apexcharts-bar-series apexcharts-plot-series"});i.config.dataLabels.enabled&&this.totalItems>this.barOptions.dataLabels.maxItems&&console.warn("WARNING: DataLabels are enabled but there are too many to display. This may cause performance issue when rendering - ApexCharts");for(var n=0,l=0;n0&&(this.visibleI=this.visibleI+1);var k=0,w=0;this.yRatio.length>1&&(this.yaxisIndex=i.globals.seriesYAxisReverseMap[m],this.translationsIndex=m);var C=this.translationsIndex;this.isReversed=i.config.yaxis[this.yaxisIndex]&&i.config.yaxis[this.yaxisIndex].reversed;var y=this.barHelpers.initialPositions();p=y.y,k=y.barHeight,d=y.yDivision,u=y.zeroW,g=y.x,w=y.barWidth,h=y.xDivision,c=y.zeroH,this.isHorizontal||x.push(g+w/2);var A=a.group({class:"apexcharts-datalabels","data:realIndex":m});i.globals.delayedElements.push({el:A.node}),A.node.classList.add("apexcharts-element-hidden");var L=a.group({class:"apexcharts-bar-goals-markers"}),S=a.group({class:"apexcharts-bar-shadows"});i.globals.delayedElements.push({el:S.node}),S.node.classList.add("apexcharts-element-hidden");for(var P=0;P0){var E=this.barHelpers.drawBarShadow({color:typeof O=="string"&&(O==null?void 0:O.indexOf("url"))===-1?O:M.hexToRgba(i.globals.colors[n]),prevPaths:this.pathArr[this.pathArr.length-1],currPaths:T});S.add(E),i.config.chart.dropShadow.enabled&&new ke(this.ctx).dropShadow(E,i.config.chart.dropShadow,m)}this.pathArr.push(T);var F=this.barHelpers.drawGoalLine({barXPosition:T.barXPosition,barYPosition:T.barYPosition,goalX:T.goalX,goalY:T.goalY,barHeight:k,barWidth:w});F&&L.add(F),p=T.y,g=T.x,P>0&&x.push(g+w/2),f.push(p),this.renderSeries({realIndex:m,pathFill:O,j:P,i:n,columnGroupIndex:b,pathFrom:T.pathFrom,pathTo:T.pathTo,strokeWidth:I,elSeries:v,x:g,y:p,series:e,barHeight:Math.abs(T.barHeight?T.barHeight:k),barWidth:Math.abs(T.barWidth?T.barWidth:w),elDataLabelsWrap:A,elGoalsMarkers:L,elBarShadows:S,visibleSeries:this.visibleI,type:"bar"})}i.globals.seriesXvalues[m]=x,i.globals.seriesYvalues[m]=f,r.add(v)}return r}},{key:"renderSeries",value:function(e){var t=e.realIndex,i=e.pathFill,a=e.lineFill,s=e.j,r=e.i,n=e.columnGroupIndex,l=e.pathFrom,h=e.pathTo,d=e.strokeWidth,c=e.elSeries,u=e.x,g=e.y,p=e.y1,f=e.y2,x=e.series,m=e.barHeight,b=e.barWidth,v=e.barXPosition,k=e.barYPosition,w=e.elDataLabelsWrap,C=e.elGoalsMarkers,y=e.elBarShadows,A=e.visibleSeries,L=e.type,S=e.classes,P=this.w,I=new X(this.ctx);if(!a){var T=typeof P.globals.stroke.colors[t]=="function"?function(B){var V,$=P.config.stroke.colors;return Array.isArray($)&&$.length>0&&((V=$[B])||(V=""),typeof V=="function")?V({value:P.globals.series[B][s],dataPointIndex:s,w:P}):V}(t):P.globals.stroke.colors[t];a=this.barOptions.distributed?P.globals.stroke.colors[s]:T}P.config.series[r].data[s]&&P.config.series[r].data[s].strokeColor&&(a=P.config.series[r].data[s].strokeColor),this.isNullValue&&(i="none");var z=s/P.config.chart.animations.animateGradually.delay*(P.config.chart.animations.speed/P.globals.dataPoints)/2.4,O=I.renderPaths({i:r,j:s,realIndex:t,pathFrom:l,pathTo:h,stroke:a,strokeWidth:d,strokeLineCap:P.config.stroke.lineCap,fill:i,animationDelay:z,initialSpeed:P.config.chart.animations.speed,dataChangeSpeed:P.config.chart.animations.dynamicAnimation.speed,className:"apexcharts-".concat(L,"-area ").concat(S),chartType:L});O.attr("clip-path","url(#gridRectBarMask".concat(P.globals.cuid,")"));var E=P.config.forecastDataPoints;E.count>0&&s>=P.globals.dataPoints-E.count&&(O.node.setAttribute("stroke-dasharray",E.dashArray),O.node.setAttribute("stroke-width",E.strokeWidth),O.node.setAttribute("fill-opacity",E.fillOpacity)),p!==void 0&&f!==void 0&&(O.attr("data-range-y1",p),O.attr("data-range-y2",f)),new ke(this.ctx).setSelectionFilter(O,t,s),c.add(O);var F=new Ql(this).handleBarDataLabels({x:u,y:g,y1:p,y2:f,i:r,j:s,series:x,realIndex:t,columnGroupIndex:n,barHeight:m,barWidth:b,barXPosition:v,barYPosition:k,renderedPath:O,visibleSeries:A});return F.dataLabels!==null&&w.add(F.dataLabels),F.totalDataLabels&&w.add(F.totalDataLabels),c.add(w),C&&c.add(C),y&&c.add(y),c}},{key:"drawBarPaths",value:function(e){var t,i=e.indexes,a=e.barHeight,s=e.strokeWidth,r=e.zeroW,n=e.x,l=e.y,h=e.yDivision,d=e.elSeries,c=this.w,u=i.i,g=i.j;if(c.globals.isXNumeric)t=(l=(c.globals.seriesX[u][g]-c.globals.minX)/this.invertedXRatio-a)+a*this.visibleI;else if(c.config.plotOptions.bar.hideZeroBarsWhenGrouped){var p=0,f=0;c.globals.seriesPercent.forEach(function(m,b){m[g]&&p++,b0&&(a=this.seriesLen*a/p),t=l+a*this.visibleI,t-=a*f}else t=l+a*this.visibleI;this.isFunnel&&(r-=(this.barHelpers.getXForValue(this.series[u][g],r)-r)/2),n=this.barHelpers.getXForValue(this.series[u][g],r);var x=this.barHelpers.getBarpaths({barYPosition:t,barHeight:a,x1:r,x2:n,strokeWidth:s,isReversed:this.isReversed,series:this.series,realIndex:i.realIndex,i:u,j:g,w:c});return c.globals.isXNumeric||(l+=h),this.barHelpers.barBackground({j:g,i:u,y1:t-a*this.visibleI,y2:a*this.seriesLen,elSeries:d}),{pathTo:x.pathTo,pathFrom:x.pathFrom,x1:r,x:n,y:l,goalX:this.barHelpers.getGoalValues("x",r,null,u,g),barYPosition:t,barHeight:a}}},{key:"drawColumnPaths",value:function(e){var t,i=e.indexes,a=e.x,s=e.y,r=e.xDivision,n=e.barWidth,l=e.zeroH,h=e.strokeWidth,d=e.elSeries,c=this.w,u=i.realIndex,g=i.translationsIndex,p=i.i,f=i.j,x=i.bc;if(c.globals.isXNumeric){var m=this.getBarXForNumericXAxis({x:a,j:f,realIndex:u,barWidth:n});a=m.x,t=m.barXPosition}else if(c.config.plotOptions.bar.hideZeroBarsWhenGrouped){var b=this.barHelpers.getZeroValueEncounters({i:p,j:f}),v=b.nonZeroColumns,k=b.zeroEncounters;v>0&&(n=this.seriesLen*n/v),t=a+n*this.visibleI,t-=n*k}else t=a+n*this.visibleI;s=this.barHelpers.getYForValue(this.series[p][f],l,g);var w=this.barHelpers.getColumnPaths({barXPosition:t,barWidth:n,y1:l,y2:s,strokeWidth:h,isReversed:this.isReversed,series:this.series,realIndex:u,i:p,j:f,w:c});return c.globals.isXNumeric||(a+=r),this.barHelpers.barBackground({bc:x,j:f,i:p,x1:t-h/2-n*this.visibleI,x2:n*this.seriesLen+h/2,elSeries:d}),{pathTo:w.pathTo,pathFrom:w.pathFrom,x:a,y:s,goalY:this.barHelpers.getGoalValues("y",null,l,p,f,g),barXPosition:t,barWidth:n}}},{key:"getBarXForNumericXAxis",value:function(e){var t=e.x,i=e.barWidth,a=e.realIndex,s=e.j,r=this.w,n=a;return r.globals.seriesX[a].length||(n=r.globals.maxValsInArrayIndex),M.isNumber(r.globals.seriesX[n][s])&&(t=(r.globals.seriesX[n][s]-r.globals.minX)/this.xRatio-i*this.seriesLen/2),{barXPosition:t+i*this.visibleI,x:t}}},{key:"getPreviousPath",value:function(e,t){for(var i,a=this.w,s=0;s0&&parseInt(r.realIndex,10)===parseInt(e,10)&&a.globals.previousPaths[s].paths[t]!==void 0&&(i=a.globals.previousPaths[s].paths[t].d)}return i}}]),o}(),es=function(o){Yt(t,mt);var e=Ot(t);function t(){return Y(this,t),e.apply(this,arguments)}return H(t,[{key:"draw",value:function(i,a){var s=this,r=this.w;this.graphics=new X(this.ctx),this.bar=new mt(this.ctx,this.xyRatios);var n=new be(this.ctx,r);i=n.getLogSeries(i),this.yRatio=n.getLogYRatios(this.yRatio),this.barHelpers.initVariables(i),r.config.chart.stackType==="100%"&&(i=r.globals.comboCharts?a.map(function(p){return r.globals.seriesPercent[p]}):r.globals.seriesPercent.slice()),this.series=i,this.barHelpers.initializeStackedPrevVars(this);for(var l=this.graphics.group({class:"apexcharts-bar-series apexcharts-plot-series"}),h=0,d=0,c=function(p,f){var x=void 0,m=void 0,b=void 0,v=void 0,k=r.globals.comboCharts?a[p]:p,w=s.barHelpers.getGroupIndex(k),C=w.groupIndex,y=w.columnGroupIndex;s.groupCtx=s[r.globals.seriesGroups[C]];var A=[],L=[],S=0;s.yRatio.length>1&&(s.yaxisIndex=r.globals.seriesYAxisReverseMap[k][0],S=k),s.isReversed=r.config.yaxis[s.yaxisIndex]&&r.config.yaxis[s.yaxisIndex].reversed;var P=s.graphics.group({class:"apexcharts-series",seriesName:M.escapeString(r.globals.seriesNames[k]),rel:p+1,"data:realIndex":k});s.ctx.series.addCollapsedClassToSeries(P,k);var I=s.graphics.group({class:"apexcharts-datalabels","data:realIndex":k}),T=s.graphics.group({class:"apexcharts-bar-goals-markers"}),z=0,O=0,E=s.initialPositions(h,d,x,m,b,v,S);d=E.y,z=E.barHeight,m=E.yDivision,v=E.zeroW,h=E.x,O=E.barWidth,x=E.xDivision,b=E.zeroH,r.globals.barHeight=z,r.globals.barWidth=O,s.barHelpers.initializeStackedXYVars(s),s.groupCtx.prevY.length===1&&s.groupCtx.prevY[0].every(function(Ce){return isNaN(Ce)})&&(s.groupCtx.prevY[0]=s.groupCtx.prevY[0].map(function(){return b}),s.groupCtx.prevYF[0]=s.groupCtx.prevYF[0].map(function(){return 0}));for(var F=0;F0||s.barHelpers.arrBorderRadius[k][F]==="top"&&r.globals.series[k][F]<0)&&(pe=ne),P=s.renderSeries({realIndex:k,pathFill:ge,j:F,i:p,columnGroupIndex:y,pathFrom:$.pathFrom,pathTo:$.pathTo,strokeWidth:B,elSeries:P,x:h,y:d,series:i,barHeight:z,barWidth:O,elDataLabelsWrap:I,elGoalsMarkers:T,type:"bar",visibleSeries:y,classes:pe})}r.globals.seriesXvalues[k]=A,r.globals.seriesYvalues[k]=L,s.groupCtx.prevY.push(s.groupCtx.yArrj),s.groupCtx.prevYF.push(s.groupCtx.yArrjF),s.groupCtx.prevYVal.push(s.groupCtx.yArrjVal),s.groupCtx.prevX.push(s.groupCtx.xArrj),s.groupCtx.prevXF.push(s.groupCtx.xArrjF),s.groupCtx.prevXVal.push(s.groupCtx.xArrjVal),l.add(P)},u=0,g=0;u1?c=(s=u.globals.minXDiff/this.xRatio)*parseInt(this.barOptions.columnWidth,10)/100:String(p).indexOf("%")===-1?c=parseInt(p,10):c*=parseInt(p,10)/100,n=this.isReversed?this.baseLineY[h]:u.globals.gridHeight-this.baseLineY[h],i=u.globals.padHorizontal+(s-c)/2}var f=u.globals.barGroups.length||1;return{x:i,y:a,yDivision:r,xDivision:s,barHeight:d/f,barWidth:c/f,zeroH:n,zeroW:l}}},{key:"drawStackedBarPaths",value:function(i){for(var a,s=i.indexes,r=i.barHeight,n=i.strokeWidth,l=i.zeroW,h=i.x,d=i.y,c=i.columnGroupIndex,u=i.seriesGroup,g=i.yDivision,p=i.elSeries,f=this.w,x=d+c*r,m=s.i,b=s.j,v=s.realIndex,k=s.translationsIndex,w=0,C=0;C0){var A=l;this.groupCtx.prevXVal[y-1][b]<0?A=this.series[m][b]>=0?this.groupCtx.prevX[y-1][b]+w-2*(this.isReversed?w:0):this.groupCtx.prevX[y-1][b]:this.groupCtx.prevXVal[y-1][b]>=0&&(A=this.series[m][b]>=0?this.groupCtx.prevX[y-1][b]:this.groupCtx.prevX[y-1][b]-w+2*(this.isReversed?w:0)),a=A}else a=l;h=this.series[m][b]===null?a:a+this.series[m][b]/this.invertedYRatio-2*(this.isReversed?this.series[m][b]/this.invertedYRatio:0);var L=this.barHelpers.getBarpaths({barYPosition:x,barHeight:r,x1:a,x2:h,strokeWidth:n,isReversed:this.isReversed,series:this.series,realIndex:s.realIndex,seriesGroup:u,i:m,j:b,w:f});return this.barHelpers.barBackground({j:b,i:m,y1:x,y2:r,elSeries:p}),d+=g,{pathTo:L.pathTo,pathFrom:L.pathFrom,goalX:this.barHelpers.getGoalValues("x",l,null,m,b,k),barXPosition:a,barYPosition:x,x:h,y:d}}},{key:"drawStackedColumnPaths",value:function(i){var a=i.indexes,s=i.x,r=i.y,n=i.xDivision,l=i.barWidth,h=i.zeroH,d=i.columnGroupIndex,c=i.seriesGroup,u=i.elSeries,g=this.w,p=a.i,f=a.j,x=a.bc,m=a.realIndex,b=a.translationsIndex;if(g.globals.isXNumeric){var v=g.globals.seriesX[m][f];v||(v=0),s=(v-g.globals.minX)/this.xRatio-l/2*g.globals.barGroups.length}for(var k,w=s+d*l,C=0,y=0;y0&&!g.globals.isXNumeric||A>0&&g.globals.isXNumeric&&g.globals.seriesX[m-1][f]===g.globals.seriesX[m][f]){var L,S,P,I=Math.min(this.yRatio.length+1,m+1);if(this.groupCtx.prevY[A-1]!==void 0&&this.groupCtx.prevY[A-1].length)for(var T=1;T=0?P-C+2*(this.isReversed?C:0):P;break}if(((F=this.groupCtx.prevYVal[A-O])===null||F===void 0?void 0:F[f])>=0){S=this.series[p][f]>=0?P:P+C-2*(this.isReversed?C:0);break}}S===void 0&&(S=g.globals.gridHeight),k=(L=this.groupCtx.prevYF[0])!==null&&L!==void 0&&L.every(function(V){return V===0})&&this.groupCtx.prevYF.slice(1,A).every(function(V){return V.every(function($){return isNaN($)})})?h:S}else k=h;r=this.series[p][f]?k-this.series[p][f]/this.yRatio[b]+2*(this.isReversed?this.series[p][f]/this.yRatio[b]:0):k;var B=this.barHelpers.getColumnPaths({barXPosition:w,barWidth:l,y1:k,y2:r,yRatio:this.yRatio[b],strokeWidth:this.strokeWidth,isReversed:this.isReversed,series:this.series,seriesGroup:c,realIndex:a.realIndex,i:p,j:f,w:g});return this.barHelpers.barBackground({bc:x,j:f,i:p,x1:w,x2:l,elSeries:u}),{pathTo:B.pathTo,pathFrom:B.pathFrom,goalY:this.barHelpers.getGoalValues("y",null,h,p,f),barXPosition:w,x:g.globals.isXNumeric?s:s+n,y:r}}}]),t}(),Li=function(o){Yt(t,mt);var e=Ot(t);function t(){return Y(this,t),e.apply(this,arguments)}return H(t,[{key:"draw",value:function(i,a,s){var r=this,n=this.w,l=new X(this.ctx),h=n.globals.comboCharts?a:n.config.chart.type,d=new Ne(this.ctx);this.candlestickOptions=this.w.config.plotOptions.candlestick,this.boxOptions=this.w.config.plotOptions.boxPlot,this.isHorizontal=n.config.plotOptions.bar.horizontal;var c=new be(this.ctx,n);i=c.getLogSeries(i),this.series=i,this.yRatio=c.getLogYRatios(this.yRatio),this.barHelpers.initVariables(i);for(var u=l.group({class:"apexcharts-".concat(h,"-series apexcharts-plot-series")}),g=function(f){r.isBoxPlot=n.config.chart.type==="boxPlot"||n.config.series[f].type==="boxPlot";var x,m,b,v,k=void 0,w=void 0,C=[],y=[],A=n.globals.comboCharts?s[f]:f,L=r.barHelpers.getGroupIndex(A).columnGroupIndex,S=l.group({class:"apexcharts-series",seriesName:M.escapeString(n.globals.seriesNames[A]),rel:f+1,"data:realIndex":A});r.ctx.series.addCollapsedClassToSeries(S,A),i[f].length>0&&(r.visibleI=r.visibleI+1);var P,I,T=0;r.yRatio.length>1&&(r.yaxisIndex=n.globals.seriesYAxisReverseMap[A][0],T=A);var z=r.barHelpers.initialPositions();w=z.y,P=z.barHeight,m=z.yDivision,v=z.zeroW,k=z.x,I=z.barWidth,x=z.xDivision,b=z.zeroH,y.push(k+I/2);for(var O=l.group({class:"apexcharts-datalabels","data:realIndex":A}),E=l.group({class:"apexcharts-bar-goals-markers"}),F=function(V){var $=r.barHelpers.getStrokeWidth(f,V,A),q=null,ge={indexes:{i:f,j:V,realIndex:A,translationsIndex:T},x:k,y:w,strokeWidth:$,elSeries:S};q=r.isHorizontal?r.drawHorizontalBoxPaths(R(R({},ge),{},{yDivision:m,barHeight:P,zeroW:v})):r.drawVerticalBoxPaths(R(R({},ge),{},{xDivision:x,barWidth:I,zeroH:b})),w=q.y,k=q.x;var pe=r.barHelpers.drawGoalLine({barXPosition:q.barXPosition,barYPosition:q.barYPosition,goalX:q.goalX,goalY:q.goalY,barHeight:P,barWidth:I});pe&&E.add(pe),V>0&&y.push(k+I/2),C.push(w),q.pathTo.forEach(function(ne,Ce){var te=!r.isBoxPlot&&r.candlestickOptions.wick.useFillColor?q.color[Ce]:n.globals.stroke.colors[f],ee=d.fillPath({seriesNumber:A,dataPointIndex:V,color:q.color[Ce],value:i[f][V]});r.renderSeries({realIndex:A,pathFill:ee,lineFill:te,j:V,i:f,pathFrom:q.pathFrom,pathTo:ne,strokeWidth:$,elSeries:S,x:k,y:w,series:i,columnGroupIndex:L,barHeight:P,barWidth:I,elDataLabelsWrap:O,elGoalsMarkers:E,visibleSeries:r.visibleI,type:n.config.chart.type})})},B=0;Bk.c&&(p=!1);var y=Math.min(k.o,k.c),A=Math.max(k.o,k.c),L=k.m;d.globals.isXNumeric&&(s=(d.globals.seriesX[v][g]-d.globals.minX)/this.xRatio-n/2);var S=s+n*this.visibleI;this.series[u][g]===void 0||this.series[u][g]===null?(y=l,A=l):(y=l-y/b,A=l-A/b,w=l-k.h/b,C=l-k.l/b,L=l-k.m/b);var P=c.move(S,l),I=c.move(S+n/2,y);return d.globals.previousPaths.length>0&&(I=this.getPreviousPath(v,g,!0)),P=this.isBoxPlot?[c.move(S,y)+c.line(S+n/2,y)+c.line(S+n/2,w)+c.line(S+n/4,w)+c.line(S+n-n/4,w)+c.line(S+n/2,w)+c.line(S+n/2,y)+c.line(S+n,y)+c.line(S+n,L)+c.line(S,L)+c.line(S,y+h/2),c.move(S,L)+c.line(S+n,L)+c.line(S+n,A)+c.line(S+n/2,A)+c.line(S+n/2,C)+c.line(S+n-n/4,C)+c.line(S+n/4,C)+c.line(S+n/2,C)+c.line(S+n/2,A)+c.line(S,A)+c.line(S,L)+"z"]:[c.move(S,A)+c.line(S+n/2,A)+c.line(S+n/2,w)+c.line(S+n/2,A)+c.line(S+n,A)+c.line(S+n,y)+c.line(S+n/2,y)+c.line(S+n/2,C)+c.line(S+n/2,y)+c.line(S,y)+c.line(S,A-h/2)],I+=c.move(S,y),d.globals.isXNumeric||(s+=r),{pathTo:P,pathFrom:I,x:s,y:A,goalY:this.barHelpers.getGoalValues("y",null,l,u,g,a.translationsIndex),barXPosition:S,color:this.isBoxPlot?m:p?[f]:[x]}}},{key:"drawHorizontalBoxPaths",value:function(i){var a=i.indexes;i.x;var s=i.y,r=i.yDivision,n=i.barHeight,l=i.zeroW,h=i.strokeWidth,d=this.w,c=new X(this.ctx),u=a.i,g=a.j,p=this.boxOptions.colors.lower;this.isBoxPlot&&(p=[this.boxOptions.colors.lower,this.boxOptions.colors.upper]);var f=this.invertedYRatio,x=a.realIndex,m=this.getOHLCValue(x,g),b=l,v=l,k=Math.min(m.o,m.c),w=Math.max(m.o,m.c),C=m.m;d.globals.isXNumeric&&(s=(d.globals.seriesX[x][g]-d.globals.minX)/this.invertedXRatio-n/2);var y=s+n*this.visibleI;this.series[u][g]===void 0||this.series[u][g]===null?(k=l,w=l):(k=l+k/f,w=l+w/f,b=l+m.h/f,v=l+m.l/f,C=l+m.m/f);var A=c.move(l,y),L=c.move(k,y+n/2);return d.globals.previousPaths.length>0&&(L=this.getPreviousPath(x,g,!0)),A=[c.move(k,y)+c.line(k,y+n/2)+c.line(b,y+n/2)+c.line(b,y+n/2-n/4)+c.line(b,y+n/2+n/4)+c.line(b,y+n/2)+c.line(k,y+n/2)+c.line(k,y+n)+c.line(C,y+n)+c.line(C,y)+c.line(k+h/2,y),c.move(C,y)+c.line(C,y+n)+c.line(w,y+n)+c.line(w,y+n/2)+c.line(v,y+n/2)+c.line(v,y+n-n/4)+c.line(v,y+n/4)+c.line(v,y+n/2)+c.line(w,y+n/2)+c.line(w,y)+c.line(C,y)+"z"],L+=c.move(k,y),d.globals.isXNumeric||(s+=r),{pathTo:A,pathFrom:L,x:w,y:s,goalX:this.barHelpers.getGoalValues("x",l,null,u,g),barYPosition:y,color:p}}},{key:"getOHLCValue",value:function(i,a){var s=this.w;return{o:this.isBoxPlot?s.globals.seriesCandleH[i][a]:s.globals.seriesCandleO[i][a],h:this.isBoxPlot?s.globals.seriesCandleO[i][a]:s.globals.seriesCandleH[i][a],m:s.globals.seriesCandleM[i][a],l:this.isBoxPlot?s.globals.seriesCandleC[i][a]:s.globals.seriesCandleL[i][a],c:this.isBoxPlot?s.globals.seriesCandleL[i][a]:s.globals.seriesCandleC[i][a]}}}]),t}(),ir=function(){function o(e){Y(this,o),this.ctx=e,this.w=e.w}return H(o,[{key:"checkColorRange",value:function(){var e=this.w,t=!1,i=e.config.plotOptions[e.config.chart.type];return i.colorScale.ranges.length>0&&i.colorScale.ranges.map(function(a,s){a.from<=0&&(t=!0)}),t}},{key:"getShadeColor",value:function(e,t,i,a){var s=this.w,r=1,n=s.config.plotOptions[e].shadeIntensity,l=this.determineColor(e,t,i);s.globals.hasNegs||a?r=s.config.plotOptions[e].reverseNegativeShade?l.percent<0?l.percent/100*(1.25*n):(1-l.percent/100)*(1.25*n):l.percent<=0?1-(1+l.percent/100)*n:(1-l.percent/100)*n:(r=1-l.percent/100,e==="treemap"&&(r=(1-l.percent/100)*(1.25*n)));var h=l.color,d=new M;if(s.config.plotOptions[e].enableShades)if(this.w.config.theme.mode==="dark"){var c=d.shadeColor(-1*r,l.color);h=M.hexToRgba(M.isColorHex(c)?c:M.rgb2hex(c),s.config.fill.opacity)}else{var u=d.shadeColor(r,l.color);h=M.hexToRgba(M.isColorHex(u)?u:M.rgb2hex(u),s.config.fill.opacity)}return{color:h,colorProps:l}}},{key:"determineColor",value:function(e,t,i){var a=this.w,s=a.globals.series[t][i],r=a.config.plotOptions[e],n=r.colorScale.inverse?i:t;r.distributed&&a.config.chart.type==="treemap"&&(n=i);var l=a.globals.colors[n],h=null,d=Math.min.apply(Math,ve(a.globals.series[t])),c=Math.max.apply(Math,ve(a.globals.series[t]));r.distributed||e!=="heatmap"||(d=a.globals.minY,c=a.globals.maxY),r.colorScale.min!==void 0&&(d=r.colorScale.mina.globals.maxY?r.colorScale.max:a.globals.maxY);var u=Math.abs(c)+Math.abs(d),g=100*s/(u===0?u-1e-6:u);return r.colorScale.ranges.length>0&&r.colorScale.ranges.map(function(p,f){if(s>=p.from&&s<=p.to){l=p.color,h=p.foreColor?p.foreColor:null,d=p.from,c=p.to;var x=Math.abs(c)+Math.abs(d);g=100*s/(x===0?x-1e-6:x)}}),{color:l,foreColor:h,percent:g}}},{key:"calculateDataLabels",value:function(e){var t=e.text,i=e.x,a=e.y,s=e.i,r=e.j,n=e.colorProps,l=e.fontSize,h=this.w.config.dataLabels,d=new X(this.ctx),c=new xt(this.ctx),u=null;if(h.enabled){u=d.group({class:"apexcharts-data-labels"});var g=h.offsetX,p=h.offsetY,f=i+g,x=a+parseFloat(h.style.fontSize)/3+p;c.plotDataLabelsText({x:f,y:x,text:t,i:s,j:r,color:n.foreColor,parent:u,fontSize:l,dataLabelsConfig:h})}return u}},{key:"addListeners",value:function(e){var t=new X(this.ctx);e.node.addEventListener("mouseenter",t.pathMouseEnter.bind(this,e)),e.node.addEventListener("mouseleave",t.pathMouseLeave.bind(this,e)),e.node.addEventListener("mousedown",t.pathMouseDown.bind(this,e))}}]),o}(),th=function(){function o(e,t){Y(this,o),this.ctx=e,this.w=e.w,this.xRatio=t.xRatio,this.yRatio=t.yRatio,this.dynamicAnim=this.w.config.chart.animations.dynamicAnimation,this.helpers=new ir(e),this.rectRadius=this.w.config.plotOptions.heatmap.radius,this.strokeWidth=this.w.config.stroke.show?this.w.config.stroke.width:0}return H(o,[{key:"draw",value:function(e){var t=this.w,i=new X(this.ctx),a=i.group({class:"apexcharts-heatmap"});a.attr("clip-path","url(#gridRectMask".concat(t.globals.cuid,")"));var s=t.globals.gridWidth/t.globals.dataPoints,r=t.globals.gridHeight/t.globals.series.length,n=0,l=!1;this.negRange=this.helpers.checkColorRange();var h=e.slice();t.config.yaxis[0].reversed&&(l=!0,h.reverse());for(var d=l?0:h.length-1;l?d=0;l?d++:d--){var c=i.group({class:"apexcharts-series apexcharts-heatmap-series",seriesName:M.escapeString(t.globals.seriesNames[d]),rel:d+1,"data:realIndex":d});if(this.ctx.series.addCollapsedClassToSeries(c,d),t.config.chart.dropShadow.enabled){var u=t.config.chart.dropShadow;new ke(this.ctx).dropShadow(c,u,d)}for(var g=0,p=t.config.plotOptions.heatmap.shadeIntensity,f=0;f-1&&this.pieClicked(u),i.config.dataLabels.enabled){var w=v.x,C=v.y,y=100*p/this.fullAngle+"%";if(p!==0&&i.config.plotOptions.pie.dataLabels.minAngleToShowLabelthis.fullAngle?t.endAngle=t.endAngle-(a+n):a+n=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle&&(d=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle-.01),Math.ceil(d)>this.fullAngle&&(d-=this.fullAngle);var c=Math.PI*(d-90)/180,u=i.centerX+r*Math.cos(h),g=i.centerY+r*Math.sin(h),p=i.centerX+r*Math.cos(c),f=i.centerY+r*Math.sin(c),x=M.polarToCartesian(i.centerX,i.centerY,i.donutSize,d),m=M.polarToCartesian(i.centerX,i.centerY,i.donutSize,l),b=s>180?1:0,v=["M",u,g,"A",r,r,0,b,1,p,f];return t=i.chartType==="donut"?[].concat(v,["L",x.x,x.y,"A",i.donutSize,i.donutSize,0,b,0,m.x,m.y,"L",u,g,"z"]).join(" "):i.chartType==="pie"||i.chartType==="polarArea"?[].concat(v,["L",i.centerX,i.centerY,"L",u,g]).join(" "):[].concat(v).join(" "),n.roundPathCorners(t,2*this.strokeWidth)}},{key:"drawPolarElements",value:function(e){var t=this.w,i=new Js(this.ctx),a=new X(this.ctx),s=new ar(this.ctx),r=a.group(),n=a.group(),l=i.niceScale(0,Math.ceil(this.maxY),0),h=l.result.reverse(),d=l.result.length;this.maxY=l.niceMax;for(var c=t.globals.radialSize,u=c/(d-1),g=0;g1&&e.total.show&&(s=e.total.color);var n=r.globals.dom.baseEl.querySelector(".apexcharts-datalabel-label"),l=r.globals.dom.baseEl.querySelector(".apexcharts-datalabel-value");i=(0,e.value.formatter)(i,r),a||typeof e.total.formatter!="function"||(i=e.total.formatter(r));var h=t===e.total.label;t=this.donutDataLabels.total.label?e.name.formatter(t,h,r):"",n!==null&&(n.textContent=t),l!==null&&(l.textContent=i),n!==null&&(n.style.fill=s)}},{key:"printDataLabelsInner",value:function(e,t){var i=this.w,a=e.getAttribute("data:value"),s=i.globals.seriesNames[parseInt(e.parentNode.getAttribute("rel"),10)-1];i.globals.series.length>1&&this.printInnerLabels(t,s,a,e);var r=i.globals.dom.baseEl.querySelector(".apexcharts-datalabels-group");r!==null&&(r.style.opacity=1)}},{key:"drawSpokes",value:function(e){var t=this,i=this.w,a=new X(this.ctx),s=i.config.plotOptions.polarArea.spokes;if(s.strokeWidth!==0){for(var r=[],n=360/i.globals.series.length,l=0;l0&&(C=t.getPreviousPath(m));for(var y=0;y=10?e.x>0?(i="start",a+=10):e.x<0&&(i="end",a-=10):i="middle",Math.abs(e.y)>=t-10&&(e.y<0?s-=10:e.y>0&&(s+=10)),{textAnchor:i,newX:a,newY:s}}},{key:"getPreviousPath",value:function(e){for(var t=this.w,i=null,a=0;a0&&parseInt(s.realIndex,10)===parseInt(e,10)&&t.globals.previousPaths[a].paths[0]!==void 0&&(i=t.globals.previousPaths[a].paths[0].d)}return i}},{key:"getDataPointsPos",value:function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.dataPointsLen;e=e||[],t=t||[];for(var a=[],s=0;s=360&&(f=360-Math.abs(this.startAngle)-.1);var x=s.drawPath({d:"",stroke:g,strokeWidth:h*parseInt(u.strokeWidth,10)/100,fill:"none",strokeOpacity:u.opacity,classes:"apexcharts-radialbar-area"});if(u.dropShadow.enabled){var m=u.dropShadow;n.dropShadow(x,m)}c.add(x),x.attr("id","apexcharts-radialbarTrack-"+d),this.animatePaths(x,{centerX:i.centerX,centerY:i.centerY,endAngle:f,startAngle:p,size:i.size,i:d,totalItems:2,animBeginArr:0,dur:0,isTrack:!0})}return r}},{key:"drawArcs",value:function(i){var a=this.w,s=new X(this.ctx),r=new Ne(this.ctx),n=new ke(this.ctx),l=s.group(),h=this.getStrokeWidth(i);i.size=i.size-h/2;var d=a.config.plotOptions.radialBar.hollow.background,c=i.size-h*i.series.length-this.margin*i.series.length-h*parseInt(a.config.plotOptions.radialBar.track.strokeWidth,10)/100/2,u=c-a.config.plotOptions.radialBar.hollow.margin;a.config.plotOptions.radialBar.hollow.image!==void 0&&(d=this.drawHollowImage(i,l,c,d));var g=this.drawHollow({size:u,centerX:i.centerX,centerY:i.centerY,fill:d||"transparent"});if(a.config.plotOptions.radialBar.hollow.dropShadow.enabled){var p=a.config.plotOptions.radialBar.hollow.dropShadow;n.dropShadow(g,p)}var f=1;!this.radialDataLabels.total.show&&a.globals.series.length>1&&(f=0);var x=null;if(this.radialDataLabels.show){var m=a.globals.dom.Paper.findOne(".apexcharts-datalabels-group");x=this.renderInnerDataLabels(m,this.radialDataLabels,{hollowSize:c,centerX:i.centerX,centerY:i.centerY,opacity:f})}a.config.plotOptions.radialBar.hollow.position==="back"&&(l.add(g),x&&l.add(x));var b=!1;a.config.plotOptions.radialBar.inverseOrder&&(b=!0);for(var v=b?i.series.length-1:0;b?v>=0:v100?100:i.series[v])/100,L=Math.round(this.totalAngle*A)+this.startAngle,S=void 0;a.globals.dataChanged&&(y=this.startAngle,S=Math.round(this.totalAngle*M.negToZero(a.globals.previousPaths[v])/100)+y),Math.abs(L)+Math.abs(C)>360&&(L-=.01),Math.abs(S)+Math.abs(y)>360&&(S-=.01);var P=L-C,I=Array.isArray(a.config.stroke.dashArray)?a.config.stroke.dashArray[v]:a.config.stroke.dashArray,T=s.drawPath({d:"",stroke:w,strokeWidth:h,fill:"none",fillOpacity:a.config.fill.opacity,classes:"apexcharts-radialbar-area apexcharts-radialbar-slice-"+v,strokeDashArray:I});if(X.setAttrs(T.node,{"data:angle":P,"data:value":i.series[v]}),a.config.chart.dropShadow.enabled){var z=a.config.chart.dropShadow;n.dropShadow(T,z,v)}if(n.setSelectionFilter(T,0,v),this.addListeners(T,this.radialDataLabels),k.add(T),T.attr({index:0,j:v}),this.barLabels.enabled){var O=M.polarToCartesian(i.centerX,i.centerY,i.size,C),E=this.barLabels.formatter(a.globals.seriesNames[v],{seriesIndex:v,w:a}),F=["apexcharts-radialbar-label"];this.barLabels.onClick||F.push("apexcharts-no-click");var B=this.barLabels.useSeriesColors?a.globals.colors[v]:a.config.chart.foreColor;B||(B=a.config.chart.foreColor);var V=O.x+this.barLabels.offsetX,$=O.y+this.barLabels.offsetY,q=s.drawText({x:V,y:$,text:E,textAnchor:"end",dominantBaseline:"middle",fontFamily:this.barLabels.fontFamily,fontWeight:this.barLabels.fontWeight,fontSize:this.barLabels.fontSize,foreColor:B,cssClass:F.join(" ")});q.on("click",this.onBarLabelClick),q.attr({rel:v+1}),C!==0&&q.attr({"transform-origin":"".concat(V," ").concat($),transform:"rotate(".concat(C," 0 0)")}),k.add(q)}var ge=0;!this.initialAnim||a.globals.resized||a.globals.dataChanged||(ge=a.config.chart.animations.speed),a.globals.dataChanged&&(ge=a.config.chart.animations.dynamicAnimation.speed),this.animDur=ge/(1.2*i.series.length)+this.animDur,this.animBeginArr.push(this.animDur),this.animatePaths(T,{centerX:i.centerX,centerY:i.centerY,endAngle:L,startAngle:C,prevEndAngle:S,prevStartAngle:y,size:i.size,i:v,totalItems:2,animBeginArr:this.animBeginArr,dur:ge,shouldSetPrevPaths:!0})}return{g:l,elHollow:g,dataLabels:x}}},{key:"drawHollow",value:function(i){var a=new X(this.ctx).drawCircle(2*i.size);return a.attr({class:"apexcharts-radialbar-hollow",cx:i.centerX,cy:i.centerY,r:i.size,fill:i.fill}),a}},{key:"drawHollowImage",value:function(i,a,s,r){var n=this.w,l=new Ne(this.ctx),h=M.randomId(),d=n.config.plotOptions.radialBar.hollow.image;if(n.config.plotOptions.radialBar.hollow.imageClipped)l.clippedImgArea({width:s,height:s,image:d,patternID:"pattern".concat(n.globals.cuid).concat(h)}),r="url(#pattern".concat(n.globals.cuid).concat(h,")");else{var c=n.config.plotOptions.radialBar.hollow.imageWidth,u=n.config.plotOptions.radialBar.hollow.imageHeight;if(c===void 0&&u===void 0){var g=n.globals.dom.Paper.image(d,function(f){this.move(i.centerX-f.width/2+n.config.plotOptions.radialBar.hollow.imageOffsetX,i.centerY-f.height/2+n.config.plotOptions.radialBar.hollow.imageOffsetY)});a.add(g)}else{var p=n.globals.dom.Paper.image(d,function(f){this.move(i.centerX-c/2+n.config.plotOptions.radialBar.hollow.imageOffsetX,i.centerY-u/2+n.config.plotOptions.radialBar.hollow.imageOffsetY),this.size(c,u)});a.add(p)}}return r}},{key:"getStrokeWidth",value:function(i){var a=this.w;return i.size*(100-parseInt(a.config.plotOptions.radialBar.hollow.size,10))/100/(i.series.length+1)-this.margin}},{key:"onBarLabelClick",value:function(i){var a=parseInt(i.target.getAttribute("rel"),10)-1,s=this.barLabels.onClick,r=this.w;s&&s(r.globals.seriesNames[a],{w:r,seriesIndex:a})}}]),t}(),sh=function(o){Yt(t,mt);var e=Ot(t);function t(){return Y(this,t),e.apply(this,arguments)}return H(t,[{key:"draw",value:function(i,a){var s=this.w,r=new X(this.ctx);this.rangeBarOptions=this.w.config.plotOptions.rangeBar,this.series=i,this.seriesRangeStart=s.globals.seriesRangeStart,this.seriesRangeEnd=s.globals.seriesRangeEnd,this.barHelpers.initVariables(i);for(var n=r.group({class:"apexcharts-rangebar-series apexcharts-plot-series"}),l=0;l0&&(this.visibleI=this.visibleI+1);var b=0,v=0,k=0;this.yRatio.length>1&&(this.yaxisIndex=s.globals.seriesYAxisReverseMap[f][0],k=f);var w=this.barHelpers.initialPositions();p=w.y,u=w.zeroW,g=w.x,v=w.barWidth,b=w.barHeight,h=w.xDivision,d=w.yDivision,c=w.zeroH;for(var C=r.group({class:"apexcharts-datalabels","data:realIndex":f}),y=r.group({class:"apexcharts-rangebar-goals-markers"}),A=0;A0});return this.isHorizontal?(r=f.config.plotOptions.bar.rangeBarGroupRows?l+u*k:l+d*this.visibleI+u*k,w>-1&&!f.config.plotOptions.bar.rangeBarOverlap&&(x=f.globals.seriesRange[a][w].overlaps).indexOf(m)>-1&&(r=(d=p.barHeight/x.length)*this.visibleI+u*(100-parseInt(this.barOptions.barHeight,10))/100/2+d*(this.visibleI+x.indexOf(m))+u*k)):(k>-1&&!f.globals.timescaleLabels.length&&(n=f.config.plotOptions.bar.rangeBarGroupRows?h+g*k:h+c*this.visibleI+g*k),w>-1&&!f.config.plotOptions.bar.rangeBarOverlap&&(x=f.globals.seriesRange[a][w].overlaps).indexOf(m)>-1&&(n=(c=p.barWidth/x.length)*this.visibleI+g*(100-parseInt(this.barOptions.barWidth,10))/100/2+c*(this.visibleI+x.indexOf(m))+g*k)),{barYPosition:r,barXPosition:n,barHeight:d,barWidth:c}}},{key:"drawRangeColumnPaths",value:function(i){var a=i.indexes,s=i.x,r=i.xDivision,n=i.barWidth,l=i.barXPosition,h=i.zeroH,d=this.w,c=a.i,u=a.j,g=a.realIndex,p=a.translationsIndex,f=this.yRatio[p],x=this.getRangeValue(g,u),m=Math.min(x.start,x.end),b=Math.max(x.start,x.end);this.series[c][u]===void 0||this.series[c][u]===null?m=h:(m=h-m/f,b=h-b/f);var v=Math.abs(b-m),k=this.barHelpers.getColumnPaths({barXPosition:l,barWidth:n,y1:m,y2:b,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,realIndex:g,i:g,j:u,w:d});if(d.globals.isXNumeric){var w=this.getBarXForNumericXAxis({x:s,j:u,realIndex:g,barWidth:n});s=w.x,l=w.barXPosition}else s+=r;return{pathTo:k.pathTo,pathFrom:k.pathFrom,barHeight:v,x:s,y:x.start<0&&x.end<0?m:b,goalY:this.barHelpers.getGoalValues("y",null,h,c,u,p),barXPosition:l}}},{key:"preventBarOverflow",value:function(i){var a=this.w;return i<0&&(i=0),i>a.globals.gridWidth&&(i=a.globals.gridWidth),i}},{key:"drawRangeBarPaths",value:function(i){var a=i.indexes,s=i.y,r=i.y1,n=i.y2,l=i.yDivision,h=i.barHeight,d=i.barYPosition,c=i.zeroW,u=this.w,g=a.realIndex,p=a.j,f=this.preventBarOverflow(c+r/this.invertedYRatio),x=this.preventBarOverflow(c+n/this.invertedYRatio),m=this.getRangeValue(g,p),b=Math.abs(x-f),v=this.barHelpers.getBarpaths({barYPosition:d,barHeight:h,x1:f,x2:x,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,i:g,realIndex:g,j:p,w:u});return u.globals.isXNumeric||(s+=l),{pathTo:v.pathTo,pathFrom:v.pathFrom,barWidth:b,x:m.start<0&&m.end<0?f:x,goalX:this.barHelpers.getGoalValues("x",c,null,g,p),y:s}}},{key:"getRangeValue",value:function(i,a){var s=this.w;return{start:s.globals.seriesRangeStart[i][a],end:s.globals.seriesRangeEnd[i][a]}}}]),t}(),rh=function(){function o(e){Y(this,o),this.w=e.w,this.lineCtx=e}return H(o,[{key:"sameValueSeriesFix",value:function(e,t){var i=this.w;if((i.config.fill.type==="gradient"||i.config.fill.type[e]==="gradient")&&new be(this.lineCtx.ctx,i).seriesHaveSameValues(e)){var a=t[e].slice();a[a.length-1]=a[a.length-1]+1e-6,t[e]=a}return t}},{key:"calculatePoints",value:function(e){var t=e.series,i=e.realIndex,a=e.x,s=e.y,r=e.i,n=e.j,l=e.prevY,h=this.w,d=[],c=[];if(n===0){var u=this.lineCtx.categoryAxisCorrection+h.config.markers.offsetX;h.globals.isXNumeric&&(u=(h.globals.seriesX[i][0]-h.globals.minX)/this.lineCtx.xRatio+h.config.markers.offsetX),d.push(u),c.push(M.isNumber(t[r][0])?l+h.config.markers.offsetY:null),d.push(a+h.config.markers.offsetX),c.push(M.isNumber(t[r][n+1])?s+h.config.markers.offsetY:null)}else d.push(a+h.config.markers.offsetX),c.push(M.isNumber(t[r][n+1])?s+h.config.markers.offsetY:null);return{x:d,y:c}}},{key:"checkPreviousPaths",value:function(e){for(var t=e.pathFromLine,i=e.pathFromArea,a=e.realIndex,s=this.w,r=0;r0&&parseInt(n.realIndex,10)===parseInt(a,10)&&(n.type==="line"?(this.lineCtx.appendPathFrom=!1,t=s.globals.previousPaths[r].paths[0].d):n.type==="area"&&(this.lineCtx.appendPathFrom=!1,i=s.globals.previousPaths[r].paths[0].d,s.config.stroke.show&&s.globals.previousPaths[r].paths[1]&&(t=s.globals.previousPaths[r].paths[1].d)))}return{pathFromLine:t,pathFromArea:i}}},{key:"determineFirstPrevY",value:function(e){var t,i,a,s=e.i,r=e.realIndex,n=e.series,l=e.prevY,h=e.lineYPosition,d=e.translationsIndex,c=this.w,u=c.config.chart.stacked&&!c.globals.comboCharts||c.config.chart.stacked&&c.globals.comboCharts&&(!this.w.config.chart.stackOnlyBar||((t=this.w.config.series[r])===null||t===void 0?void 0:t.type)==="bar"||((i=this.w.config.series[r])===null||i===void 0?void 0:i.type)==="column");if(((a=n[s])===null||a===void 0?void 0:a[0])!==void 0)l=(h=u&&s>0?this.lineCtx.prevSeriesY[s-1][0]:this.lineCtx.zeroY)-n[s][0]/this.lineCtx.yRatio[d]+2*(this.lineCtx.isReversed?n[s][0]/this.lineCtx.yRatio[d]:0);else if(u&&s>0&&n[s][0]===void 0){for(var g=s-1;g>=0;g--)if(n[g][0]!==null&&n[g][0]!==void 0){l=h=this.lineCtx.prevSeriesY[g][0];break}}return{prevY:l,lineYPosition:h}}}]),o}(),nh=function(o){for(var e,t,i,a,s=function(d){for(var c=[],u=d[0],g=d[1],p=c[0]=Mi(u,g),f=1,x=d.length-1;f9&&(a=3*i/Math.sqrt(a),s[l]=a*e,s[l+1]=a*t);for(var h=0;h<=r;h++)a=(o[Math.min(r,h+1)][0]-o[Math.max(0,h-1)][0])/(6*(1+s[h]*s[h])),n.push([a||0,s[h]*a||0]);return n},oh=function(o){var e=nh(o),t=o[1],i=o[0],a=[],s=e[1],r=e[0];a.push(i,[i[0]+r[0],i[1]+r[1],t[0]-s[0],t[1]-s[1],t[0],t[1]]);for(var n=2,l=e.length;n1&&i[1].length<6){var a=i[0].length;i[1]=[2*i[0][a-2]-i[0][a-4],2*i[0][a-1]-i[0][a-3]].concat(i[1])}i[0]=i[0].slice(-2)}return i};function Mi(o,e){return(e[1]-o[1])/(e[0]-o[0])}var Pi=function(){function o(e,t,i){Y(this,o),this.ctx=e,this.w=e.w,this.xyRatios=t,this.pointsChart=!(this.w.config.chart.type!=="bubble"&&this.w.config.chart.type!=="scatter")||i,this.scatter=new $s(this.ctx),this.noNegatives=this.w.globals.minX===Number.MAX_VALUE,this.lineHelpers=new rh(this),this.markers=new Ct(this.ctx),this.prevSeriesY=[],this.categoryAxisCorrection=0,this.yaxisIndex=0}return H(o,[{key:"draw",value:function(e,t,i,a){var s,r=this.w,n=new X(this.ctx),l=r.globals.comboCharts?t:r.config.chart.type,h=n.group({class:"apexcharts-".concat(l,"-series apexcharts-plot-series")}),d=new be(this.ctx,r);this.yRatio=this.xyRatios.yRatio,this.zRatio=this.xyRatios.zRatio,this.xRatio=this.xyRatios.xRatio,this.baseLineY=this.xyRatios.baseLineY,e=d.getLogSeries(e),this.yRatio=d.getLogYRatios(this.yRatio),this.prevSeriesY=[];for(var c=[],u=0;u1?g:0;this._initSerieVariables(e,u,g);var f=[],x=[],m=[],b=r.globals.padHorizontal+this.categoryAxisCorrection;this.ctx.series.addCollapsedClassToSeries(this.elSeries,g),r.globals.isXNumeric&&r.globals.seriesX.length>0&&(b=(r.globals.seriesX[g][0]-r.globals.minX)/this.xRatio),m.push(b);var v,k=b,w=void 0,C=k,y=this.zeroY,A=this.zeroY;y=this.lineHelpers.determineFirstPrevY({i:u,realIndex:g,series:e,prevY:y,lineYPosition:0,translationsIndex:p}).prevY,r.config.stroke.curve==="monotoneCubic"&&e[u][0]===null?f.push(null):f.push(y),v=y,l==="rangeArea"&&(w=A=this.lineHelpers.determineFirstPrevY({i:u,realIndex:g,series:a,prevY:A,lineYPosition:0,translationsIndex:p}).prevY,x.push(f[0]!==null?A:null));var L=this._calculatePathsFrom({type:l,series:e,i:u,realIndex:g,translationsIndex:p,prevX:C,prevY:y,prevY2:A}),S=[f[0]],P=[x[0]],I={type:l,series:e,realIndex:g,translationsIndex:p,i:u,x:b,y:1,pX:k,pY:v,pathsFrom:L,linePaths:[],areaPaths:[],seriesIndex:i,lineYPosition:0,xArrj:m,yArrj:f,y2Arrj:x,seriesRangeEnd:a},T=this._iterateOverDataPoints(R(R({},I),{},{iterations:l==="rangeArea"?e[u].length-1:void 0,isRangeStart:!0}));if(l==="rangeArea"){for(var z=this._calculatePathsFrom({series:a,i:u,realIndex:g,prevX:C,prevY:A}),O=this._iterateOverDataPoints(R(R({},I),{},{series:a,xArrj:[b],yArrj:S,y2Arrj:P,pY:w,areaPaths:T.areaPaths,pathsFrom:z,iterations:a[u].length-1,isRangeStart:!1})),E=T.linePaths.length/2,F=0;F=0;B--)h.add(c[B]);else for(var V=0;V1&&(this.yaxisIndex=a.globals.seriesYAxisReverseMap[i],r=i),this.isReversed=a.config.yaxis[this.yaxisIndex]&&a.config.yaxis[this.yaxisIndex].reversed,this.zeroY=a.globals.gridHeight-this.baseLineY[r]-(this.isReversed?a.globals.gridHeight:0)+(this.isReversed?2*this.baseLineY[r]:0),this.areaBottomY=this.zeroY,(this.zeroY>a.globals.gridHeight||a.config.plotOptions.area.fillTo==="end")&&(this.areaBottomY=a.globals.gridHeight),this.categoryAxisCorrection=this.xDivision/2,this.elSeries=s.group({class:"apexcharts-series",zIndex:a.config.series[i].zIndex!==void 0?a.config.series[i].zIndex:i,seriesName:M.escapeString(a.globals.seriesNames[i])}),this.elPointsMain=s.group({class:"apexcharts-series-markers-wrap","data:realIndex":i}),this.elDataLabelsWrap=s.group({class:"apexcharts-datalabels","data:realIndex":i});var n=e[t].length===a.globals.dataPoints;this.elSeries.attr({"data:longestSeries":n,rel:t+1,"data:realIndex":i}),this.appendPathFrom=!0}},{key:"_calculatePathsFrom",value:function(e){var t,i,a,s,r=e.type,n=e.series,l=e.i,h=e.realIndex,d=e.translationsIndex,c=e.prevX,u=e.prevY,g=e.prevY2,p=this.w,f=new X(this.ctx);if(n[l][0]===null){for(var x=0;x0){var m=this.lineHelpers.checkPreviousPaths({pathFromLine:a,pathFromArea:s,realIndex:h});a=m.pathFromLine,s=m.pathFromArea}return{prevX:c,prevY:u,linePath:t,areaPath:i,pathFromLine:a,pathFromArea:s}}},{key:"_handlePaths",value:function(e){var t=e.type,i=e.realIndex,a=e.i,s=e.paths,r=this.w,n=new X(this.ctx),l=new Ne(this.ctx);this.prevSeriesY.push(s.yArrj),r.globals.seriesXvalues[i]=s.xArrj,r.globals.seriesYvalues[i]=s.yArrj;var h=r.config.forecastDataPoints;if(h.count>0&&t!=="rangeArea"){var d=r.globals.seriesXvalues[i][r.globals.seriesXvalues[i].length-h.count-1],c=n.drawRect(d,0,r.globals.gridWidth,r.globals.gridHeight,0);r.globals.dom.elForecastMask.appendChild(c.node);var u=n.drawRect(0,0,d,r.globals.gridHeight,0);r.globals.dom.elNonForecastMask.appendChild(u.node)}this.pointsChart||r.globals.delayedElements.push({el:this.elPointsMain.node,index:i});var g={i:a,realIndex:i,animationDelay:a,initialSpeed:r.config.chart.animations.speed,dataChangeSpeed:r.config.chart.animations.dynamicAnimation.speed,className:"apexcharts-".concat(t)};if(t==="area")for(var p=l.fillPath({seriesNumber:i}),f=0;f0&&t!=="rangeArea"){var y=n.renderPaths(w);y.node.setAttribute("stroke-dasharray",h.dashArray),h.strokeWidth&&y.node.setAttribute("stroke-width",h.strokeWidth),this.elSeries.add(y),y.attr("clip-path","url(#forecastMask".concat(r.globals.cuid,")")),C.attr("clip-path","url(#nonForecastMask".concat(r.globals.cuid,")"))}}}}},{key:"_iterateOverDataPoints",value:function(e){var t,i,a=this,s=e.type,r=e.series,n=e.iterations,l=e.realIndex,h=e.translationsIndex,d=e.i,c=e.x,u=e.y,g=e.pX,p=e.pY,f=e.pathsFrom,x=e.linePaths,m=e.areaPaths,b=e.seriesIndex,v=e.lineYPosition,k=e.xArrj,w=e.yArrj,C=e.y2Arrj,y=e.isRangeStart,A=e.seriesRangeEnd,L=this.w,S=new X(this.ctx),P=this.yRatio,I=f.prevY,T=f.linePath,z=f.areaPath,O=f.pathFromLine,E=f.pathFromArea,F=M.isNumber(L.globals.minYArr[l])?L.globals.minYArr[l]:L.globals.minY;n||(n=L.globals.dataPoints>1?L.globals.dataPoints-1:L.globals.dataPoints);var B=function(Se,Le){return Le-Se/P[h]+2*(a.isReversed?Se/P[h]:0)},V=u,$=L.config.chart.stacked&&!L.globals.comboCharts||L.config.chart.stacked&&L.globals.comboCharts&&(!this.w.config.chart.stackOnlyBar||((t=this.w.config.series[l])===null||t===void 0?void 0:t.type)==="bar"||((i=this.w.config.series[l])===null||i===void 0?void 0:i.type)==="column"),q=L.config.stroke.curve;Array.isArray(q)&&(q=Array.isArray(b)?q[b[d]]:q[d]);for(var ge,pe=0,ne=0;ne0&&L.globals.collapsedSeries.length0;Le--){if(!(L.globals.collapsedSeriesIndices.indexOf((b==null?void 0:b[Le])||Le)>-1))return Le;Le--}return 0}(d-1)][ne+1]:v=this.zeroY:v=this.zeroY,Ce?u=B(F,v):(u=B(r[d][ne+1],v),s==="rangeArea"&&(V=B(A[d][ne+1],v))),k.push(c),!Ce||L.config.stroke.curve!=="smooth"&&L.config.stroke.curve!=="monotoneCubic"?(w.push(u),C.push(V)):(w.push(null),C.push(null));var ee=this.lineHelpers.calculatePoints({series:r,x:c,y:u,realIndex:l,i:d,j:ne,prevY:I}),se=this._createPaths({type:s,series:r,i:d,realIndex:l,j:ne,x:c,y:u,y2:V,xArrj:k,yArrj:w,y2Arrj:C,pX:g,pY:p,pathState:pe,segmentStartX:ge,linePath:T,areaPath:z,linePaths:x,areaPaths:m,curve:q,isRangeStart:y});m=se.areaPaths,x=se.linePaths,g=se.pX,p=se.pY,pe=se.pathState,ge=se.segmentStartX,z=se.areaPath,T=se.linePath,!this.appendPathFrom||L.globals.hasNullValues||q==="monotoneCubic"&&s==="rangeArea"||(O+=S.line(c,this.areaBottomY),E+=S.line(c,this.areaBottomY)),this.handleNullDataPoints(r,ee,d,ne,l),this._handleMarkersAndLabels({type:s,pointsPos:ee,i:d,j:ne,realIndex:l,isRangeStart:y})}return{yArrj:w,xArrj:k,pathFromArea:E,areaPaths:m,pathFromLine:O,linePaths:x,linePath:T,areaPath:z}}},{key:"_handleMarkersAndLabels",value:function(e){var t=e.type,i=e.pointsPos,a=e.isRangeStart,s=e.i,r=e.j,n=e.realIndex,l=this.w,h=new xt(this.ctx);if(this.pointsChart)this.scatter.draw(this.elSeries,r,{realIndex:n,pointsPos:i,zRatio:this.zRatio,elParent:this.elPointsMain});else{l.globals.series[s].length>1&&this.elPointsMain.node.classList.add("apexcharts-element-hidden");var d=this.markers.plotChartMarkers(i,n,r+1);d!==null&&this.elPointsMain.add(d)}var c=h.drawDataLabel({type:t,isRangeStart:a,pos:i,i:n,j:r+1});c!==null&&this.elDataLabelsWrap.add(c)}},{key:"_createPaths",value:function(e){var t=e.type,i=e.series,a=e.i;e.realIndex;var s,r=e.j,n=e.x,l=e.y,h=e.xArrj,d=e.yArrj,c=e.y2,u=e.y2Arrj,g=e.pX,p=e.pY,f=e.pathState,x=e.segmentStartX,m=e.linePath,b=e.areaPath,v=e.linePaths,k=e.areaPaths,w=e.curve,C=e.isRangeStart,y=new X(this.ctx),A=this.areaBottomY,L=t==="rangeArea",S=t==="rangeArea"&&C;switch(w){case"monotoneCubic":var P=C?d:u;switch(f){case 0:if(P[r+1]===null)break;f=1;case 1:if(!(L?h.length===i[a].length:r===i[a].length-2))break;case 2:var I=C?h:h.slice().reverse(),T=C?P:P.slice().reverse(),z=(s=T,I.map(function(te,ee){return[te,s[ee]]}).filter(function(te){return te[1]!==null})),O=z.length>1?oh(z):z,E=[];L&&(S?k=z:E=k.reverse());var F=0,B=0;if(function(te,ee){for(var se=function(St){var Me=[],je=0;return St.forEach(function(lr){lr!==null?je++:je>0&&(Me.push(je),je=0)}),je>0&&Me.push(je),Me}(te),Se=[],Le=0,Be=0;Le4?(Be+="C".concat(Me[0],", ").concat(Me[1]),Be+=", ".concat(Me[2],", ").concat(Me[3]),Be+=", ".concat(Me[4],", ").concat(Me[5])):je>2&&(Be+="S".concat(Me[0],", ").concat(Me[1]),Be+=", ".concat(Me[2],", ").concat(Me[3]))}return Be}(te),se=B,Se=(B+=te.length)-1;S?m=y.move(z[se][0],z[se][1])+ee:L?m=y.move(E[se][0],E[se][1])+y.line(z[se][0],z[se][1])+ee+y.line(E[Se][0],E[Se][1]):(m=y.move(z[se][0],z[se][1])+ee,b=m+y.line(z[Se][0],A)+y.line(z[se][0],A)+"z",k.push(b)),v.push(m)}),L&&F>1&&!S){var V=v.slice(F).reverse();v.splice(F),V.forEach(function(te){return v.push(te)})}f=0}break;case"smooth":var $=.35*(n-g);if(i[a][r]===null)f=0;else switch(f){case 0:if(x=g,m=S?y.move(g,u[r])+y.line(g,p):y.move(g,p),b=y.move(g,p),i[a][r+1]===null||i[a][r+1]===void 0){v.push(m),k.push(b);break}if(f=1,r=i[a].length-2&&(S&&(m+=y.curve(n,l,n,l,n,c)+y.move(n,c)),b+=y.curve(n,l,n,l,n,A)+y.line(x,A)+"z",v.push(m),k.push(b),f=-1)}}g=n,p=l;break;default:var pe=function(te,ee,se){var Se=[];switch(te){case"stepline":Se=y.line(ee,null,"H")+y.line(null,se,"V");break;case"linestep":Se=y.line(null,se,"V")+y.line(ee,null,"H");break;case"straight":Se=y.line(ee,se)}return Se};if(i[a][r]===null)f=0;else switch(f){case 0:if(x=g,m=S?y.move(g,u[r])+y.line(g,p):y.move(g,p),b=y.move(g,p),i[a][r+1]===null||i[a][r+1]===void 0){v.push(m),k.push(b);break}if(f=1,r=i[a].length-2&&(S&&(m+=y.line(n,c)),b+=y.line(n,A)+y.line(x,A)+"z",v.push(m),k.push(b),f=-1)}}g=n,p=l}return{linePaths:v,areaPaths:k,pX:g,pY:p,pathState:f,segmentStartX:x,linePath:m,areaPath:b}}},{key:"handleNullDataPoints",value:function(e,t,i,a,s){var r=this.w;if(e[i][a]===null&&r.config.markers.showNullDataPoints||e[i].length===1){var n=this.strokeWidth-r.config.markers.strokeWidth/2;n>0||(n=0);var l=this.markers.plotChartMarkers(t,s,a+1,n,!0);l!==null&&this.elPointsMain.add(l)}}}]),o}();window.TreemapSquared={},window.TreemapSquared.generate=function(){function o(n,l,h,d){this.xoffset=n,this.yoffset=l,this.height=d,this.width=h,this.shortestEdge=function(){return Math.min(this.height,this.width)},this.getCoordinates=function(c){var u,g=[],p=this.xoffset,f=this.yoffset,x=s(c)/this.height,m=s(c)/this.width;if(this.width>=this.height)for(u=0;u=this.height){var g=c/this.height,p=this.width-g;u=new o(this.xoffset+g,this.yoffset,p,this.height)}else{var f=c/this.width,x=this.height-f;u=new o(this.xoffset,this.yoffset+f,this.width,x)}return u}}function e(n,l,h,d,c){d=d===void 0?0:d,c=c===void 0?0:c;var u=t(function(g,p){var f,x=[],m=p/s(g);for(f=0;f=v}(l,u=n[0],c)?(l.push(u),t(n.slice(1),l,h,d)):(g=h.cutArea(s(l),d),d.push(h.getCoordinates(l)),t(n,[],g,d)),d;d.push(h.getCoordinates(l))}function i(n,l){var h=Math.min.apply(Math,n),d=Math.max.apply(Math,n),c=s(n);return Math.max(Math.pow(l,2)*d/Math.pow(c,2),Math.pow(c,2)/(Math.pow(l,2)*h))}function a(n){return n&&n.constructor===Array}function s(n){var l,h=0;for(l=0;lr-a&&h.width<=n-s){var d=l.rotateAroundCenter(e.node);e.node.setAttribute("transform","rotate(-90 ".concat(d.x," ").concat(d.y,") translate(").concat(h.height/3,")"))}}},{key:"truncateLabels",value:function(e,t,i,a,s,r){var n=new X(this.ctx),l=n.getTextRects(e,t).width+this.w.config.stroke.width+5>s-i&&r-a>s-i?r-a:s-i,h=n.getTextBasedOnMaxWidth({text:e,maxWidth:l,fontSize:t});return e.length!==h.length&&l/t<5?"":h}},{key:"animateTreemap",value:function(e,t,i,a){var s=new yt(this.ctx);s.animateRect(e,{x:t.x,y:t.y,width:t.width,height:t.height},{x:i.x,y:i.y,width:i.width,height:i.height},a,function(){s.animationCompleted(e)})}}]),o}(),rr=86400,ch=10/rr,dh=function(){function o(e){Y(this,o),this.ctx=e,this.w=e.w,this.timeScaleArray=[],this.utc=this.w.config.xaxis.labels.datetimeUTC}return H(o,[{key:"calculateTimeScaleTicks",value:function(e,t){var i=this,a=this.w;if(a.globals.allSeriesCollapsed)return a.globals.labels=[],a.globals.timescaleLabels=[],[];var s=new we(this.ctx),r=(t-e)/864e5;this.determineInterval(r),a.globals.disableZoomIn=!1,a.globals.disableZoomOut=!1,r5e4&&(a.globals.disableZoomOut=!0);var n=s.getTimeUnitsfromTimestamp(e,t,this.utc),l=a.globals.gridWidth/r,h=l/24,d=h/60,c=d/60,u=Math.floor(24*r),g=Math.floor(1440*r),p=Math.floor(r*rr),f=Math.floor(r),x=Math.floor(r/30),m=Math.floor(r/365),b={minMillisecond:n.minMillisecond,minSecond:n.minSecond,minMinute:n.minMinute,minHour:n.minHour,minDate:n.minDate,minMonth:n.minMonth,minYear:n.minYear},v={firstVal:b,currentMillisecond:b.minMillisecond,currentSecond:b.minSecond,currentMinute:b.minMinute,currentHour:b.minHour,currentMonthDate:b.minDate,currentDate:b.minDate,currentMonth:b.minMonth,currentYear:b.minYear,daysWidthOnXAxis:l,hoursWidthOnXAxis:h,minutesWidthOnXAxis:d,secondsWidthOnXAxis:c,numberOfSeconds:p,numberOfMinutes:g,numberOfHours:u,numberOfDays:f,numberOfMonths:x,numberOfYears:m};switch(this.tickInterval){case"years":this.generateYearScale(v);break;case"months":case"half_year":this.generateMonthScale(v);break;case"months_days":case"months_fortnight":case"days":case"week_days":this.generateDayScale(v);break;case"hours":this.generateHourScale(v);break;case"minutes_fives":case"minutes":this.generateMinuteScale(v);break;case"seconds_tens":case"seconds_fives":case"seconds":this.generateSecondScale(v)}var k=this.timeScaleArray.map(function(w){var C={position:w.position,unit:w.unit,year:w.year,day:w.day?w.day:1,hour:w.hour?w.hour:0,month:w.month+1};return w.unit==="month"?R(R({},C),{},{day:1,value:w.value+1}):w.unit==="day"||w.unit==="hour"?R(R({},C),{},{value:w.value}):w.unit==="minute"?R(R({},C),{},{value:w.value,minute:w.value}):w.unit==="second"?R(R({},C),{},{value:w.value,minute:w.minute,second:w.second}):w});return k.filter(function(w){var C=1,y=Math.ceil(a.globals.gridWidth/120),A=w.value;a.config.xaxis.tickAmount!==void 0&&(y=a.config.xaxis.tickAmount),k.length>y&&(C=Math.floor(k.length/y));var L=!1,S=!1;switch(i.tickInterval){case"years":w.unit==="year"&&(L=!0);break;case"half_year":C=7,w.unit==="year"&&(L=!0);break;case"months":C=1,w.unit==="year"&&(L=!0);break;case"months_fortnight":C=15,w.unit!=="year"&&w.unit!=="month"||(L=!0),A===30&&(S=!0);break;case"months_days":C=10,w.unit==="month"&&(L=!0),A===30&&(S=!0);break;case"week_days":C=8,w.unit==="month"&&(L=!0);break;case"days":C=1,w.unit==="month"&&(L=!0);break;case"hours":w.unit==="day"&&(L=!0);break;case"minutes_fives":case"seconds_fives":A%5!=0&&(S=!0);break;case"seconds_tens":A%10!=0&&(S=!0)}if(i.tickInterval==="hours"||i.tickInterval==="minutes_fives"||i.tickInterval==="seconds_tens"||i.tickInterval==="seconds_fives"){if(!S)return!0}else if((A%C==0||L)&&!S)return!0})}},{key:"recalcDimensionsBasedOnFormat",value:function(e,t){var i=this.w,a=this.formatDates(e),s=this.removeOverlappingTS(a);i.globals.timescaleLabels=s.slice(),new si(this.ctx).plotCoords()}},{key:"determineInterval",value:function(e){var t=24*e,i=60*t;switch(!0){case e/365>5:this.tickInterval="years";break;case e>800:this.tickInterval="half_year";break;case e>180:this.tickInterval="months";break;case e>90:this.tickInterval="months_fortnight";break;case e>60:this.tickInterval="months_days";break;case e>30:this.tickInterval="week_days";break;case e>2:this.tickInterval="days";break;case t>2.4:this.tickInterval="hours";break;case i>15:this.tickInterval="minutes_fives";break;case i>5:this.tickInterval="minutes";break;case i>1:this.tickInterval="seconds_tens";break;case 60*i>20:this.tickInterval="seconds_fives";break;default:this.tickInterval="seconds"}}},{key:"generateYearScale",value:function(e){var t=e.firstVal,i=e.currentMonth,a=e.currentYear,s=e.daysWidthOnXAxis,r=e.numberOfYears,n=t.minYear,l=0,h=new we(this.ctx),d="year";if(t.minDate>1||t.minMonth>0){var c=h.determineRemainingDaysOfYear(t.minYear,t.minMonth,t.minDate);l=(h.determineDaysOfYear(t.minYear)-c+1)*s,n=t.minYear+1,this.timeScaleArray.push({position:l,value:n,unit:d,year:n,month:M.monthMod(i+1)})}else t.minDate===1&&t.minMonth===0&&this.timeScaleArray.push({position:l,value:n,unit:d,year:a,month:M.monthMod(i+1)});for(var u=n,g=l,p=0;p1){h=(d.determineDaysOfMonths(a+1,t.minYear)-i+1)*r,l=M.monthMod(a+1);var g=s+u,p=M.monthMod(l),f=l;l===0&&(c="year",f=g,p=1,g+=u+=1),this.timeScaleArray.push({position:h,value:f,unit:c,year:g,month:p})}else this.timeScaleArray.push({position:h,value:l,unit:c,year:s,month:M.monthMod(a)});for(var x=l+1,m=h,b=0,v=1;bn.determineDaysOfMonths(k+1,w)&&(d=1,l="month",g=k+=1),k},u=(24-t.minHour)*s,g=h,p=c(d,i,a);t.minHour===0&&t.minDate===1?(u=0,g=M.monthMod(t.minMonth),l="month",d=t.minDate):t.minDate!==1&&t.minHour===0&&t.minMinute===0&&(u=0,h=t.minDate,g=h,p=c(d=h,i,a)),this.timeScaleArray.push({position:u,value:g,unit:l,year:this._getYear(a,p,0),month:M.monthMod(p),day:d});for(var f=u,x=0;xl.determineDaysOfMonths(y+1,s)&&(x=1,y+=1),{month:y,date:x}},c=function(C,y){return C>l.determineDaysOfMonths(y+1,s)?y+=1:y},u=60-(t.minMinute+t.minSecond/60),g=u*r,p=t.minHour+1,f=p;u===60&&(g=0,f=p=t.minHour);var x=i;f>=24&&(f=0,h="day",p=x+=1);var m=d(x,a).month;m=c(x,m),this.timeScaleArray.push({position:g,value:p,unit:h,day:x,hour:f,year:s,month:M.monthMod(m)}),f++;for(var b=g,v=0;v=24&&(f=0,h="day",m=d(x+=1,m).month,m=c(x,m));var k=this._getYear(s,m,0);b=60*r+b;var w=f===0?x:f;this.timeScaleArray.push({position:b,value:w,unit:h,hour:f,day:x,year:k,month:M.monthMod(m)}),f++}}},{key:"generateMinuteScale",value:function(e){for(var t=e.currentMillisecond,i=e.currentSecond,a=e.currentMinute,s=e.currentHour,r=e.currentDate,n=e.currentMonth,l=e.currentYear,h=e.minutesWidthOnXAxis,d=e.secondsWidthOnXAxis,c=e.numberOfMinutes,u=a+1,g=r,p=n,f=l,x=s,m=(60-i-t/1e3)*d,b=0;b=60&&(u=0,(x+=1)===24&&(x=0)),this.timeScaleArray.push({position:m,value:u,unit:"minute",hour:x,minute:u,day:g,year:this._getYear(f,p,0),month:M.monthMod(p)}),m+=h,u++}},{key:"generateSecondScale",value:function(e){for(var t=e.currentMillisecond,i=e.currentSecond,a=e.currentMinute,s=e.currentHour,r=e.currentDate,n=e.currentMonth,l=e.currentYear,h=e.secondsWidthOnXAxis,d=e.numberOfSeconds,c=i+1,u=a,g=r,p=n,f=l,x=s,m=(1e3-t)/1e3*h,b=0;b=60&&(c=0,++u>=60&&(u=0,++x===24&&(x=0))),this.timeScaleArray.push({position:m,value:c,unit:"second",hour:x,minute:u,second:c,day:g,year:this._getYear(f,p,0),month:M.monthMod(p)}),m+=h,c++}},{key:"createRawDateString",value:function(e,t){var i=e.year;return e.month===0&&(e.month=1),i+="-"+("0"+e.month.toString()).slice(-2),e.unit==="day"?i+=e.unit==="day"?"-"+("0"+t).slice(-2):"-01":i+="-"+("0"+(e.day?e.day:"1")).slice(-2),e.unit==="hour"?i+=e.unit==="hour"?"T"+("0"+t).slice(-2):"T00":i+="T"+("0"+(e.hour?e.hour:"0")).slice(-2),e.unit==="minute"?i+=":"+("0"+t).slice(-2):i+=":"+(e.minute?("0"+e.minute).slice(-2):"00"),e.unit==="second"?i+=":"+("0"+t).slice(-2):i+=":00",this.utc&&(i+=".000Z"),i}},{key:"formatDates",value:function(e){var t=this,i=this.w;return e.map(function(a){var s=a.value.toString(),r=new we(t.ctx),n=t.createRawDateString(a,s),l=r.getDate(r.parseDate(n));if(t.utc||(l=r.getDate(r.parseDateWithTimezone(n))),i.config.xaxis.labels.format===void 0){var h="dd MMM",d=i.config.xaxis.labels.datetimeFormatter;a.unit==="year"&&(h=d.year),a.unit==="month"&&(h=d.month),a.unit==="day"&&(h=d.day),a.unit==="hour"&&(h=d.hour),a.unit==="minute"&&(h=d.minute),a.unit==="second"&&(h=d.second),s=r.formatDate(l,h)}else s=r.formatDate(l,i.config.xaxis.labels.format);return{dateString:n,position:a.position,value:s,unit:a.unit,year:a.year,month:a.month}})}},{key:"removeOverlappingTS",value:function(e){var t,i=this,a=new X(this.ctx),s=!1;e.length>0&&e[0].value&&e.every(function(l){return l.value.length===e[0].value.length})&&(s=!0,t=a.getTextRects(e[0].value).width);var r=0,n=e.map(function(l,h){if(h>0&&i.w.config.xaxis.labels.hideOverlappingLabels){var d=s?t:a.getTextRects(e[r].value).width,c=e[r].position;return l.position>c+d+10?(r=h,l):null}return l});return n=n.filter(function(l){return l!==null})}},{key:"_getYear",value:function(e,t,i){return e+Math.floor(t/12)+i}}]),o}(),uh=function(){function o(e,t){Y(this,o),this.ctx=t,this.w=t.w,this.el=e}return H(o,[{key:"setupElements",value:function(){var e=this.w,t=e.globals,i=e.config,a=i.chart.type;t.axisCharts=["line","area","bar","rangeBar","rangeArea","candlestick","boxPlot","scatter","bubble","radar","heatmap","treemap"].includes(a),t.xyCharts=["line","area","bar","rangeBar","rangeArea","candlestick","boxPlot","scatter","bubble"].includes(a),t.isBarHorizontal=["bar","rangeBar","boxPlot"].includes(a)&&i.plotOptions.bar.horizontal,t.chartClass=".apexcharts".concat(t.chartID),t.dom.baseEl=this.el,t.dom.elWrap=document.createElement("div"),X.setAttrs(t.dom.elWrap,{id:t.chartClass.substring(1),class:"apexcharts-canvas ".concat(t.chartClass.substring(1))}),this.el.appendChild(t.dom.elWrap),t.dom.Paper=window.SVG().addTo(t.dom.elWrap),t.dom.Paper.attr({class:"apexcharts-svg","xmlns:data":"ApexChartsNS",transform:"translate(".concat(i.chart.offsetX,", ").concat(i.chart.offsetY,")")}),t.dom.Paper.node.style.background=i.theme.mode!=="dark"||i.chart.background?i.theme.mode!=="light"||i.chart.background?i.chart.background:"#fff":"#424242",this.setSVGDimensions(),t.dom.elLegendForeign=document.createElementNS(t.SVGNS,"foreignObject"),X.setAttrs(t.dom.elLegendForeign,{x:0,y:0,width:t.svgWidth,height:t.svgHeight}),t.dom.elLegendWrap=document.createElement("div"),t.dom.elLegendWrap.classList.add("apexcharts-legend"),t.dom.elLegendWrap.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),t.dom.elLegendForeign.appendChild(t.dom.elLegendWrap),t.dom.Paper.node.appendChild(t.dom.elLegendForeign),t.dom.elGraphical=t.dom.Paper.group().attr({class:"apexcharts-inner apexcharts-graphical"}),t.dom.elDefs=t.dom.Paper.defs(),t.dom.Paper.add(t.dom.elGraphical),t.dom.elGraphical.add(t.dom.elDefs)}},{key:"plotChartType",value:function(e,t){var i=this.w,a=this.ctx,s=i.config,r=i.globals,n={line:{series:[],i:[]},area:{series:[],i:[]},scatter:{series:[],i:[]},bubble:{series:[],i:[]},column:{series:[],i:[]},candlestick:{series:[],i:[]},boxPlot:{series:[],i:[]},rangeBar:{series:[],i:[]},rangeArea:{series:[],seriesRangeEnd:[],i:[]}},l=s.chart.type||"line",h=null,d=0;r.series.forEach(function(C,y){var A=e[y].type||l;n[A]?(A==="rangeArea"?(n[A].series.push(r.seriesRangeStart[y]),n[A].seriesRangeEnd.push(r.seriesRangeEnd[y])):n[A].series.push(C),n[A].i.push(y),A!=="column"&&A!=="bar"||(i.globals.columnSeries=n.column)):["heatmap","treemap","pie","donut","polarArea","radialBar","radar"].includes(A)?h=A:A==="bar"?(n.column.series.push(C),n.column.i.push(y)):console.warn("You have specified an unrecognized series type (".concat(A,").")),l!==A&&A!=="scatter"&&d++}),d>0&&(h&&console.warn("Chart or series type ".concat(h," cannot appear with other chart or series types.")),n.column.series.length>0&&s.plotOptions.bar.horizontal&&(d-=n.column.series.length,n.column={series:[],i:[]},i.globals.columnSeries={series:[],i:[]},console.warn("Horizontal bars are not supported in a mixed/combo chart. Please turn off `plotOptions.bar.horizontal`"))),r.comboCharts||(r.comboCharts=d>0);var c=new Pi(a,t),u=new Li(a,t);a.pie=new sr(a);var g=new ah(a);a.rangeBar=new sh(a,t);var p=new ih(a),f=[];if(r.comboCharts){var x,m,b=new be(a);if(n.area.series.length>0&&(x=f).push.apply(x,ve(b.drawSeriesByGroup(n.area,r.areaGroups,"area",c))),n.column.series.length>0)if(s.chart.stacked){var v=new es(a,t);f.push(v.draw(n.column.series,n.column.i))}else a.bar=new mt(a,t),f.push(a.bar.draw(n.column.series,n.column.i));if(n.rangeArea.series.length>0&&f.push(c.draw(n.rangeArea.series,"rangeArea",n.rangeArea.i,n.rangeArea.seriesRangeEnd)),n.line.series.length>0&&(m=f).push.apply(m,ve(b.drawSeriesByGroup(n.line,r.lineGroups,"line",c))),n.candlestick.series.length>0&&f.push(u.draw(n.candlestick.series,"candlestick",n.candlestick.i)),n.boxPlot.series.length>0&&f.push(u.draw(n.boxPlot.series,"boxPlot",n.boxPlot.i)),n.rangeBar.series.length>0&&f.push(a.rangeBar.draw(n.rangeBar.series,n.rangeBar.i)),n.scatter.series.length>0){var k=new Pi(a,t,!0);f.push(k.draw(n.scatter.series,"scatter",n.scatter.i))}if(n.bubble.series.length>0){var w=new Pi(a,t,!0);f.push(w.draw(n.bubble.series,"bubble",n.bubble.i))}}else switch(s.chart.type){case"line":f=c.draw(r.series,"line");break;case"area":f=c.draw(r.series,"area");break;case"bar":s.chart.stacked?f=new es(a,t).draw(r.series):(a.bar=new mt(a,t),f=a.bar.draw(r.series));break;case"candlestick":f=new Li(a,t).draw(r.series,"candlestick");break;case"boxPlot":f=new Li(a,t).draw(r.series,s.chart.type);break;case"rangeBar":f=a.rangeBar.draw(r.series);break;case"rangeArea":f=c.draw(r.seriesRangeStart,"rangeArea",void 0,r.seriesRangeEnd);break;case"heatmap":f=new th(a,t).draw(r.series);break;case"treemap":f=new hh(a,t).draw(r.series);break;case"pie":case"donut":case"polarArea":f=a.pie.draw(r.series);break;case"radialBar":f=g.draw(r.series);break;case"radar":f=p.draw(r.series);break;default:f=c.draw(r.series)}return f}},{key:"setSVGDimensions",value:function(){var e=this.w,t=e.globals,i=e.config;i.chart.width=i.chart.width||"100%",i.chart.height=i.chart.height||"auto",t.svgWidth=i.chart.width,t.svgHeight=i.chart.height;var a=M.getDimensions(this.el),s=i.chart.width.toString().split(/[0-9]+/g).pop();s==="%"?M.isNumber(a[0])&&(a[0].width===0&&(a=M.getDimensions(this.el.parentNode)),t.svgWidth=a[0]*parseInt(i.chart.width,10)/100):s!=="px"&&s!==""||(t.svgWidth=parseInt(i.chart.width,10));var r=String(i.chart.height).toString().split(/[0-9]+/g).pop();if(t.svgHeight!=="auto"&&t.svgHeight!=="")if(r==="%"){var n=M.getDimensions(this.el.parentNode);t.svgHeight=n[1]*parseInt(i.chart.height,10)/100}else t.svgHeight=parseInt(i.chart.height,10);else t.svgHeight=t.axisCharts?t.svgWidth/1.61:t.svgWidth/1.2;if(t.svgWidth=Math.max(t.svgWidth,0),t.svgHeight=Math.max(t.svgHeight,0),X.setAttrs(t.dom.Paper.node,{width:t.svgWidth,height:t.svgHeight}),r!=="%"){var l=i.chart.sparkline.enabled?0:t.axisCharts?i.chart.parentHeightOffset:0;t.dom.Paper.node.parentNode.parentNode.style.minHeight="".concat(t.svgHeight+l,"px")}t.dom.elWrap.style.width="".concat(t.svgWidth,"px"),t.dom.elWrap.style.height="".concat(t.svgHeight,"px")}},{key:"shiftGraphPosition",value:function(){var e=this.w.globals,t=e.translateY,i=e.translateX;X.setAttrs(e.dom.elGraphical.node,{transform:"translate(".concat(i,", ").concat(t,")")})}},{key:"resizeNonAxisCharts",value:function(){var e=this.w,t=e.globals,i=0,a=e.config.chart.sparkline.enabled?1:15;a+=e.config.grid.padding.bottom,["top","bottom"].includes(e.config.legend.position)&&e.config.legend.show&&!e.config.legend.floating&&(i=new Ks(this.ctx).legendHelpers.getLegendDimensions().clwh+7);var s=e.globals.dom.baseEl.querySelector(".apexcharts-radialbar, .apexcharts-pie"),r=2.05*e.globals.radialSize;if(s&&!e.config.chart.sparkline.enabled&&e.config.plotOptions.radialBar.startAngle!==0){var n=M.getBoundingClientRect(s);r=n.bottom;var l=n.bottom-n.top;r=Math.max(2.05*e.globals.radialSize,l)}var h=Math.ceil(r+t.translateY+i+a);t.dom.elLegendForeign&&t.dom.elLegendForeign.setAttribute("height",h),e.config.chart.height&&String(e.config.chart.height).includes("%")||(t.dom.elWrap.style.height="".concat(h,"px"),X.setAttrs(t.dom.Paper.node,{height:h}),t.dom.Paper.node.parentNode.parentNode.style.minHeight="".concat(h,"px"))}},{key:"coreCalculations",value:function(){new ji(this.ctx).init()}},{key:"resetGlobals",value:function(){var e=this,t=function(){return e.w.config.series.map(function(){return[]})},i=new qs,a=this.w.globals;i.initGlobalVars(a),a.seriesXvalues=t(),a.seriesYvalues=t()}},{key:"isMultipleY",value:function(){return!!(Array.isArray(this.w.config.yaxis)&&this.w.config.yaxis.length>1)&&(this.w.globals.isMultipleYAxis=!0,!0)}},{key:"xySettings",value:function(){var e=this.w,t=null;if(e.globals.axisCharts){if(e.config.xaxis.crosshairs.position==="back"&&new Vi(this.ctx).drawXCrosshairs(),e.config.yaxis[0].crosshairs.position==="back"&&new Vi(this.ctx).drawYCrosshairs(),e.config.xaxis.type==="datetime"&&e.config.xaxis.labels.formatter===void 0){this.ctx.timeScale=new dh(this.ctx);var i=[];isFinite(e.globals.minX)&&isFinite(e.globals.maxX)&&!e.globals.isBarHorizontal?i=this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minX,e.globals.maxX):e.globals.isBarHorizontal&&(i=this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minY,e.globals.maxY)),this.ctx.timeScale.recalcDimensionsBasedOnFormat(i)}t=new be(this.ctx).getCalculatedRatios()}return t}},{key:"updateSourceChart",value:function(e){this.ctx.w.globals.selection=void 0,this.ctx.updateHelpers._updateOptions({chart:{selection:{xaxis:{min:e.w.globals.minX,max:e.w.globals.maxX}}}},!1,!1)}},{key:"setupBrushHandler",value:function(){var e=this,t=this.w;if(t.config.chart.brush.enabled&&typeof t.config.chart.events.selection!="function"){var i=Array.isArray(t.config.chart.brush.targets)?t.config.chart.brush.targets:[t.config.chart.brush.target];i.forEach(function(a){var s=ApexCharts.getChartByID(a);s.w.globals.brushSource=e.ctx,typeof s.w.config.chart.events.zoomed!="function"&&(s.w.config.chart.events.zoomed=function(){return e.updateSourceChart(s)}),typeof s.w.config.chart.events.scrolled!="function"&&(s.w.config.chart.events.scrolled=function(){return e.updateSourceChart(s)})}),t.config.chart.events.selection=function(a,s){i.forEach(function(r){ApexCharts.getChartByID(r).ctx.updateHelpers._updateOptions({xaxis:{min:s.xaxis.min,max:s.xaxis.max}},!1,!1,!1,!1)})}}}}]),o}(),gh=function(){function o(e){Y(this,o),this.ctx=e,this.w=e.w}return H(o,[{key:"_updateOptions",value:function(e){var t=this,i=arguments.length>1&&arguments[1]!==void 0&&arguments[1],a=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],s=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3],r=arguments.length>4&&arguments[4]!==void 0&&arguments[4];return new Promise(function(n){var l=[t.ctx];s&&(l=t.ctx.getSyncedCharts()),t.ctx.w.globals.isExecCalled&&(l=[t.ctx],t.ctx.w.globals.isExecCalled=!1),l.forEach(function(h,d){var c=h.w;if(c.globals.shouldAnimate=a,i||(c.globals.resized=!0,c.globals.dataChanged=!0,a&&h.series.getPreviousPaths()),e&&ft(e)==="object"&&(h.config=new Rt(e),e=be.extendArrayProps(h.config,e,c),h.w.globals.chartID!==t.ctx.w.globals.chartID&&delete e.series,c.config=M.extend(c.config,e),r&&(c.globals.lastXAxis=e.xaxis?M.clone(e.xaxis):[],c.globals.lastYAxis=e.yaxis?M.clone(e.yaxis):[],c.globals.initialConfig=M.extend({},c.config),c.globals.initialSeries=M.clone(c.config.series),e.series))){for(var u=0;u2&&arguments[2]!==void 0&&arguments[2];return new Promise(function(s){var r,n=i.w;return n.globals.shouldAnimate=t,n.globals.dataChanged=!0,t&&i.ctx.series.getPreviousPaths(),n.globals.axisCharts?((r=e.map(function(l,h){return i._extendSeries(l,h)})).length===0&&(r=[{data:[]}]),n.config.series=r):n.config.series=e.slice(),a&&(n.globals.initialConfig.series=M.clone(n.config.series),n.globals.initialSeries=M.clone(n.config.series)),i.ctx.update().then(function(){s(i.ctx)})})}},{key:"_extendSeries",value:function(e,t){var i=this.w,a=i.config.series[t];return R(R({},i.config.series[t]),{},{name:e.name?e.name:a==null?void 0:a.name,color:e.color?e.color:a==null?void 0:a.color,type:e.type?e.type:a==null?void 0:a.type,group:e.group?e.group:a==null?void 0:a.group,hidden:e.hidden!==void 0?e.hidden:a==null?void 0:a.hidden,data:e.data?e.data:a==null?void 0:a.data,zIndex:e.zIndex!==void 0?e.zIndex:t})}},{key:"toggleDataPointSelection",value:function(e,t){var i=this.w,a=null,s=".apexcharts-series[data\\:realIndex='".concat(e,"']");return i.globals.axisCharts?a=i.globals.dom.Paper.findOne("".concat(s," path[j='").concat(t,"'], ").concat(s," circle[j='").concat(t,"'], ").concat(s," rect[j='").concat(t,"']")):t===void 0&&(a=i.globals.dom.Paper.findOne("".concat(s," path[j='").concat(e,"']")),i.config.chart.type!=="pie"&&i.config.chart.type!=="polarArea"&&i.config.chart.type!=="donut"||this.ctx.pie.pieClicked(e)),a?(new X(this.ctx).pathMouseDown(a,null),a.node?a.node:null):(console.warn("toggleDataPointSelection: Element not found"),null)}},{key:"forceXAxisUpdate",value:function(e){var t=this.w;if(["min","max"].forEach(function(a){e.xaxis[a]!==void 0&&(t.config.xaxis[a]=e.xaxis[a],t.globals.lastXAxis[a]=e.xaxis[a])}),e.xaxis.categories&&e.xaxis.categories.length&&(t.config.xaxis.categories=e.xaxis.categories),t.config.xaxis.convertedCatToNumeric){var i=new _t(e);e=i.convertCatToNumericXaxis(e,this.ctx)}return e}},{key:"forceYAxisUpdate",value:function(e){return e.chart&&e.chart.stacked&&e.chart.stackType==="100%"&&(Array.isArray(e.yaxis)?e.yaxis.forEach(function(t,i){e.yaxis[i].min=0,e.yaxis[i].max=100}):(e.yaxis.min=0,e.yaxis.max=100)),e}},{key:"revertDefaultAxisMinMax",value:function(e){var t=this,i=this.w,a=i.globals.lastXAxis,s=i.globals.lastYAxis;e&&e.xaxis&&(a=e.xaxis),e&&e.yaxis&&(s=e.yaxis),i.config.xaxis.min=a.min,i.config.xaxis.max=a.max;var r=function(n){s[n]!==void 0&&(i.config.yaxis[n].min=s[n].min,i.config.yaxis[n].max=s[n].max)};i.config.yaxis.map(function(n,l){i.globals.zoomed||s[l]!==void 0?r(l):t.ctx.opts.yaxis[l]!==void 0&&(n.min=t.ctx.opts.yaxis[l].min,n.max=t.ctx.opts.yaxis[l].max)})}}]),o}();(function(){function o(){for(var s=arguments.length>0&&arguments[0]!==c?arguments[0]:[],r=arguments.length>1?arguments[1]:c,n=arguments.length>2?arguments[2]:c,l=arguments.length>3?arguments[3]:c,h=arguments.length>4?arguments[4]:c,d=arguments.length>5?arguments[5]:c,c=arguments.length>6?arguments[6]:c,u=s.slice(r,n||c),g=l.slice(h,d||c),p=0,f={pos:[0,0],start:[0,0]},x={pos:[0,0],start:[0,0]};u[p]=e.call(f,u[p]),g[p]=e.call(x,g[p]),u[p][0]!=g[p][0]||u[p][0]=="M"||u[p][0]=="A"&&(u[p][4]!=g[p][4]||u[p][5]!=g[p][5])?(Array.prototype.splice.apply(u,[p,1].concat(i.call(f,u[p]))),Array.prototype.splice.apply(g,[p,1].concat(i.call(x,g[p])))):(u[p]=t.call(f,u[p]),g[p]=t.call(x,g[p])),!(++p==u.length&&p==g.length);)p==u.length&&u.push(["C",f.pos[0],f.pos[1],f.pos[0],f.pos[1],f.pos[0],f.pos[1]]),p==g.length&&g.push(["C",x.pos[0],x.pos[1],x.pos[0],x.pos[1],x.pos[0],x.pos[1]]);return{start:u,dest:g}}function e(s){switch(s[0]){case"z":case"Z":s[0]="L",s[1]=this.start[0],s[2]=this.start[1];break;case"H":s[0]="L",s[2]=this.pos[1];break;case"V":s[0]="L",s[2]=s[1],s[1]=this.pos[0];break;case"T":s[0]="Q",s[3]=s[1],s[4]=s[2],s[1]=this.reflection[1],s[2]=this.reflection[0];break;case"S":s[0]="C",s[6]=s[4],s[5]=s[3],s[4]=s[2],s[3]=s[1],s[2]=this.reflection[1],s[1]=this.reflection[0]}return s}function t(s){var r=s.length;return this.pos=[s[r-2],s[r-1]],"SCQT".indexOf(s[0])!=-1&&(this.reflection=[2*this.pos[0]-s[r-4],2*this.pos[1]-s[r-3]]),s}function i(s){var r=[s];switch(s[0]){case"M":return this.pos=this.start=[s[1],s[2]],r;case"L":s[5]=s[3]=s[1],s[6]=s[4]=s[2],s[1]=this.pos[0],s[2]=this.pos[1];break;case"Q":s[6]=s[4],s[5]=s[3],s[4]=1*s[4]/3+2*s[2]/3,s[3]=1*s[3]/3+2*s[1]/3,s[2]=1*this.pos[1]/3+2*s[2]/3,s[1]=1*this.pos[0]/3+2*s[1]/3;break;case"A":r=function(n,l){var h,d,c,u,g,p,f,x,m,b,v,k,w,C,y,A,L,S,P,I,T,z,O,E,F,B,V=Math.abs(l[1]),$=Math.abs(l[2]),q=l[3]%360,ge=l[4],pe=l[5],ne=l[6],Ce=l[7],te=new ie(n),ee=new ie(ne,Ce),se=[];if(V===0||$===0||te.x===ee.x&&te.y===ee.y)return[["C",te.x,te.y,ee.x,ee.y,ee.x,ee.y]];for(h=new ie((te.x-ee.x)/2,(te.y-ee.y)/2).transform(new N().rotate(q)),d=h.x*h.x/(V*V)+h.y*h.y/($*$),d>1&&(V*=d=Math.sqrt(d),$*=d),c=new N().rotate(q).scale(1/V,1/$).rotate(-q),te=te.transform(c),ee=ee.transform(c),u=[ee.x-te.x,ee.y-te.y],p=u[0]*u[0]+u[1]*u[1],g=Math.sqrt(p),u[0]/=g,u[1]/=g,f=p<4?Math.sqrt(1-p/4):0,ge===pe&&(f*=-1),x=new ie((ee.x+te.x)/2+f*-u[1],(ee.y+te.y)/2+f*u[0]),m=new ie(te.x-x.x,te.y-x.y),b=new ie(ee.x-x.x,ee.y-x.y),v=Math.acos(m.x/Math.sqrt(m.x*m.x+m.y*m.y)),m.y<0&&(v*=-1),k=Math.acos(b.x/Math.sqrt(b.x*b.x+b.y*b.y)),b.y<0&&(k*=-1),pe&&v>k&&(k+=2*Math.PI),!pe&&v0&&arguments[0]!==void 0?arguments[0]:[],r=arguments.length>1?arguments[1]:void 0;if(r===!1)return!1;for(var n=r,l=s.length;n(o.changedTouches&&(o=o.changedTouches[0]),{x:o.clientX,y:o.clientY});class ph{constructor(e){e.remember("_draggable",this),this.el=e,this.drag=this.drag.bind(this),this.startDrag=this.startDrag.bind(this),this.endDrag=this.endDrag.bind(this)}init(e){e?(this.el.on("mousedown.drag",this.startDrag),this.el.on("touchstart.drag",this.startDrag,{passive:!1})):(this.el.off("mousedown.drag"),this.el.off("touchstart.drag"))}startDrag(e){const t=!e.type.indexOf("mouse");if(t&&e.which!==1&&e.buttons!==0||this.el.dispatch("beforedrag",{event:e,handler:this}).defaultPrevented)return;e.preventDefault(),e.stopPropagation(),this.init(!1),this.box=this.el.bbox(),this.lastClick=this.el.point(ts(e));const i=(t?"mouseup":"touchend")+".drag";Ve(window,(t?"mousemove":"touchmove")+".drag",this.drag,this,{passive:!1}),Ve(window,i,this.endDrag,this,{passive:!1}),this.el.fire("dragstart",{event:e,handler:this,box:this.box})}drag(e){const{box:t,lastClick:i}=this,a=this.el.point(ts(e)),s=a.x-i.x,r=a.y-i.y;if(!s&&!r)return t;const n=t.x+s,l=t.y+r;this.box=new fe(n,l,t.w,t.h),this.lastClick=a,this.el.dispatch("dragmove",{event:e,handler:this,box:this.box}).defaultPrevented||this.move(n,l)}move(e,t){this.el.type==="svg"?Ze.prototype.move.call(this.el,e,t):this.el.move(e,t)}endDrag(e){this.drag(e),this.el.fire("dragend",{event:e,handler:this,box:this.box}),Ye(window,"mousemove.drag"),Ye(window,"touchmove.drag"),Ye(window,"mouseup.drag"),Ye(window,"touchend.drag"),this.init(!0)}}/*! +* @svgdotjs/svg.select.js - An extension of svg.js which allows to select elements with mouse +* @version 4.0.1 +* https://github.com/svgdotjs/svg.select.js +* +* @copyright Ulrich-Matthias Schäfer +* @license MIT +* +* BUILT: Mon Jul 01 2024 15:04:42 GMT+0200 (Central European Summer Time) +*/function Ui(o,e,t,i=null){return function(a){a.preventDefault(),a.stopPropagation();var s=a.pageX||a.touches[0].pageX,r=a.pageY||a.touches[0].pageY;e.fire(o,{x:s,y:r,event:a,index:i,points:t})}}function qi([o,e],{a:t,b:i,c:a,d:s,e:r,f:n}){return[o*t+e*a+r,o*i+e*s+n]}G(Ae,{draggable(o=!0){return(this.remember("_draggable")||new ph(this)).init(o),this}});let nr=class{constructor(o){this.el=o,o.remember("_selectHandler",this),this.selection=new Ze,this.order=["lt","t","rt","r","rb","b","lb","l","rot"],this.mutationHandler=this.mutationHandler.bind(this);const e=Ht();this.observer=new e.MutationObserver(this.mutationHandler)}init(o){this.createHandle=o.createHandle||this.createHandleFn,this.createRot=o.createRot||this.createRotFn,this.updateHandle=o.updateHandle||this.updateHandleFn,this.updateRot=o.updateRot||this.updateRotFn,this.el.root().put(this.selection),this.updatePoints(),this.createSelection(),this.createResizeHandles(),this.updateResizeHandles(),this.createRotationHandle(),this.updateRotationHandle(),this.observer.observe(this.el.node,{attributes:!0})}active(o,e){if(!o)return this.selection.clear().remove(),void this.observer.disconnect();this.init(e)}createSelection(){this.selection.polygon(this.handlePoints).addClass("svg_select_shape")}updateSelection(){this.selection.get(0).plot(this.handlePoints)}createResizeHandles(){this.handlePoints.forEach((o,e,t)=>{const i=this.order[e];this.createHandle.call(this,this.selection,o,e,t,i),this.selection.get(e+1).addClass("svg_select_handle svg_select_handle_"+i).on("mousedown.selection touchstart.selection",Ui(i,this.el,this.handlePoints,e))})}createHandleFn(o){o.polyline()}updateHandleFn(o,e,t,i){const a=i.at(t-1),s=i[(t+1)%i.length],r=e,n=[r[0]-a[0],r[1]-a[1]],l=[r[0]-s[0],r[1]-s[1]],h=Math.sqrt(n[0]*n[0]+n[1]*n[1]),d=Math.sqrt(l[0]*l[0]+l[1]*l[1]),c=[n[0]/h,n[1]/h],u=[l[0]/d,l[1]/d],g=[r[0]-10*c[0],r[1]-10*c[1]],p=[r[0]-10*u[0],r[1]-10*u[1]];o.plot([g,r,p])}updateResizeHandles(){this.handlePoints.forEach((o,e,t)=>{const i=this.order[e];this.updateHandle.call(this,this.selection.get(e+1),o,e,t,i)})}createRotFn(o){o.line(),o.circle(5)}getPoint(o){return this.handlePoints[this.order.indexOf(o)]}getPointHandle(o){return this.selection.get(this.order.indexOf(o)+1)}updateRotFn(o,e){const t=this.getPoint("t");o.get(0).plot(t[0],t[1],e[0],e[1]),o.get(1).center(e[0],e[1])}createRotationHandle(){const o=this.selection.group().addClass("svg_select_handle_rot").on("mousedown.selection touchstart.selection",Ui("rot",this.el,this.handlePoints));this.createRot.call(this,o)}updateRotationHandle(){const o=this.selection.findOne("g.svg_select_handle_rot");this.updateRot(o,this.rotationPoint,this.handlePoints)}updatePoints(){const o=this.el.bbox(),e=this.el.parent().screenCTM().inverseO().multiplyO(this.el.screenCTM());this.handlePoints=this.getHandlePoints(o).map(t=>qi(t,e)),this.rotationPoint=qi(this.getRotationPoint(o),e)}getHandlePoints({x:o,x2:e,y:t,y2:i,cx:a,cy:s}=this.el.bbox()){return[[o,t],[a,t],[e,t],[e,s],[e,i],[a,i],[o,i],[o,s]]}getRotationPoint({y:o,cx:e}=this.el.bbox()){return[e,o-20]}mutationHandler(){this.updatePoints(),this.updateSelection(),this.updateResizeHandles(),this.updateRotationHandle()}};const is=o=>function(e=!0,t={}){typeof e=="object"&&(t=e,e=!0);let i=this.remember("_"+o.name);return i||(e.prototype instanceof nr?(i=new e(this),e=!0):i=new o(this),this.remember("_"+o.name,i)),i.active(e,t),this};/*! +* @svgdotjs/svg.resize.js - An extension for svg.js which allows to resize elements which are selected +* @version 2.0.4 +* https://github.com/svgdotjs/svg.resize.js +* +* @copyright [object Object] +* @license MIT +* +* BUILT: Fri Sep 13 2024 12:43:14 GMT+0200 (Central European Summer Time) +*//*! +* @svgdotjs/svg.select.js - An extension of svg.js which allows to select elements with mouse +* @version 4.0.1 +* https://github.com/svgdotjs/svg.select.js +* +* @copyright Ulrich-Matthias Schäfer +* @license MIT +* +* BUILT: Mon Jul 01 2024 15:04:42 GMT+0200 (Central European Summer Time) +*/function $i(o,e,t,i=null){return function(a){a.preventDefault(),a.stopPropagation();var s=a.pageX||a.touches[0].pageX,r=a.pageY||a.touches[0].pageY;e.fire(o,{x:s,y:r,event:a,index:i,points:t})}}function Zi([o,e],{a:t,b:i,c:a,d:s,e:r,f:n}){return[o*t+e*a+r,o*i+e*s+n]}G(Ae,{select:is(nr)}),G([st,rt,at],{pointSelect:is(class{constructor(o){this.el=o,o.remember("_pointSelectHandler",this),this.selection=new Ze,this.order=["lt","t","rt","r","rb","b","lb","l","rot"],this.mutationHandler=this.mutationHandler.bind(this);const e=Ht();this.observer=new e.MutationObserver(this.mutationHandler)}init(o){this.createHandle=o.createHandle||this.createHandleFn,this.updateHandle=o.updateHandle||this.updateHandleFn,this.el.root().put(this.selection),this.updatePoints(),this.createSelection(),this.createPointHandles(),this.updatePointHandles(),this.observer.observe(this.el.node,{attributes:!0})}active(o,e){if(!o)return this.selection.clear().remove(),void this.observer.disconnect();this.init(e)}createSelection(){this.selection.polygon(this.points).addClass("svg_select_shape_pointSelect")}updateSelection(){this.selection.get(0).plot(this.points)}createPointHandles(){this.points.forEach((o,e,t)=>{this.createHandle.call(this,this.selection,o,e,t),this.selection.get(e+1).addClass("svg_select_handle_point").on("mousedown.selection touchstart.selection",Ui("point",this.el,this.points,e))})}createHandleFn(o){o.circle(5)}updateHandleFn(o,e){o.center(e[0],e[1])}updatePointHandles(){this.points.forEach((o,e,t)=>{this.updateHandle.call(this,this.selection.get(e+1),o,e,t)})}updatePoints(){const o=this.el.parent().screenCTM().inverseO().multiplyO(this.el.screenCTM());this.points=this.el.array().map(e=>qi(e,o))}mutationHandler(){this.updatePoints(),this.updateSelection(),this.updatePointHandles()}})});class or{constructor(e){this.el=e,e.remember("_selectHandler",this),this.selection=new Ze,this.order=["lt","t","rt","r","rb","b","lb","l","rot"],this.mutationHandler=this.mutationHandler.bind(this);const t=Ht();this.observer=new t.MutationObserver(this.mutationHandler)}init(e){this.createHandle=e.createHandle||this.createHandleFn,this.createRot=e.createRot||this.createRotFn,this.updateHandle=e.updateHandle||this.updateHandleFn,this.updateRot=e.updateRot||this.updateRotFn,this.el.root().put(this.selection),this.updatePoints(),this.createSelection(),this.createResizeHandles(),this.updateResizeHandles(),this.createRotationHandle(),this.updateRotationHandle(),this.observer.observe(this.el.node,{attributes:!0})}active(e,t){if(!e)return this.selection.clear().remove(),void this.observer.disconnect();this.init(t)}createSelection(){this.selection.polygon(this.handlePoints).addClass("svg_select_shape")}updateSelection(){this.selection.get(0).plot(this.handlePoints)}createResizeHandles(){this.handlePoints.forEach((e,t,i)=>{const a=this.order[t];this.createHandle.call(this,this.selection,e,t,i,a),this.selection.get(t+1).addClass("svg_select_handle svg_select_handle_"+a).on("mousedown.selection touchstart.selection",$i(a,this.el,this.handlePoints,t))})}createHandleFn(e){e.polyline()}updateHandleFn(e,t,i,a){const s=a.at(i-1),r=a[(i+1)%a.length],n=t,l=[n[0]-s[0],n[1]-s[1]],h=[n[0]-r[0],n[1]-r[1]],d=Math.sqrt(l[0]*l[0]+l[1]*l[1]),c=Math.sqrt(h[0]*h[0]+h[1]*h[1]),u=[l[0]/d,l[1]/d],g=[h[0]/c,h[1]/c],p=[n[0]-10*u[0],n[1]-10*u[1]],f=[n[0]-10*g[0],n[1]-10*g[1]];e.plot([p,n,f])}updateResizeHandles(){this.handlePoints.forEach((e,t,i)=>{const a=this.order[t];this.updateHandle.call(this,this.selection.get(t+1),e,t,i,a)})}createRotFn(e){e.line(),e.circle(5)}getPoint(e){return this.handlePoints[this.order.indexOf(e)]}getPointHandle(e){return this.selection.get(this.order.indexOf(e)+1)}updateRotFn(e,t){const i=this.getPoint("t");e.get(0).plot(i[0],i[1],t[0],t[1]),e.get(1).center(t[0],t[1])}createRotationHandle(){const e=this.selection.group().addClass("svg_select_handle_rot").on("mousedown.selection touchstart.selection",$i("rot",this.el,this.handlePoints));this.createRot.call(this,e)}updateRotationHandle(){const e=this.selection.findOne("g.svg_select_handle_rot");this.updateRot(e,this.rotationPoint,this.handlePoints)}updatePoints(){const e=this.el.bbox(),t=this.el.parent().screenCTM().inverseO().multiplyO(this.el.screenCTM());this.handlePoints=this.getHandlePoints(e).map(i=>Zi(i,t)),this.rotationPoint=Zi(this.getRotationPoint(e),t)}getHandlePoints({x:e,x2:t,y:i,y2:a,cx:s,cy:r}=this.el.bbox()){return[[e,i],[s,i],[t,i],[t,r],[t,a],[s,a],[e,a],[e,r]]}getRotationPoint({y:e,cx:t}=this.el.bbox()){return[t,e-20]}mutationHandler(){this.updatePoints(),this.updateSelection(),this.updateResizeHandles(),this.updateRotationHandle()}}const as=o=>function(e=!0,t={}){typeof e=="object"&&(t=e,e=!0);let i=this.remember("_"+o.name);return i||(e.prototype instanceof or?(i=new e(this),e=!0):i=new o(this),this.remember("_"+o.name,i)),i.active(e,t),this};G(Ae,{select:as(or)}),G([st,rt,at],{pointSelect:as(class{constructor(o){this.el=o,o.remember("_pointSelectHandler",this),this.selection=new Ze,this.order=["lt","t","rt","r","rb","b","lb","l","rot"],this.mutationHandler=this.mutationHandler.bind(this);const e=Ht();this.observer=new e.MutationObserver(this.mutationHandler)}init(o){this.createHandle=o.createHandle||this.createHandleFn,this.updateHandle=o.updateHandle||this.updateHandleFn,this.el.root().put(this.selection),this.updatePoints(),this.createSelection(),this.createPointHandles(),this.updatePointHandles(),this.observer.observe(this.el.node,{attributes:!0})}active(o,e){if(!o)return this.selection.clear().remove(),void this.observer.disconnect();this.init(e)}createSelection(){this.selection.polygon(this.points).addClass("svg_select_shape_pointSelect")}updateSelection(){this.selection.get(0).plot(this.points)}createPointHandles(){this.points.forEach((o,e,t)=>{this.createHandle.call(this,this.selection,o,e,t),this.selection.get(e+1).addClass("svg_select_handle_point").on("mousedown.selection touchstart.selection",$i("point",this.el,this.points,e))})}createHandleFn(o){o.circle(5)}updateHandleFn(o,e){o.center(e[0],e[1])}updatePointHandles(){this.points.forEach((o,e,t)=>{this.updateHandle.call(this,this.selection.get(e+1),o,e,t)})}updatePoints(){const o=this.el.parent().screenCTM().inverseO().multiplyO(this.el.screenCTM());this.points=this.el.array().map(e=>Zi(e,o))}mutationHandler(){this.updatePoints(),this.updateSelection(),this.updatePointHandles()}})});const jt=o=>(o.changedTouches&&(o=o.changedTouches[0]),{x:o.clientX,y:o.clientY}),ss=o=>{let e=1/0,t=1/0,i=-1/0,a=-1/0;for(let s=0;s{const C=k-m[0],y=(w-m[1])*b;return[C*b+m[0],y+m[1]]});return ss(v)}(this.box,p,f)}this.el.dispatch("resize",{box:new fe(h),angle:0,eventType:this.eventType,event:e,handler:this}).defaultPrevented||this.el.size(h.width,h.height).move(h.x,h.y)}movePoint(e){this.lastEvent=e;const{x:t,y:i}=this.snapToGrid(this.el.point(jt(e))),a=this.el.array().slice();a[this.index]=[t,i],this.el.dispatch("resize",{box:ss(a),angle:0,eventType:this.eventType,event:e,handler:this}).defaultPrevented||this.el.plot(a)}rotate(e){this.lastEvent=e;const t=this.startPoint,i=this.el.point(jt(e)),{cx:a,cy:s}=this.box,r=t.x-a,n=t.y-s,l=i.x-a,h=i.y-s,d=Math.sqrt(r*r+n*n)*Math.sqrt(l*l+h*h);if(d===0)return;let c=Math.acos((r*l+n*h)/d)/Math.PI*180;if(!c)return;i.xdiv { + margin: 4px 0 +} + +.apexcharts-tooltip-box span.value { + font-weight: 700 +} + +.apexcharts-tooltip-rangebar { + padding: 5px 8px +} + +.apexcharts-tooltip-rangebar .category { + font-weight: 600; + color: #777 +} + +.apexcharts-tooltip-rangebar .series-name { + font-weight: 700; + display: block; + margin-bottom: 5px +} + +.apexcharts-xaxistooltip, +.apexcharts-yaxistooltip { + opacity: 0; + pointer-events: none; + color: #373d3f; + font-size: 13px; + text-align: center; + border-radius: 2px; + position: absolute; + z-index: 10; + background: #eceff1; + border: 1px solid #90a4ae +} + +.apexcharts-xaxistooltip { + padding: 9px 10px; + transition: .15s ease all +} + +.apexcharts-xaxistooltip.apexcharts-theme-dark { + background: rgba(0, 0, 0, .7); + border: 1px solid rgba(0, 0, 0, .5); + color: #fff +} + +.apexcharts-xaxistooltip:after, +.apexcharts-xaxistooltip:before { + left: 50%; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none +} + +.apexcharts-xaxistooltip:after { + border-color: transparent; + border-width: 6px; + margin-left: -6px +} + +.apexcharts-xaxistooltip:before { + border-color: transparent; + border-width: 7px; + margin-left: -7px +} + +.apexcharts-xaxistooltip-bottom:after, +.apexcharts-xaxistooltip-bottom:before { + bottom: 100% +} + +.apexcharts-xaxistooltip-top:after, +.apexcharts-xaxistooltip-top:before { + top: 100% +} + +.apexcharts-xaxistooltip-bottom:after { + border-bottom-color: #eceff1 +} + +.apexcharts-xaxistooltip-bottom:before { + border-bottom-color: #90a4ae +} + +.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:after, +.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:before { + border-bottom-color: rgba(0, 0, 0, .5) +} + +.apexcharts-xaxistooltip-top:after { + border-top-color: #eceff1 +} + +.apexcharts-xaxistooltip-top:before { + border-top-color: #90a4ae +} + +.apexcharts-xaxistooltip-top.apexcharts-theme-dark:after, +.apexcharts-xaxistooltip-top.apexcharts-theme-dark:before { + border-top-color: rgba(0, 0, 0, .5) +} + +.apexcharts-xaxistooltip.apexcharts-active { + opacity: 1; + transition: .15s ease all +} + +.apexcharts-yaxistooltip { + padding: 4px 10px +} + +.apexcharts-yaxistooltip.apexcharts-theme-dark { + background: rgba(0, 0, 0, .7); + border: 1px solid rgba(0, 0, 0, .5); + color: #fff +} + +.apexcharts-yaxistooltip:after, +.apexcharts-yaxistooltip:before { + top: 50%; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none +} + +.apexcharts-yaxistooltip:after { + border-color: transparent; + border-width: 6px; + margin-top: -6px +} + +.apexcharts-yaxistooltip:before { + border-color: transparent; + border-width: 7px; + margin-top: -7px +} + +.apexcharts-yaxistooltip-left:after, +.apexcharts-yaxistooltip-left:before { + left: 100% +} + +.apexcharts-yaxistooltip-right:after, +.apexcharts-yaxistooltip-right:before { + right: 100% +} + +.apexcharts-yaxistooltip-left:after { + border-left-color: #eceff1 +} + +.apexcharts-yaxistooltip-left:before { + border-left-color: #90a4ae +} + +.apexcharts-yaxistooltip-left.apexcharts-theme-dark:after, +.apexcharts-yaxistooltip-left.apexcharts-theme-dark:before { + border-left-color: rgba(0, 0, 0, .5) +} + +.apexcharts-yaxistooltip-right:after { + border-right-color: #eceff1 +} + +.apexcharts-yaxistooltip-right:before { + border-right-color: #90a4ae +} + +.apexcharts-yaxistooltip-right.apexcharts-theme-dark:after, +.apexcharts-yaxistooltip-right.apexcharts-theme-dark:before { + border-right-color: rgba(0, 0, 0, .5) +} + +.apexcharts-yaxistooltip.apexcharts-active { + opacity: 1 +} + +.apexcharts-yaxistooltip-hidden { + display: none +} + +.apexcharts-xcrosshairs, +.apexcharts-ycrosshairs { + pointer-events: none; + opacity: 0; + transition: .15s ease all +} + +.apexcharts-xcrosshairs.apexcharts-active, +.apexcharts-ycrosshairs.apexcharts-active { + opacity: 1; + transition: .15s ease all +} + +.apexcharts-ycrosshairs-hidden { + opacity: 0 +} + +.apexcharts-selection-rect { + cursor: move +} + +.svg_select_shape { + stroke-width: 1; + stroke-dasharray: 10 10; + stroke: black; + stroke-opacity: 0.1; + pointer-events: none; + fill: none; +} + +.svg_select_handle { + stroke-width: 3; + stroke: black; + fill: none; +} + +.svg_select_handle_r { + cursor: e-resize; +} + +.svg_select_handle_l { + cursor: w-resize; +} + +.apexcharts-svg.apexcharts-zoomable.hovering-zoom { + cursor: crosshair +} + +.apexcharts-svg.apexcharts-zoomable.hovering-pan { + cursor: move +} + +.apexcharts-menu-icon, +.apexcharts-pan-icon, +.apexcharts-reset-icon, +.apexcharts-selection-icon, +.apexcharts-toolbar-custom-icon, +.apexcharts-zoom-icon, +.apexcharts-zoomin-icon, +.apexcharts-zoomout-icon { + cursor: pointer; + width: 20px; + height: 20px; + line-height: 24px; + color: #6e8192; + text-align: center +} + +.apexcharts-menu-icon svg, +.apexcharts-reset-icon svg, +.apexcharts-zoom-icon svg, +.apexcharts-zoomin-icon svg, +.apexcharts-zoomout-icon svg { + fill: #6e8192 +} + +.apexcharts-selection-icon svg { + fill: #444; + transform: scale(.76) +} + +.apexcharts-theme-dark .apexcharts-menu-icon svg, +.apexcharts-theme-dark .apexcharts-pan-icon svg, +.apexcharts-theme-dark .apexcharts-reset-icon svg, +.apexcharts-theme-dark .apexcharts-selection-icon svg, +.apexcharts-theme-dark .apexcharts-toolbar-custom-icon svg, +.apexcharts-theme-dark .apexcharts-zoom-icon svg, +.apexcharts-theme-dark .apexcharts-zoomin-icon svg, +.apexcharts-theme-dark .apexcharts-zoomout-icon svg { + fill: #f3f4f5 +} + +.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected svg, +.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected svg, +.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected svg { + fill: #008ffb +} + +.apexcharts-theme-light .apexcharts-menu-icon:hover svg, +.apexcharts-theme-light .apexcharts-reset-icon:hover svg, +.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover svg, +.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover svg, +.apexcharts-theme-light .apexcharts-zoomin-icon:hover svg, +.apexcharts-theme-light .apexcharts-zoomout-icon:hover svg { + fill: #333 +} + +.apexcharts-menu-icon, +.apexcharts-selection-icon { + position: relative +} + +.apexcharts-reset-icon { + margin-left: 5px +} + +.apexcharts-menu-icon, +.apexcharts-reset-icon, +.apexcharts-zoom-icon { + transform: scale(.85) +} + +.apexcharts-zoomin-icon, +.apexcharts-zoomout-icon { + transform: scale(.7) +} + +.apexcharts-zoomout-icon { + margin-right: 3px +} + +.apexcharts-pan-icon { + transform: scale(.62); + position: relative; + left: 1px; + top: 0 +} + +.apexcharts-pan-icon svg { + fill: #fff; + stroke: #6e8192; + stroke-width: 2 +} + +.apexcharts-pan-icon.apexcharts-selected svg { + stroke: #008ffb +} + +.apexcharts-pan-icon:not(.apexcharts-selected):hover svg { + stroke: #333 +} + +.apexcharts-toolbar { + position: absolute; + z-index: 11; + max-width: 176px; + text-align: right; + border-radius: 3px; + padding: 0 6px 2px; + display: flex; + justify-content: space-between; + align-items: center +} + +.apexcharts-menu { + background: #fff; + position: absolute; + top: 100%; + border: 1px solid #ddd; + border-radius: 3px; + padding: 3px; + right: 10px; + opacity: 0; + min-width: 110px; + transition: .15s ease all; + pointer-events: none +} + +.apexcharts-menu.apexcharts-menu-open { + opacity: 1; + pointer-events: all; + transition: .15s ease all +} + +.apexcharts-menu-item { + padding: 6px 7px; + font-size: 12px; + cursor: pointer +} + +.apexcharts-theme-light .apexcharts-menu-item:hover { + background: #eee +} + +.apexcharts-theme-dark .apexcharts-menu { + background: rgba(0, 0, 0, .7); + color: #fff +} + +@media screen and (min-width:768px) { + .apexcharts-canvas:hover .apexcharts-toolbar { + opacity: 1 + } +} + +.apexcharts-canvas .apexcharts-element-hidden, +.apexcharts-datalabel.apexcharts-element-hidden, +.apexcharts-hide .apexcharts-series-points { + opacity: 0; +} + +.apexcharts-hidden-element-shown { + opacity: 1; + transition: 0.25s ease all; +} + +.apexcharts-datalabel, +.apexcharts-datalabel-label, +.apexcharts-datalabel-value, +.apexcharts-datalabels, +.apexcharts-pie-label { + cursor: default; + pointer-events: none +} + +.apexcharts-pie-label-delay { + opacity: 0; + animation-name: opaque; + animation-duration: .3s; + animation-fill-mode: forwards; + animation-timing-function: ease +} + +.apexcharts-radialbar-label { + cursor: pointer; +} + +.apexcharts-annotation-rect, +.apexcharts-area-series .apexcharts-area, +.apexcharts-gridline, +.apexcharts-line, +.apexcharts-point-annotation-label, +.apexcharts-radar-series path:not(.apexcharts-marker), +.apexcharts-radar-series polygon, +.apexcharts-toolbar svg, +.apexcharts-tooltip .apexcharts-marker, +.apexcharts-xaxis-annotation-label, +.apexcharts-yaxis-annotation-label, +.apexcharts-zoom-rect, +.no-pointer-events { + pointer-events: none +} + +.apexcharts-tooltip-active .apexcharts-marker { + transition: .15s ease all +} + +.resize-triggers { + animation: 1ms resizeanim; + visibility: hidden; + opacity: 0; + height: 100%; + width: 100%; + overflow: hidden +} + +.contract-trigger:before, +.resize-triggers, +.resize-triggers>div { + content: " "; + display: block; + position: absolute; + top: 0; + left: 0 +} + +.resize-triggers>div { + height: 100%; + width: 100%; + background: #eee; + overflow: auto +} + +.contract-trigger:before { + overflow: hidden; + width: 200%; + height: 200% +} + +.apexcharts-bar-goals-markers { + pointer-events: none +} + +.apexcharts-bar-shadows { + pointer-events: none +} + +.apexcharts-rangebar-goals-markers { + pointer-events: none +}`;var d=((h=e.opts.chart)===null||h===void 0?void 0:h.nonce)||e.w.config.chart.nonce;d&&l.setAttribute("nonce",d),r?s.prepend(l):n.head.appendChild(l)}var c=e.create(e.w.config.series,{});if(!c)return t(e);e.mount(c).then(function(){typeof e.w.config.chart.events.mounted=="function"&&e.w.config.chart.events.mounted(e,e.w),e.events.fireEvent("mounted",[e,e.w]),t(c)}).catch(function(u){i(u)})}else i(new Error("Element not found"))})}},{key:"create",value:function(e,t){var i=this,a=this.w;new ns(this).initModules();var s=this.w.globals;if(s.noData=!1,s.animationEnded=!1,!M.elementExists(this.el))return s.animationEnded=!0,this.destroy(),null;if(this.responsive.checkResponsiveConfig(t),a.config.xaxis.convertedCatToNumeric&&new _t(a.config).convertCatToNumericXaxis(a.config,this.ctx),this.core.setupElements(),a.config.chart.type==="treemap"&&(a.config.grid.show=!1,a.config.yaxis[0].show=!1),s.svgWidth===0)return s.animationEnded=!0,null;var r=e;e.forEach(function(u,g){u.hidden&&(r=i.legend.legendHelpers.getSeriesAfterCollapsing({realIndex:g}))});var n=be.checkComboSeries(r,a.config.chart.type);s.comboCharts=n.comboCharts,s.comboBarCount=n.comboBarCount;var l=r.every(function(u){return u.data&&u.data.length===0});(r.length===0||l&&s.collapsedSeries.length<1)&&this.series.handleNoData(),this.events.setupEventHandlers(),this.data.parseData(r),this.theme.init(),new Ct(this).setGlobalMarkerSize(),this.formatters.setLabelFormatters(),this.titleSubtitle.draw(),s.noData&&s.collapsedSeries.length!==s.series.length&&!a.config.legend.showForSingleSeries||this.legend.init(),this.series.hasAllSeriesEqualX(),s.axisCharts&&(this.core.coreCalculations(),a.config.xaxis.type!=="category"&&this.formatters.setLabelFormatters(),this.ctx.toolbar.minX=a.globals.minX,this.ctx.toolbar.maxX=a.globals.maxX),this.formatters.heatmapLabelFormatters(),new be(this).getLargestMarkerSize(),this.dimensions.plotCoords();var h=this.core.xySettings();this.grid.createGridMask();var d=this.core.plotChartType(r,h),c=new xt(this);return c.bringForward(),a.config.dataLabels.background.enabled&&c.dataLabelsBackground(),this.core.shiftGraphPosition(),{elGraph:d,xyRatios:h,dimensions:{plot:{left:a.globals.translateX,top:a.globals.translateY,width:a.globals.gridWidth,height:a.globals.gridHeight}}}}},{key:"mount",value:function(){var e=this,t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,i=this,a=i.w;return new Promise(function(s,r){if(i.el===null)return r(new Error("Not enough data to display or target element not found"));(t===null||a.globals.allSeriesCollapsed)&&i.series.handleNoData(),i.grid=new Zs(i);var n,l,h=i.grid.drawGrid();if(i.annotations=new El(i),i.annotations.drawImageAnnos(),i.annotations.drawTextAnnos(),a.config.grid.position==="back"&&(h&&a.globals.dom.elGraphical.add(h.el),h!=null&&(n=h.elGridBorders)!==null&&n!==void 0&&n.node&&a.globals.dom.elGraphical.add(h.elGridBorders)),Array.isArray(t.elGraph))for(var d=0;d0&&a.globals.memory.methodsToExec.forEach(function(p){p.method(p.params,!1,p.context)}),a.globals.axisCharts||a.globals.noData||i.core.resizeNonAxisCharts(),s(i)})}},{key:"destroy",value:function(){window.removeEventListener("resize",this.windowResizeHandler),function(t,i){var a=Ii.get(i);a&&(a.disconnect(),Ii.delete(i))}(this.el.parentNode,this.parentResizeHandler);var e=this.w.config.chart.id;e&&Apex._chartInstances.forEach(function(t,i){t.id===M.escapeString(e)&&Apex._chartInstances.splice(i,1)}),new os(this.ctx).clear({isUpdating:!1})}},{key:"updateOptions",value:function(e){var t=this,i=arguments.length>1&&arguments[1]!==void 0&&arguments[1],a=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],s=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3],r=!(arguments.length>4&&arguments[4]!==void 0)||arguments[4],n=this.w;return n.globals.selection=void 0,e.series&&(this.series.resetSeries(!1,!0,!1),e.series.length&&e.series[0].data&&(e.series=e.series.map(function(l,h){return t.updateHelpers._extendSeries(l,h)})),this.updateHelpers.revertDefaultAxisMinMax()),e.xaxis&&(e=this.updateHelpers.forceXAxisUpdate(e)),e.yaxis&&(e=this.updateHelpers.forceYAxisUpdate(e)),n.globals.collapsedSeriesIndices.length>0&&this.series.clearPreviousPaths(),e.theme&&(e=this.theme.updateThemeOptions(e)),this.updateHelpers._updateOptions(e,i,a,s,r)}},{key:"updateSeries",value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],i=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2];return this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(e,t,i)}},{key:"appendSeries",value:function(e){var t=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],i=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],a=this.w.config.series.slice();return a.push(e),this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(a,t,i)}},{key:"appendData",value:function(e){var t=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],i=this;i.w.globals.dataChanged=!0,i.series.getPreviousPaths();for(var a=i.w.config.series.slice(),s=0;s0&&arguments[0]!==void 0)||arguments[0],t=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];this.series.resetSeries(e,t)}},{key:"addEventListener",value:function(e,t){this.events.addEventListener(e,t)}},{key:"removeEventListener",value:function(e,t){this.events.removeEventListener(e,t)}},{key:"addXaxisAnnotation",value:function(e){var t=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addXaxisAnnotationExternal(e,t,a)}},{key:"addYaxisAnnotation",value:function(e){var t=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addYaxisAnnotationExternal(e,t,a)}},{key:"addPointAnnotation",value:function(e){var t=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addPointAnnotationExternal(e,t,a)}},{key:"clearAnnotations",value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:void 0,t=this;e&&(t=e),t.annotations.clearAnnotations(t)}},{key:"removeAnnotation",value:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0,i=this;t&&(i=t),i.annotations.removeAnnotation(i,e)}},{key:"getChartArea",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-inner")}},{key:"getSeriesTotalXRange",value:function(e,t){return this.coreUtils.getSeriesTotalsXRange(e,t)}},{key:"getHighestValueInSeries",value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return new ji(this.ctx).getMinYMaxY(e).highestY}},{key:"getLowestValueInSeries",value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return new ji(this.ctx).getMinYMaxY(e).lowestY}},{key:"getSeriesTotal",value:function(){return this.w.globals.seriesTotals}},{key:"toggleDataPointSelection",value:function(e,t){return this.updateHelpers.toggleDataPointSelection(e,t)}},{key:"zoomX",value:function(e,t){this.ctx.toolbar.zoomUpdateOptions(e,t)}},{key:"setLocale",value:function(e){this.localization.setCurrentLocaleValues(e)}},{key:"dataURI",value:function(e){return new ai(this.ctx).dataURI(e)}},{key:"exportToCSV",value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return new ai(this.ctx).exportToCSV(e)}},{key:"paper",value:function(){return this.w.globals.dom.Paper}},{key:"_parentResizeCallback",value:function(){this.w.globals.animationEnded&&this.w.config.chart.redrawOnParentResize&&this._windowResize()}},{key:"_windowResize",value:function(){var e=this;clearTimeout(this.w.globals.resizeTimer),this.w.globals.resizeTimer=window.setTimeout(function(){e.w.globals.resized=!0,e.w.globals.dataChanged=!1,e.ctx.update()},150)}},{key:"_windowResizeHandler",value:function(){var e=this.w.config.chart.redrawOnWindowResize;typeof e=="function"&&(e=e()),e&&this._windowResize()}}],[{key:"getChartByID",value:function(e){var t=M.escapeString(e);if(Apex._chartInstances){var i=Apex._chartInstances.filter(function(a){return a.id===t})[0];return i&&i.chart}}},{key:"initOnLoad",value:function(){for(var e=document.querySelectorAll("[data-apexcharts]"),t=0;t2?s-2:0),n=2;nP&&typeof P=="object"&&!Array.isArray(P)&&P!=null,s=(P,I)=>{typeof Object.assign!="function"&&function(){Object.assign=function(z){if(z==null)throw new TypeError("Cannot convert undefined or null to object");let O=Object(z);for(let E=1;E{a(I[z])?z in P?T[z]=s(P[z],I[z]):Object.assign(T,{[z]:I[z]}):Object.assign(T,{[z]:I[z]})}),T},r=async()=>{if(await Or(),i.value)return;const P={chart:{type:o.type||o.options.chart.type||"line",height:o.height,width:o.width,events:{}},series:o.series},I=o.options.chart?o.options.chart.events:null;hs.forEach(z=>{let O=(...E)=>e(z,...E);P.chart.events[z]=(...E)=>{O(...E),I&&I.hasOwnProperty(z)&&I[z](...E)}});const T=s(o.options,P);return i.value=new ls(t.value,T),i.value.render()},n=()=>(l(),r()),l=()=>{i.value.destroy(),i.value=null},h=(P,I)=>i.value.updateSeries(P,I),d=(P,I,T,z)=>i.value.updateOptions(P,I,T,z),c=P=>i.value.toggleSeries(P),u=P=>{i.value.showSeries(P)},g=P=>{i.value.hideSeries(P)},p=(P,I)=>i.value.appendSeries(P,I),f=()=>{i.value.resetSeries()},x=(P,I)=>{i.value.toggleDataPointSelection(P,I)},m=P=>i.value.appendData(P),b=(P,I)=>i.value.zoomX(P,I),v=P=>i.value.dataURI(P),k=P=>i.value.setLocale(P),w=(P,I)=>{i.value.addXaxisAnnotation(P,I)},C=(P,I)=>{i.value.addYaxisAnnotation(P,I)},y=(P,I)=>{i.value.addPointAnnotation(P,I)},A=(P,I)=>{i.value.removeAnnotation(P,I)},L=()=>{i.value.clearAnnotations()};Tr(()=>{window.ApexCharts=ls}),zr(()=>{t.value=Xr().proxy.$el,r()}),_r(()=>{i.value&&l()});const S=Rr(o);return ut(S.options,()=>{!i.value&&o.options?r():i.value.updateOptions(o.options)}),ut(S.series,()=>{!i.value&&o.series?r():i.value.updateSeries(o.series)},{deep:!0}),ut(S.type,()=>{n()}),ut(S.width,()=>{n()}),ut(S.height,()=>{n()}),{chart:i,init:r,refresh:n,destroy:l,updateOptions:d,updateSeries:h,toggleSeries:c,showSeries:u,hideSeries:g,resetSeries:f,zoomX:b,toggleDataPointSelection:x,appendData:m,appendSeries:p,addXaxisAnnotation:w,addYaxisAnnotation:C,addPointAnnotation:y,removeAnnotation:A,clearAnnotations:L,setLocale:k,dataURI:v}},render(){return Er("div",{class:"vue-apexcharts"})}}),mh=o=>{o.component(bt.name,bt)};bt.install=mh;const bh=We({__name:"Bar",props:{widget:{},value:{}},setup(o){const e=o,{apexChartsComponent:t,options:i}=ta(e,()=>{var r,n,l,h;const{widget:a,value:s}=e;return{chart:{type:"bar"},colors:(r=s==null?void 0:s.datasets)==null?void 0:r.map(d=>ia(d.color)),grid:{show:!1,padding:{left:0}},labels:s==null?void 0:s.labels,legend:{position:"bottom"},plotOptions:{bar:{horizontal:!!((n=a.options)!=null&&n.horizontal)}},series:(l=s==null?void 0:s.datasets)==null?void 0:l.map(d=>({data:d.data,name:d.label})),xaxis:{type:!((h=a.options)!=null&&h.horizontal)&&a.dateLabels?"datetime":"category",axisBorder:{show:!1}},yaxis:{axisBorder:{show:!1}}}});return(a,s)=>(W(),le("div",{class:Qi({"mb-2":_(i).legend.show}),ref:"el"},[U(_(bt),{options:_(i),series:_(i).series,height:_(i).chart.height,ref_key:"apexChartsComponent",ref:t},null,8,["options","series","height"])],2))}}),vh=We({__name:"Line",props:{widget:{},value:{}},setup(o){const e=o,{apexChartsComponent:t,options:i}=ta(e,()=>{var r,n,l;const{widget:a,value:s}=e;return{grid:{padding:{top:0,bottom:0,left:0,right:0}},chart:{type:"line",sparkline:{enabled:a.minimal}},colors:(r=s==null?void 0:s.datasets)==null?void 0:r.map(h=>ia(h.color)),dataLabels:{enabled:!1},labels:s==null?void 0:s.labels,legend:{position:"bottom"},series:(n=s==null?void 0:s.datasets)==null?void 0:n.map(h=>({data:h.data,name:h.label})),stroke:{width:2,curve:((l=a.options)==null?void 0:l.curved)??!0?"smooth":"straight"},xaxis:{type:a.dateLabels?"datetime":"category"},yaxis:{show:!a.minimal,labels:{offsetX:-10}}}});return(a,s)=>(W(),le("div",{class:Qi(["mt-2",{"mb-2":_(i).legend.show}]),ref:"el"},[U(_(bt),{options:_(i),series:_(i).series,height:_(i).chart.height,ref_key:"apexChartsComponent",ref:t},null,8,["options","series","height"])],2))}}),yh={ref:"el"},wh=We({__name:"Pie",props:{widget:{},value:{}},setup(o){const e=o,t=Vr(),{apexChartsComponent:i,options:a}=ta(e,({width:s})=>{var n,l;const r=(l=(n=e.value)==null?void 0:n.datasets)==null?void 0:l.filter(h=>{var d;return((d=h.data)==null?void 0:d.length)>0});return{chart:{type:"pie"},grid:{padding:{}},dataLabels:{enabled:!0,style:{fontFamily:"inherit"},dropShadow:{enabled:!1}},plotOptions:{pie:{dataLabels:{offset:-10},offsetX:t.sm?-10:0,customScale:s&&t.sm&&s<380?1.1:1}},stroke:{show:!1},colors:r==null?void 0:r.map(h=>ia(h.color)),labels:r==null?void 0:r.map(h=>h.label??""),legend:t.sm?{position:"right",offsetY:s&&s<400?-20:0,offsetX:s&&s<400?-25:0}:{position:"bottom",offsetX:-20},series:r==null?void 0:r.map(h=>h.data[0])}});return(s,r)=>(W(),le("div",yh,[U(_(bt),{class:"min-h-[250px] sm:min-h-0",options:_(a),series:_(a).series,height:_(a).chart.height,ref_key:"apexChartsComponent",ref:i},null,8,["options","series","height"])],512))}}),kh=We({__name:"Graph",props:{widget:{},value:{}},setup(o){const e=o,t={bar:bh,line:vh,pie:wh};return(i,a)=>(W(),he(_(li),null,{default:D(()=>[i.widget.title?(W(),he(_(ri),{key:0},{default:D(()=>[U(_(ni),{class:"text-base/none font-semibold tracking-tight"},{default:D(()=>[xe(oe(i.widget.title),1)]),_:1})]),_:1})):me("",!0),U(_(oi),{class:Qi(i.widget.minimal?"!p-0":"")},{default:D(()=>[(W(),he(gs(t[i.widget.display]),Ti(e,{class:["[&_svg]:rounded-b-[calc(.5rem-1px)] [&_svg]:overflow-visible",[i.widget.height?"":"aspect-[--ratio]"]],style:{"--ratio":`${i.widget.ratioX} / ${i.widget.ratioY}`}}),null,16,["class","style"]))]),_:1},8,["class"])]),_:1}))}}),Ah=We({__name:"Widget",props:{widget:{},value:{}},setup(o){const e=o,t={figure:Qr,graph:kh,list:nn,panel:on};return(i,a)=>(W(),he(gs(t[i.widget.type]),Yr(Hr(e)),null,16))}}),Ch={class:"container @container mx-auto"},Sh={key:1,class:"mb-8 flex gap-3"},Lh={class:"hidden @2xl:flex flex-wrap gap-3"},Mh={class:"flex items-center @2xl:hidden"},Ph={class:"flex flex-col flex-wrap gap-4"},Ih={key:2,class:"mt-2"},Th={class:"grid grid-cols-1 gap-x-4 gap-y-10 md:gap-x-8"},zh={key:0,class:"mb-4 text-2xl font-semibold"},Xh={key:1,class:"mb-4 text-2xl font-semibold"},_h={key:2,class:"flex gap-3 mb-4"},Rh={class:"hidden @2xl:flex flex-wrap gap-3"},Eh={class:"flex items-center @2xl:hidden"},Oh={class:"flex flex-col flex-wrap gap-4"},Yh={class:"grid grid-cols-1 @2xl:grid-cols-12 gap-6"},Bh=We({__name:"Dashboard",props:{dashboard:{},breadcrumb:{}},setup(o){const e=o,t=Lt().params.dashboardKey,i=Fr(e.dashboard.config.filters,e.dashboard.filterValues),a=Dr("dashboard");ut(()=>e.dashboard,()=>{i.update(e.dashboard.config.filters,e.dashboard.filterValues)});function s(l,h){Pa.post(Lt("code16.sharp.dashboard.filters.store",{dashboardKey:t}),{filterValues:i.nextValues(l,h),query:di(location.search)},{preserveState:!0,preserveScroll:!0})}function r(l){Pa.post(Lt("code16.sharp.dashboard.filters.store",{dashboardKey:t}),{filterValues:i.defaultValues(l),query:di(location.search)},{preserveState:!0,preserveScroll:!0})}function n(l){a.send(l,{postCommand:Lt("code16.sharp.api.dashboard.command",{dashboardKey:t,commandKey:l.key}),getForm:Lt("code16.sharp.api.dashboard.command.form",{dashboardKey:t,commandKey:l.key}),query:{...di(location.search)},entityKey:t})}return(l,h)=>(W(),he(Nr,null,{breadcrumb:D(()=>[_(Wr)("sharp.display_breadcrumb")?(W(),he($r,{key:0,breadcrumb:l.breadcrumb},null,8,["breadcrumb"])):me("",!0)]),default:D(()=>[U(qr,{"entity-key":_(t)},null,8,["entity-key"]),U(Ur,{commands:_(a)},{default:D(()=>{var d,c,u,g;return[ye("div",Ch,[l.dashboard.pageAlert?(W(),he(Br,{key:0,class:"mb-8","page-alert":l.dashboard.pageAlert},null,8,["page-alert"])):me("",!0),_(i).rootFilters.length>0||(c=(d=l.dashboard.config.commands)==null?void 0:d.dashboard)!=null&&c.length?(W(),le("div",Sh,[_(i).rootFilters.length>0?(W(),le(ze,{key:0},[ye("div",Lh,[(W(!0),le(ze,null,qe(_(i).rootFilters,p=>(W(),he(Bt,{key:p.key,filter:p,value:_(i).currentValues[p.key],valuated:_(i).isValuated([p]),inline:"",onInput:f=>s(p,f)},null,8,["filter","value","valuated","onInput"]))),128)),_(i).isValuated(_(i).rootFilters)?(W(),he(_(Ge),{key:0,class:"h-8 underline underline-offset-4 -ml-2",variant:"ghost",size:"sm",onClick:h[0]||(h[0]=p=>r(_(i).rootFilters))},{default:D(()=>[xe(oe(_(Xe)("sharp::filters.reset_all")),1)]),_:1})):me("",!0)]),ye("div",Mh,[U(_(va),null,{default:D(()=>[U(_(Ia),{"as-child":""},{default:D(()=>[U(_(Ge),{class:"h-8 gap-1",variant:"outline",size:"sm"},{default:D(()=>[U(_(Ta),{class:"h-3.5 w-3.5"}),ye("span",null,oe(_(Xe)("sharp::filters.popover_button")),1)]),_:1})]),_:1}),U(_(ya),{onOpenAutoFocus:h[2]||(h[2]=wa(()=>{},["prevent"]))},{default:D(()=>[U(_(ka),null,{default:D(()=>[U(_(Aa),null,{default:D(()=>[xe(oe(_(Xe)("sharp::filters.popover_button"))+" : "+oe(l.breadcrumb.items[0].label),1)]),_:1})]),_:1}),ye("div",Ph,[(W(!0),le(ze,null,qe(_(i).rootFilters,p=>(W(),he(Bt,{key:p.key,filter:p,value:_(i).currentValues[p.key],valuated:_(i).isValuated([p]),onInput:f=>s(p,f)},null,8,["filter","value","valuated","onInput"]))),128))]),U(_(Ca),{class:"flex-row gap-2 mt-2"},{default:D(()=>[U(_(Wt),{"as-child":""},{default:D(()=>[U(_(Ge),{class:"flex-1",variant:"secondary",disabled:!_(i).isValuated(_(i).rootFilters),onClick:h[1]||(h[1]=p=>r(_(i).rootFilters))},{default:D(()=>[xe(oe(_(Xe)("sharp::filters.reset_all")),1)]),_:1},8,["disabled"])]),_:1}),U(_(Wt),{"as-child":""},{default:D(()=>[U(_(Ge),{class:"flex-1"},{default:D(()=>[xe(oe(_(Xe)("sharp::filters.dialog.submit")),1)]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),_(i).isValuated(_(i).rootFilters)?(W(),he(_(zi),{key:0,class:"ml-2"},{default:D(()=>[xe(oe(_(i).valuatedCount(_(i).rootFilters)),1)]),_:1})):me("",!0)])],64)):me("",!0),(g=(u=l.dashboard.config.commands)==null?void 0:u.dashboard)!=null&&g.length?(W(),he(_(Sa),{key:1},{default:D(()=>[U(_(La),{"as-child":""},{default:D(()=>[U(_(Ge),{class:"ml-auto h-8",variant:"outline",size:"sm"},{default:D(()=>[xe(oe(_(Xe)("sharp::dashboard.commands.dashboard.label"))+" ",1),U(za)]),_:1})]),_:1}),U(_(Ma),null,{default:D(()=>[U(Xa,{commands:l.dashboard.config.commands.dashboard,onSelect:n},null,8,["commands"])]),_:1})]),_:1})):me("",!0)])):(W(),le("div",Ih)),ye("div",Th,[(W(!0),le(ze,null,qe(l.dashboard.layout.sections,(p,f)=>{var x,m,b,v,k,w,C,y;return W(),le("section",null,[p.title?(W(),le("h2",zh,oe(p.title),1)):f?me("",!0):(W(),le("h2",Xh,oe(l.breadcrumb.items[0].label),1)),(m=(x=l.dashboard.config.filters)==null?void 0:x[p.key])!=null&&m.length||(v=(b=l.dashboard.config.commands)==null?void 0:b[p.key])!=null&&v.flat().length?(W(),le("div",_h,[(w=(k=l.dashboard.config.filters)==null?void 0:k[p.key])!=null&&w.length?(W(),le(ze,{key:0},[ye("div",Rh,[(W(!0),le(ze,null,qe(l.dashboard.config.filters[p.key],A=>(W(),he(Bt,{key:A.key,filter:A,value:_(i).currentValues[A.key],valuated:_(i).isValuated([A]),inline:"",onInput:L=>s(A,L)},null,8,["filter","value","valuated","onInput"]))),128)),_(i).isValuated(l.dashboard.config.filters[p.key])?(W(),he(_(Ge),{key:0,class:"h-8 underline underline-offset-4 -ml-2",variant:"ghost",size:"sm",onClick:A=>r(l.dashboard.config.filters[p.key])},{default:D(()=>[xe(oe(_(Xe)("sharp::filters.reset_all")),1)]),_:2},1032,["onClick"])):me("",!0)]),ye("div",Eh,[U(_(va),null,{default:D(()=>[U(_(Ia),{"as-child":""},{default:D(()=>[U(_(Ge),{class:"h-8 gap-1",variant:"outline",size:"sm"},{default:D(()=>[U(_(Ta),{class:"h-3.5 w-3.5"}),ye("span",null,oe(_(Xe)("sharp::filters.popover_button")),1)]),_:1})]),_:1}),U(_(ya),{onOpenAutoFocus:h[3]||(h[3]=wa(()=>{},["prevent"]))},{default:D(()=>[U(_(ka),null,{default:D(()=>[U(_(Aa),null,{default:D(()=>[xe(oe(_(Xe)("sharp::filters.popover_button"))+" : "+oe(p.title),1)]),_:2},1024)]),_:2},1024),ye("div",Oh,[(W(!0),le(ze,null,qe(l.dashboard.config.filters[p.key],A=>(W(),he(Bt,{key:A.key,filter:A,value:_(i).currentValues[A.key],valuated:_(i).isValuated([A]),onInput:L=>s(A,L)},null,8,["filter","value","valuated","onInput"]))),128))]),U(_(Ca),{class:"flex-row gap-2 mt-2"},{default:D(()=>[U(_(Wt),{"as-child":""},{default:D(()=>[U(_(Ge),{class:"flex-1",variant:"secondary",disabled:!_(i).isValuated(l.dashboard.config.filters[p.key]),onClick:A=>r(l.dashboard.config.filters[p.key])},{default:D(()=>[xe(oe(_(Xe)("sharp::filters.reset_all")),1)]),_:2},1032,["disabled","onClick"])]),_:2},1024),U(_(Wt),{"as-child":""},{default:D(()=>[U(_(Ge),{class:"flex-1"},{default:D(()=>[xe(oe(_(Xe)("sharp::filters.dialog.submit")),1)]),_:1})]),_:1})]),_:2},1024)]),_:2},1024)]),_:2},1024),_(i).isValuated(l.dashboard.config.filters[p.key])?(W(),he(_(zi),{key:0,class:"ml-2"},{default:D(()=>[xe(oe(_(i).valuatedCount(l.dashboard.config.filters[p.key])),1)]),_:2},1024)):me("",!0)])],64)):me("",!0),(y=(C=l.dashboard.config.commands)==null?void 0:C[p.key])!=null&&y.flat().length?(W(),he(_(Sa),{key:1},{default:D(()=>[U(_(La),{"as-child":""},{default:D(()=>[U(_(Ge),{class:"ml-auto h-8",variant:"outline",size:"sm"},{default:D(()=>[xe(oe(_(Xe)("sharp::dashboard.commands.dashboard.label"))+" ",1),U(za)]),_:1})]),_:1}),U(_(Ma),null,{default:D(()=>[U(Xa,{commands:l.dashboard.config.commands[p.key],onSelect:n},null,8,["commands"])]),_:2},1024)]),_:2},1024)):me("",!0)])):me("",!0),ye("div",Yh,[(W(!0),le(ze,null,qe(p.rows,A=>(W(),le(ze,null,[(W(!0),le(ze,null,qe(A,L=>(W(),le("div",{class:"contents @2xl:*:col-[span_var(--size)]",style:Gr({"--size":L.size})},[U(Ah,{widget:l.dashboard.widgets[L.key],value:l.dashboard.data[L.key]},null,8,["widget","value"])],4))),256))],64))),256))])])}),256))])])]}),_:1},8,["commands"])]),_:1}))}});export{Bh as default}; diff --git a/dist/assets/DropdownChevronDown.vue_vue_type_script_setup_true_lang-DZQFkxFU.js b/dist/assets/DropdownChevronDown.vue_vue_type_script_setup_true_lang-DZQFkxFU.js new file mode 100644 index 000000000..9140a4370 --- /dev/null +++ b/dist/assets/DropdownChevronDown.vue_vue_type_script_setup_true_lang-DZQFkxFU.js @@ -0,0 +1,14 @@ +import{b9 as an,d as k,bK as sn,bb as nn,p as rn,an as La,o as d,c as m,w as u,q as C,v as j,u as i,P as se,av as le,aw as be,y as S,bL as jt,bM as ce,bN as ln,bO as on,aq as dn,bP as Ua,ba as un,bQ as cn,ai as ie,bR as Da,bS as fn,bT as hn,ar as gt,bU as Be,bV as mn,j as te,t as M,x as vn,b as Y,bW as _n,bX as pn,bY as yn,bZ as gn,b_ as wn,b$ as kn,at as Ma,c0 as bn,c1 as Ia,c2 as Sn,A as x,a as _,c3 as Ha,c4 as Na,c5 as Ba,c6 as Ea,J as Dn,aK as Mn,bv as Aa,c7 as On,c8 as Yn,l as sa,K as Ga,k as fe,c9 as xn,F as z,H as Ye,z as X,ca as Te,cb as na,bm as Pn,bl as Cn,X as wt,i as q,cc as _t,cd as ja,ce as Oa,cf as za,_ as ae,cg as Za,U as Le,m as Ya,ch as qa,ci as zt,cj as Tn,b3 as Rn,ck as $n,b7 as Fn,cl as Wn,cm as Vn,cn as xa,co as Pa,f as Ln,cp as Un,au as Ja,cq as In,bq as Hn,cr as Nn,cs as Bn,bj as En,aN as An,aD as Gn,aE as jn,ct as zn,aF as Zn,aG as qn,n as Jn,aC as Qn,aB as Kn,a_ as Xn,b8 as er,a$ as tr,aV as ar}from"./sharp-DDNPuC1w.js";import{_ as sr}from"./TemplateRenderer.vue_vue_type_script_setup_true_lang-td6RXtbk.js";/** + * @license lucide-vue-next v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Wd=an("FilterIcon",[["polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3",key:"1yg77f"}]]),nr=k({__name:"DialogTrigger",props:{asChild:{type:Boolean},as:{default:"button"}},setup(e){const t=e,a=sn(),{forwardRef:s,currentElement:n}=nn();return a.contentId||(a.contentId=rn(void 0,"reka-dialog-content")),La(()=>{a.triggerElement.value=n.value}),(r,l)=>(d(),m(i(se),j(t,{ref:i(s),type:r.as==="button"?"button":void 0,"aria-haspopup":"dialog","aria-expanded":i(a).open.value||!1,"aria-controls":i(a).open.value?i(a).contentId:void 0,"data-state":i(a).open.value?"open":"closed",onClick:i(a).onOpenToggle}),{default:u(()=>[C(r.$slots,"default")]),_:3},16,["type","aria-expanded","aria-controls","data-state","onClick"]))}}),rr=k({__name:"RangeCalendarHeader",props:{asChild:{type:Boolean},as:{default:"div"}},setup(e){const t=e;return(a,s)=>(d(),m(i(se),le(be(t)),{default:u(()=>[C(a.$slots,"default")]),_:3},16))}});function ir(e){const t=S(()=>e.start.value?!!e.isDateDisabled(e.start.value):!1),a=S(()=>e.end.value?!!e.isDateDisabled(e.end.value):!1),s=S(()=>t.value||a.value?!1:!!(e.start.value&&e.end.value&&jt(e.end.value,e.start.value))),n=v=>e.start.value?ce(e.start.value,v):!1,r=v=>e.end.value?ce(e.end.value,v):!1,l=v=>e.start.value&&ce(e.start.value,v)||e.end.value&&ce(e.end.value,v)?!0:e.end.value&&e.start.value?on(v,e.start.value,e.end.value):!1,f=S(()=>{if(e.start.value&&e.end.value||!e.start.value||!e.focusedValue.value)return null;const v=jt(e.start.value,e.focusedValue.value),P=v?e.start.value:e.focusedValue.value,U=v?e.focusedValue.value:e.start.value;return ce(P,U)?{start:P,end:U}:e.allowNonContiguousRanges.value||ln(P,U,e.isDateUnavailable,e.isDateDisabled)?{start:P,end:U}:null});return{isInvalid:s,isSelected:l,highlightedRange:f,isSelectionStart:n,isSelectionEnd:r,isHighlightedStart:v=>!f.value||!f.value.start?!1:ce(f.value.start,v),isHighlightedEnd:v=>!f.value||!f.value.end?!1:ce(f.value.end,v)}}const lr={style:{border:"0px",clip:"rect(0px, 0px, 0px, 0px)","clip-path":"inset(50%)",height:"1px",margin:"-1px",overflow:"hidden",padding:"0px",position:"absolute","white-space":"nowrap",width:"1px"}},or={role:"heading","aria-level":"2"},[Ke,dr]=vn("RangeCalendarRoot"),ur=k({__name:"RangeCalendarRoot",props:{defaultPlaceholder:{},defaultValue:{default:()=>({start:void 0,end:void 0})},modelValue:{},placeholder:{default:void 0},allowNonContiguousRanges:{type:Boolean,default:!1},pagedNavigation:{type:Boolean,default:!1},preventDeselect:{type:Boolean,default:!1},weekStartsOn:{default:0},weekdayFormat:{default:"narrow"},calendarLabel:{},fixedWeeks:{type:Boolean,default:!1},maxValue:{},minValue:{},locale:{},numberOfMonths:{default:1},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},initialFocus:{type:Boolean,default:!1},isDateDisabled:{type:Function,default:void 0},isDateUnavailable:{type:Function,default:void 0},dir:{},nextPage:{},prevPage:{},asChild:{type:Boolean},as:{default:"div"}},emits:["update:modelValue","update:placeholder","update:startValue"],setup(e,{emit:t}){const a=e,s=t,{disabled:n,readonly:r,initialFocus:l,pagedNavigation:f,weekStartsOn:o,weekdayFormat:y,fixedWeeks:v,numberOfMonths:P,preventDeselect:U,isDateUnavailable:K,isDateDisabled:Re,calendarLabel:Me,maxValue:O,minValue:R,dir:ee,locale:A,nextPage:Ne,prevPage:tt,allowNonContiguousRanges:Lt}=dn(a),{primitiveElement:ht,currentElement:mt}=Ua(),E=un(ee),V=cn(A),pe=ie(),Ut=ie(),I=Da(a,"modelValue",s,{defaultValue:a.defaultValue??{start:void 0,end:void 0},passive:a.modelValue===void 0}),vt=fn({defaultPlaceholder:a.placeholder,defaultValue:I.value.start,locale:a.locale}),ye=ie(I.value.start),ge=ie(I.value.end),at=Da(a,"placeholder",s,{defaultValue:a.defaultPlaceholder??vt.copy(),passive:a.placeholder===void 0});function wa($){at.value=$.copy()}const{fullCalendarLabel:It,headingValue:Ns,isDateDisabled:ka,isDateUnavailable:ba,isNextButtonDisabled:Bs,isPrevButtonDisabled:Es,grid:As,weekdays:Gs,isOutsideVisibleView:js,nextPage:zs,prevPage:Zs,formatter:qs}=hn({locale:V,placeholder:at,weekStartsOn:o,fixedWeeks:v,numberOfMonths:P,minValue:R,maxValue:O,disabled:n,weekdayFormat:y,pagedNavigation:f,isDateDisabled:Re.value,isDateUnavailable:K.value,calendarLabel:Me,nextPage:Ne,prevPage:tt}),{isInvalid:Sa,isSelected:Js,highlightedRange:Qs,isSelectionStart:Ks,isSelectionEnd:Xs,isHighlightedStart:en,isHighlightedEnd:tn}=ir({start:ye,end:ge,isDateDisabled:ka,isDateUnavailable:ba,focusedValue:Ut,allowNonContiguousRanges:Lt});return gt(I,$=>{$.start&&(!ye.value||!Be(ye.value,$.start))&&(ye.value=$.start.copy()),$.end&&(!ge.value||!Be(ge.value,$.end))&&(ge.value=$.end.copy())}),gt(ye,$=>{$&&!Be($,at.value)&&wa($),s("update:startValue",$)}),gt([ye,ge],([$,$e])=>{const ue=I.value;if(!(ue&&ue.start&&ue.end&&$&&$e&&Be(ue.start,$)&&Be(ue.end,$e)))if($&&$e){if(ue.start&&ue.end&&Be(ue.start,$)&&Be(ue.end,$e))return;jt($e,$)?I.value={start:$e.copy(),end:$.copy()}:I.value={start:$.copy(),end:$e.copy()}}else ue.start&&ue.end&&(I.value={start:void 0,end:void 0})}),dr({isDateUnavailable:ba,startValue:ye,endValue:ge,formatter:qs,modelValue:I,placeholder:at,disabled:n,initialFocus:l,pagedNavigation:f,weekStartsOn:o,weekdayFormat:y,fixedWeeks:v,numberOfMonths:P,readonly:r,preventDeselect:U,fullCalendarLabel:It,headingValue:Ns,isInvalid:Sa,isDateDisabled:ka,highlightedRange:Qs,focusedValue:Ut,lastPressedDateValue:pe,isSelected:Js,isSelectionEnd:Xs,isSelectionStart:Ks,isNextButtonDisabled:Bs,isPrevButtonDisabled:Es,isOutsideVisibleView:js,nextPage:zs,prevPage:Zs,parentElement:mt,onPlaceholderChange:wa,locale:V,dir:E,isHighlightedStart:en,isHighlightedEnd:tn}),La(()=>{l.value&&mn(mt.value)}),($,$e)=>(d(),m(i(se),{ref_key:"primitiveElement",ref:ht,as:$.as,"as-child":$.asChild,role:"application","aria-label":i(It),"data-readonly":i(r)?"":void 0,"data-disabled":i(n)?"":void 0,"data-invalid":i(Sa)?"":void 0,dir:i(E)},{default:u(()=>[te("div",lr,[te("div",or,M(i(It)),1)]),C($.$slots,"default",{date:i(at),grid:i(As),weekDays:i(Gs),weekStartsOn:i(o),locale:i(V),fixedWeeks:i(v)})]),_:3},8,["as","as-child","aria-label","data-readonly","data-disabled","data-invalid","dir"]))}}),cr=k({__name:"RangeCalendarHeading",props:{asChild:{type:Boolean},as:{default:"div"}},setup(e){const t=e,a=Ke();return(s,n)=>(d(),m(i(se),j(t,{"data-disabled":i(a).disabled.value?"":void 0}),{default:u(()=>[C(s.$slots,"default",{headingValue:i(a).headingValue.value},()=>[Y(M(i(a).headingValue.value),1)])]),_:3},16,["data-disabled"]))}}),fr=k({__name:"RangeCalendarGrid",props:{asChild:{type:Boolean},as:{default:"table"}},setup(e){const t=e,a=Ke(),s=S(()=>a.disabled.value?!0:void 0),n=S(()=>a.readonly.value?!0:void 0);return(r,l)=>(d(),m(i(se),j(t,{tabindex:"-1",role:"grid","aria-readonly":n.value,"aria-disabled":s.value,"data-readonly":n.value&&"","data-disabled":s.value&&""}),{default:u(()=>[C(r.$slots,"default")]),_:3},16,["aria-readonly","aria-disabled","data-readonly","data-disabled"]))}}),hr=k({__name:"RangeCalendarCell",props:{date:{},asChild:{type:Boolean},as:{default:"td"}},setup(e){const t=Ke();return(a,s)=>{var n,r;return d(),m(i(se),{as:a.as,"as-child":a.asChild,role:"gridcell","aria-selected":i(t).isSelected(a.date)?!0:void 0,"aria-disabled":i(t).isDateDisabled(a.date)||((r=(n=i(t)).isDateUnavailable)==null?void 0:r.call(n,a.date)),"data-disabled":i(t).isDateDisabled(a.date)?"":void 0},{default:u(()=>[C(a.$slots,"default")]),_:3},8,["as","as-child","aria-selected","aria-disabled","data-disabled"])}}}),mr=k({__name:"RangeCalendarHeadCell",props:{asChild:{type:Boolean},as:{default:"th"}},setup(e){const t=e;return(a,s)=>(d(),m(i(se),le(be(t)),{default:u(()=>[C(a.$slots,"default")]),_:3},16))}}),vr=k({__name:"RangeCalendarNext",props:{nextPage:{},asChild:{type:Boolean},as:{default:"button"}},setup(e){const t=e,a=S(()=>s.disabled.value||s.isNextButtonDisabled(t.nextPage)),s=Ke();return(n,r)=>(d(),m(i(se),j(t,{"aria-label":"Next page",type:n.as==="button"?"button":void 0,"aria-disabled":a.value||void 0,"data-disabled":a.value||void 0,disabled:a.value,onClick:r[0]||(r[0]=l=>i(s).nextPage(t.nextPage))}),{default:u(()=>[C(n.$slots,"default",{},()=>[r[1]||(r[1]=Y("Next page"))])]),_:3},16,["type","aria-disabled","data-disabled","disabled"]))}}),_r=k({__name:"RangeCalendarPrev",props:{prevPage:{},asChild:{type:Boolean},as:{default:"button"}},setup(e){const t=e,a=S(()=>s.disabled.value||s.isPrevButtonDisabled(t.prevPage)),s=Ke();return(n,r)=>(d(),m(i(se),j(t,{"aria-label":"Previous page",type:n.as==="button"?"button":void 0,"aria-disabled":a.value||void 0,"data-disabled":a.value||void 0,disabled:a.value,onClick:r[0]||(r[0]=l=>i(s).prevPage(t.prevPage))}),{default:u(()=>[C(n.$slots,"default",{},()=>[r[1]||(r[1]=Y("Prev page"))])]),_:3},16,["type","aria-disabled","data-disabled","disabled"]))}}),pr=k({__name:"RangeCalendarGridHead",props:{asChild:{type:Boolean},as:{default:"thead"}},setup(e){const t=e;return(a,s)=>(d(),m(i(se),j(t,{"aria-hidden":"true"}),{default:u(()=>[C(a.$slots,"default")]),_:3},16))}}),yr=k({__name:"RangeCalendarGridBody",props:{asChild:{type:Boolean},as:{default:"tbody"}},setup(e){const t=e;return(a,s)=>(d(),m(i(se),le(be(t)),{default:u(()=>[C(a.$slots,"default")]),_:3},16))}}),gr=k({__name:"RangeCalendarGridRow",props:{asChild:{type:Boolean},as:{default:"tr"}},setup(e){const t=e;return(a,s)=>(d(),m(i(se),le(be(t)),{default:u(()=>[C(a.$slots,"default")]),_:3},16))}}),wr=k({__name:"RangeCalendarCellTrigger",props:{day:{},month:{},asChild:{type:Boolean},as:{default:"div"}},setup(e){const t=e,a=Ke(),s=bn(),{primitiveElement:n,currentElement:r}=Ua(),l=S(()=>a.formatter.custom(_n(t.day),{weekday:"long",month:"long",day:"numeric",year:"numeric"})),f=S(()=>a.isDateDisabled(t.day)),o=S(()=>{var E;return(E=a.isDateUnavailable)==null?void 0:E.call(a,t.day)}),y=S(()=>a.isSelected(t.day)),v=S(()=>a.isSelectionStart(t.day)),P=S(()=>a.isSelectionEnd(t.day)),U=S(()=>a.isHighlightedStart(t.day)),K=S(()=>a.isHighlightedEnd(t.day)),Re=S(()=>a.highlightedRange.value?pn(t.day,a.highlightedRange.value.start,a.highlightedRange.value.end):!1),Me="[data-reka-calendar-cell-trigger]:not([data-disabled]):not([data-outside-month]):not([data-outside-visible-months])",O=S(()=>yn(t.day,gn())),R=S(()=>!wn(t.day,t.month)),ee=S(()=>a.isOutsideVisibleView(t.day)),A=S(()=>t.day.day.toLocaleString(a.locale.value)),Ne=S(()=>!a.disabled.value&&ce(t.day,a.placeholder.value));function tt(E,V){var pe;if(!a.readonly.value&&!(a.isDateDisabled(V)||(pe=a.isDateUnavailable)!=null&&pe.call(a,V))){if(a.lastPressedDateValue.value=V.copy(),a.startValue.value&&a.highlightedRange.value===null){if(ce(V,a.startValue.value)&&!a.preventDeselect.value&&!a.endValue.value){a.startValue.value=void 0,a.onPlaceholderChange(V);return}else if(!a.endValue.value){E.preventDefault(),a.lastPressedDateValue.value&&ce(a.lastPressedDateValue.value,V)&&(a.startValue.value=V.copy());return}}if(a.startValue.value&&a.endValue.value&&ce(a.endValue.value,V)&&!a.preventDeselect.value){a.startValue.value=void 0,a.endValue.value=void 0,a.onPlaceholderChange(V);return}a.startValue.value?a.endValue.value?a.endValue.value&&a.startValue.value&&(a.endValue.value=void 0,a.startValue.value=V.copy()):a.endValue.value=V.copy():a.startValue.value=V.copy()}}function Lt(E){tt(E,t.day)}function ht(){var E;a.isDateDisabled(t.day)||(E=a.isDateUnavailable)!=null&&E.call(a,t.day)||(a.focusedValue.value=t.day.copy())}function mt(E){E.preventDefault(),E.stopPropagation();const V=a.parentElement.value,pe=V?Array.from(V.querySelectorAll(Me)):[];let I=pe.indexOf(r.value);const vt=7,ye=a.dir.value==="rtl"?-1:1;switch(E.code){case s.ARROW_RIGHT:I+=ye;break;case s.ARROW_LEFT:I-=ye;break;case s.ARROW_UP:I-=vt;break;case s.ARROW_DOWN:I+=vt;break;case s.ENTER:case s.SPACE_CODE:tt(E,t.day);return;default:return}if(I>=0&&I{const ge=V?Array.from(V.querySelectorAll(Me)):[];ge[ge.length-Math.abs(I)].focus()});return}if(I>=pe.length){if(a.isNextButtonDisabled())return;a.nextPage(),Ma(()=>{(V?Array.from(V.querySelectorAll(Me)):[])[I-pe.length].focus()})}}return(E,V)=>(d(),m(i(se),j({ref_key:"primitiveElement",ref:n},t,{role:"button","aria-label":l.value,"data-reka-calendar-cell-trigger":"","aria-selected":y.value&&!o.value?!0:void 0,"aria-disabled":R.value||f.value||o.value?!0:void 0,"data-highlighted":Re.value&&!o.value?"":void 0,"data-selection-start":v.value?!0:void 0,"data-selection-end":P.value?!0:void 0,"data-highlighted-start":U.value?!0:void 0,"data-highlighted-end":K.value?!0:void 0,"data-selected":y.value&&!o.value?!0:void 0,"data-outside-visible-view":ee.value?"":void 0,"data-value":E.day.toString(),"data-disabled":f.value||R.value?"":void 0,"data-unavailable":o.value?"":void 0,"data-today":O.value?"":void 0,"data-outside-month":R.value?"":void 0,"data-focused":Ne.value?"":void 0,tabindex:Ne.value?0:R.value||f.value?void 0:-1,onClick:Lt,onFocusin:ht,onMouseenter:ht,onKeydown:kn(mt,["up","down","left","right","enter","space"])}),{default:u(()=>[C(E.$slots,"default",{dayValue:A.value},()=>[Y(M(A.value),1)])]),_:3},16,["aria-label","aria-selected","aria-disabled","data-highlighted","data-selection-start","data-selection-end","data-highlighted-start","data-highlighted-end","data-selected","data-outside-visible-view","data-value","data-disabled","data-unavailable","data-today","data-outside-month","data-focused","tabindex"]))}}),Vd=k({__name:"DialogTrigger",props:{asChild:{type:Boolean},as:{}},setup(e){const t=e;return(a,s)=>(d(),m(i(nr),le(be(t)),{default:u(()=>[C(a.$slots,"default")]),_:3},16))}});var Qa;function h(){return Qa.apply(null,arguments)}function kr(e){Qa=e}function ve(e){return e instanceof Array||Object.prototype.toString.call(e)==="[object Array]"}function rt(e){return e!=null&&Object.prototype.toString.call(e)==="[object Object]"}function br(e){if(Object.getOwnPropertyNames)return Object.getOwnPropertyNames(e).length===0;var t;for(t in e)if(e.hasOwnProperty(t))return!1;return!0}function Z(e){return e===void 0}function ze(e){return typeof e=="number"||Object.prototype.toString.call(e)==="[object Number]"}function Mt(e){return e instanceof Date||Object.prototype.toString.call(e)==="[object Date]"}function Ka(e,t){var a=[],s;for(s=0;s>>0,s=0;s0)for(a=0;a0?"future":"past"];return De(a)?a(t):a.replace(/%s/i,t)}var it={};function J(e,t){var a=e.toLowerCase();it[a]=it[a+"s"]=it[t]=e}function de(e){return typeof e=="string"?it[e]||it[e.toLowerCase()]:void 0}function oa(e){var t={},a,s;for(s in e)B(e,s)&&(a=de(s),a&&(t[a]=e[s]));return t}var ss={};function Q(e,t){ss[e]=t}function Lr(e){var t=[];for(var a in e)t.push({unit:a,priority:ss[a]});return t.sort(function(s,n){return s.priority-n.priority}),t}function Ce(e,t,a){var s=""+Math.abs(e),n=t-s.length,r=e>=0;return(r?a?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+s}var ns=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,pt=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Bt={},Qe={};function g(e,t,a,s){var n=s;typeof s=="string"&&(n=function(){return this[s]()}),e&&(Qe[e]=n),t&&(Qe[t[0]]=function(){return Ce(n.apply(this,arguments),t[1],t[2])}),a&&(Qe[a]=function(){return this.localeData().ordinal(n.apply(this,arguments),e)})}function Ur(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function Ir(e){var t=e.match(ns),a,s;for(a=0,s=t.length;a=0&&pt.test(e);)e=e.replace(pt,s),pt.lastIndex=0,a-=1;return e}var is=/\d/,ne=/\d\d/,ls=/\d{3}/,da=/\d{4}/,Yt=/[+-]?\d{6}/,F=/\d\d?/,os=/\d\d\d\d?/,ds=/\d\d\d\d\d\d?/,xt=/\d{1,3}/,ua=/\d{1,4}/,Pt=/[+-]?\d{1,6}/,Hr=/\d+/,Ct=/[+-]?\d+/,Nr=/Z|[+-]\d\d:?\d\d/gi,Tt=/Z|[+-]\d\d(?::?\d\d)?/gi,Br=/[+-]?\d+(\.\d{1,3})?/,ct=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Qt={};function p(e,t,a){Qt[e]=De(t)?t:function(s,n){return s&&a?a:t}}function Er(e,t){return B(Qt,e)?Qt[e](t._strict,t._locale):new RegExp(Ar(e))}function Ar(e){return Ge(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,a,s,n,r){return a||s||n||r}))}function Ge(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var Kt={};function W(e,t){var a,s=t;for(typeof e=="string"&&(e=[e]),ze(t)&&(s=function(n,r){r[t]=b(n)}),a=0;a68?1900:2e3)};var us=Xe("FullYear",!0);function Zr(){return Rt(this.year())}function Xe(e,t){return function(a){return a!=null?(cs(this,e,a),h.updateOffset(this,t),this):kt(this,e)}}function kt(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function cs(e,t,a){e.isValid()&&!isNaN(a)&&(t==="FullYear"&&Rt(e.year())?e._d["set"+(e._isUTC?"UTC":"")+t](a,e.month(),$t(a,e.month())):e._d["set"+(e._isUTC?"UTC":"")+t](a))}function qr(e){return e=de(e),De(this[e])?this[e]():this}function Jr(e,t){if(typeof e=="object"){e=oa(e);for(var a=Lr(e),s=0;s=0&&isFinite(f.getFullYear())&&f.setFullYear(e),f}function ot(e){var t=new Date(Date.UTC.apply(null,arguments));return e<100&&e>=0&&isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e),t}function bt(e,t,a){var s=7+t-a,n=(7+ot(e,0,s).getUTCDay()-t)%7;return-n+s-1}function ps(e,t,a,s,n){var r=(7+a-s)%7,l=bt(e,s,n),f=1+7*(t-1)+r+l,o,y;return f<=0?(o=e-1,y=lt(o)+f):f>lt(e)?(o=e+1,y=f-lt(e)):(o=e,y=f),{year:o,dayOfYear:y}}function dt(e,t,a){var s=bt(e.year(),t,a),n=Math.floor((e.dayOfYear()-s-1)/7)+1,r,l;return n<1?(l=e.year()-1,r=n+je(l,t,a)):n>je(e.year(),t,a)?(r=n-je(e.year(),t,a),l=e.year()+1):(l=e.year(),r=n),{week:r,year:l}}function je(e,t,a){var s=bt(e,t,a),n=bt(e+1,t,a);return(lt(e)-s+n)/7}g("w",["ww",2],"wo","week");g("W",["WW",2],"Wo","isoWeek");J("week","w");J("isoWeek","W");Q("week",5);Q("isoWeek",5);p("w",F);p("ww",F,ne);p("W",F);p("WW",F,ne);ft(["w","ww","W","WW"],function(e,t,a,s){t[s.substr(0,1)]=b(e)});function di(e){return dt(e,this._week.dow,this._week.doy).week}var ui={dow:0,doy:6};function ci(){return this._week.dow}function fi(){return this._week.doy}function hi(e){var t=this.localeData().week(this);return e==null?t:this.add((e-t)*7,"d")}function mi(e){var t=dt(this,1,4).week;return e==null?t:this.add((e-t)*7,"d")}g("d",0,"do","day");g("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)});g("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)});g("dddd",0,0,function(e){return this.localeData().weekdays(this,e)});g("e",0,0,"weekday");g("E",0,0,"isoWeekday");J("day","d");J("weekday","e");J("isoWeekday","E");Q("day",11);Q("weekday",11);Q("isoWeekday",11);p("d",F);p("e",F);p("E",F);p("dd",function(e,t){return t.weekdaysMinRegex(e)});p("ddd",function(e,t){return t.weekdaysShortRegex(e)});p("dddd",function(e,t){return t.weekdaysRegex(e)});ft(["dd","ddd","dddd"],function(e,t,a,s){var n=a._locale.weekdaysParse(e,s,a._strict);n!=null?t.d=n:w(a).invalidWeekday=e});ft(["d","e","E"],function(e,t,a,s){t[s]=b(e)});function vi(e,t){return typeof e!="string"?e:isNaN(e)?(e=t.weekdaysParse(e),typeof e=="number"?e:null):parseInt(e,10)}function _i(e,t){return typeof e=="string"?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}var pi="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_");function yi(e,t){return e?ve(this._weekdays)?this._weekdays[e.day()]:this._weekdays[this._weekdays.isFormat.test(t)?"format":"standalone"][e.day()]:ve(this._weekdays)?this._weekdays:this._weekdays.standalone}var ys="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_");function gi(e){return e?this._weekdaysShort[e.day()]:this._weekdaysShort}var wi="Su_Mo_Tu_We_Th_Fr_Sa".split("_");function ki(e){return e?this._weekdaysMin[e.day()]:this._weekdaysMin}function bi(e,t,a){var s,n,r,l=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],s=0;s<7;++s)r=Se([2e3,1]).day(s),this._minWeekdaysParse[s]=this.weekdaysMin(r,"").toLocaleLowerCase(),this._shortWeekdaysParse[s]=this.weekdaysShort(r,"").toLocaleLowerCase(),this._weekdaysParse[s]=this.weekdays(r,"").toLocaleLowerCase();return a?t==="dddd"?(n=H.call(this._weekdaysParse,l),n!==-1?n:null):t==="ddd"?(n=H.call(this._shortWeekdaysParse,l),n!==-1?n:null):(n=H.call(this._minWeekdaysParse,l),n!==-1?n:null):t==="dddd"?(n=H.call(this._weekdaysParse,l),n!==-1||(n=H.call(this._shortWeekdaysParse,l),n!==-1)?n:(n=H.call(this._minWeekdaysParse,l),n!==-1?n:null)):t==="ddd"?(n=H.call(this._shortWeekdaysParse,l),n!==-1||(n=H.call(this._weekdaysParse,l),n!==-1)?n:(n=H.call(this._minWeekdaysParse,l),n!==-1?n:null)):(n=H.call(this._minWeekdaysParse,l),n!==-1||(n=H.call(this._weekdaysParse,l),n!==-1)?n:(n=H.call(this._shortWeekdaysParse,l),n!==-1?n:null))}function Si(e,t,a){var s,n,r;if(this._weekdaysParseExact)return bi.call(this,e,t,a);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),s=0;s<7;s++){if(n=Se([2e3,1]).day(s),a&&!this._fullWeekdaysParse[s]&&(this._fullWeekdaysParse[s]=new RegExp("^"+this.weekdays(n,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[s]=new RegExp("^"+this.weekdaysShort(n,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[s]=new RegExp("^"+this.weekdaysMin(n,"").replace(".",".?")+"$","i")),this._weekdaysParse[s]||(r="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[s]=new RegExp(r.replace(".",""),"i")),a&&t==="dddd"&&this._fullWeekdaysParse[s].test(e))return s;if(a&&t==="ddd"&&this._shortWeekdaysParse[s].test(e))return s;if(a&&t==="dd"&&this._minWeekdaysParse[s].test(e))return s;if(!a&&this._weekdaysParse[s].test(e))return s}}function Di(e){if(!this.isValid())return e!=null?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return e!=null?(e=vi(e,this.localeData()),this.add(e-t,"d")):t}function Mi(e){if(!this.isValid())return e!=null?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return e==null?t:this.add(e-t,"d")}function Oi(e){if(!this.isValid())return e!=null?this:NaN;if(e!=null){var t=_i(e,this.localeData());return this.day(this.day()%7?t:t-7)}else return this.day()||7}var Yi=ct;function xi(e){return this._weekdaysParseExact?(B(this,"_weekdaysRegex")||ca.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(B(this,"_weekdaysRegex")||(this._weekdaysRegex=Yi),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}var Pi=ct;function Ci(e){return this._weekdaysParseExact?(B(this,"_weekdaysRegex")||ca.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(B(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Pi),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}var Ti=ct;function Ri(e){return this._weekdaysParseExact?(B(this,"_weekdaysRegex")||ca.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(B(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Ti),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function ca(){function e(v,P){return P.length-v.length}var t=[],a=[],s=[],n=[],r,l,f,o,y;for(r=0;r<7;r++)l=Se([2e3,1]).day(r),f=this.weekdaysMin(l,""),o=this.weekdaysShort(l,""),y=this.weekdays(l,""),t.push(f),a.push(o),s.push(y),n.push(f),n.push(o),n.push(y);for(t.sort(e),a.sort(e),s.sort(e),n.sort(e),r=0;r<7;r++)a[r]=Ge(a[r]),s[r]=Ge(s[r]),n[r]=Ge(n[r]);this._weekdaysRegex=new RegExp("^("+n.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+t.join("|")+")","i")}function fa(){return this.hours()%12||12}function $i(){return this.hours()||24}g("H",["HH",2],0,"hour");g("h",["hh",2],0,fa);g("k",["kk",2],0,$i);g("hmm",0,0,function(){return""+fa.apply(this)+Ce(this.minutes(),2)});g("hmmss",0,0,function(){return""+fa.apply(this)+Ce(this.minutes(),2)+Ce(this.seconds(),2)});g("Hmm",0,0,function(){return""+this.hours()+Ce(this.minutes(),2)});g("Hmmss",0,0,function(){return""+this.hours()+Ce(this.minutes(),2)+Ce(this.seconds(),2)});function gs(e,t){g(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}gs("a",!0);gs("A",!1);J("hour","h");Q("hour",13);function ws(e,t){return t._meridiemParse}p("a",ws);p("A",ws);p("H",F);p("h",F);p("k",F);p("HH",F,ne);p("hh",F,ne);p("kk",F,ne);p("hmm",os);p("hmmss",ds);p("Hmm",os);p("Hmmss",ds);W(["H","HH"],G);W(["k","kk"],function(e,t,a){var s=b(e);t[G]=s===24?0:s});W(["a","A"],function(e,t,a){a._isPm=a._locale.isPM(e),a._meridiem=e});W(["h","hh"],function(e,t,a){t[G]=b(e),w(a).bigHour=!0});W("hmm",function(e,t,a){var s=e.length-2;t[G]=b(e.substr(0,s)),t[he]=b(e.substr(s)),w(a).bigHour=!0});W("hmmss",function(e,t,a){var s=e.length-4,n=e.length-2;t[G]=b(e.substr(0,s)),t[he]=b(e.substr(s,2)),t[Pe]=b(e.substr(n)),w(a).bigHour=!0});W("Hmm",function(e,t,a){var s=e.length-2;t[G]=b(e.substr(0,s)),t[he]=b(e.substr(s))});W("Hmmss",function(e,t,a){var s=e.length-4,n=e.length-2;t[G]=b(e.substr(0,s)),t[he]=b(e.substr(s,2)),t[Pe]=b(e.substr(n))});function Fi(e){return(e+"").toLowerCase().charAt(0)==="p"}var Wi=/[ap]\.?m?\.?/i;function Vi(e,t,a){return e>11?a?"pm":"PM":a?"am":"AM"}var Li=Xe("Hours",!0),ks={calendar:Mr,longDateFormat:Yr,invalidDate:Pr,ordinal:Tr,dayOfMonthOrdinalParse:Rr,relativeTime:Fr,months:Kr,monthsShort:hs,week:ui,weekdays:pi,weekdaysMin:wi,weekdaysShort:ys,meridiemParse:Wi},N={},st={},St;function Ta(e){return e&&e.toLowerCase().replace("_","-")}function Ui(e){for(var t=0,a,s,n,r;t0;){if(n=bs(r.slice(0,a).join("-")),n)return n;if(s&&s.length>=a&&Xa(r,s,!0)>=a-1)break;a--}t++}return null}function bs(e){var t=null;if(!N[e]&&typeof module<"u"&&module&&module.exports)try{t=St._abbr;var a=require;a("./locale/"+e),et(t)}catch{}return N[e]}function et(e,t){var a;return e&&(Z(t)?a=Ie(e):a=ha(e,t),a&&(St=a)),St._abbr}function ha(e,t){if(t!==null){var a=ks;if(t.abbr=e,N[e]!=null)ts("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),a=N[e]._config;else if(t.parentLocale!=null)if(N[t.parentLocale]!=null)a=N[t.parentLocale]._config;else return st[t.parentLocale]||(st[t.parentLocale]=[]),st[t.parentLocale].push({name:e,config:t}),null;return N[e]=new la(as(a,t)),st[e]&&st[e].forEach(function(s){ha(s.name,s.config)}),et(e),N[e]}else return delete N[e],null}function Ii(e,t){if(t!=null){var a,s=ks;N[e]!=null&&(s=N[e]._config),t=as(s,t),a=new la(t),a.parentLocale=N[e],N[e]=a,et(e)}else N[e]!=null&&(N[e].parentLocale!=null?N[e]=N[e].parentLocale:N[e]!=null&&delete N[e]);return N[e]}function Ie(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return St;if(!ve(e)){if(t=bs(e),t)return t;e=[e]}return Ui(e)}function Hi(){return qt(N)}function ma(e){var t,a=e._a;return a&&w(e).overflow===-2&&(t=a[xe]<0||a[xe]>11?xe:a[ke]<1||a[ke]>$t(a[me],a[xe])?ke:a[G]<0||a[G]>24||a[G]===24&&(a[he]!==0||a[Pe]!==0||a[Ae]!==0)?G:a[he]<0||a[he]>59?he:a[Pe]<0||a[Pe]>59?Pe:a[Ae]<0||a[Ae]>999?Ae:-1,w(e)._overflowDayOfYear&&(tke)&&(t=ke),w(e)._overflowWeeks&&t===-1&&(t=jr),w(e)._overflowWeekday&&t===-1&&(t=zr),w(e).overflow=t),e}function Je(e,t,a){return e??t??a}function Ni(e){var t=new Date(h.now());return e._useUTC?[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()]:[t.getFullYear(),t.getMonth(),t.getDate()]}function va(e){var t,a,s=[],n,r;if(!e._d){for(n=Ni(e),e._w&&e._a[ke]==null&&e._a[xe]==null&&Bi(e),e._dayOfYear!=null&&(r=Je(e._a[me],n[me]),(e._dayOfYear>lt(r)||e._dayOfYear===0)&&(w(e)._overflowDayOfYear=!0),a=ot(r,0,e._dayOfYear),e._a[xe]=a.getUTCMonth(),e._a[ke]=a.getUTCDate()),t=0;t<3&&e._a[t]==null;++t)e._a[t]=s[t]=n[t];for(;t<7;t++)e._a[t]=s[t]=e._a[t]==null?t===2?1:0:e._a[t];e._a[G]===24&&e._a[he]===0&&e._a[Pe]===0&&e._a[Ae]===0&&(e._nextDay=!0,e._a[G]=0),e._d=(e._useUTC?ot:oi).apply(null,s),e._tzm!=null&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[G]=24),e._w&&typeof e._w.d<"u"&&e._w.d!==e._d.getDay()&&(w(e).weekdayMismatch=!0)}}function Bi(e){var t,a,s,n,r,l,f,o;if(t=e._w,t.GG!=null||t.W!=null||t.E!=null)r=1,l=4,a=Je(t.GG,e._a[me],dt(L(),1,4).year),s=Je(t.W,1),n=Je(t.E,1),(n<1||n>7)&&(o=!0);else{r=e._locale._week.dow,l=e._locale._week.doy;var y=dt(L(),r,l);a=Je(t.gg,e._a[me],y.year),s=Je(t.w,y.week),t.d!=null?(n=t.d,(n<0||n>6)&&(o=!0)):t.e!=null?(n=t.e+r,(t.e<0||t.e>6)&&(o=!0)):n=r}s<1||s>je(a,r,l)?w(e)._overflowWeeks=!0:o!=null?w(e)._overflowWeekday=!0:(f=ps(a,s,n,r,l),e._a[me]=f.year,e._dayOfYear=f.dayOfYear)}var Ei=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Ai=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Gi=/Z|[+-]\d\d(?::?\d\d)?/,yt=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],Et=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],ji=/^\/?Date\((\-?\d+)/i;function Ss(e){var t,a,s=e._i,n=Ei.exec(s)||Ai.exec(s),r,l,f,o;if(n){for(w(e).iso=!0,t=0,a=yt.length;t0&&w(e).unusedInput.push(l),t=t.slice(t.indexOf(s)+s.length),o+=s.length),Qe[r]?(s?w(e).empty=!1:w(e).unusedTokens.push(r),Gr(r,s,e)):e._strict&&!s&&w(e).unusedTokens.push(r);w(e).charsLeftOver=f-o,t.length>0&&w(e).unusedInput.push(t),e._a[G]<=12&&w(e).bigHour===!0&&e._a[G]>0&&(w(e).bigHour=void 0),w(e).parsedDateParts=e._a.slice(0),w(e).meridiem=e._meridiem,e._a[G]=tl(e._locale,e._a[G],e._meridiem),va(e),ma(e)}function tl(e,t,a){var s;return a==null?t:e.meridiemHour!=null?e.meridiemHour(t,a):(e.isPM!=null&&(s=e.isPM(a),s&&t<12&&(t+=12),!s&&t===12&&(t=0)),t)}function al(e){var t,a,s,n,r;if(e._f.length===0){w(e).invalidFormat=!0,e._d=new Date(NaN);return}for(n=0;nthis?this:e:Ot()});function Ys(e,t){var a,s;if(t.length===1&&ve(t[0])&&(t=t[0]),!t.length)return L();for(a=t[0],s=1;sthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function bl(){if(!Z(this._isDSTShifted))return this._isDSTShifted;var e={};if(ia(e,this),e=Ms(e),e._a){var t=e._isUTC?Se(e._a):L(e._a);this._isDSTShifted=this.isValid()&&Xa(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Sl(){return this.isValid()?!this._isUTC:!1}function Dl(){return this.isValid()?this._isUTC:!1}function Ps(){return this.isValid()?this._isUTC&&this._offset===0:!1}var Ml=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Ol=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function _e(e,t){var a=e,s=null,n,r,l;return Xt(e)?a={ms:e._milliseconds,d:e._days,M:e._months}:ze(e)?(a={},t?a[t]=e:a.milliseconds=e):(s=Ml.exec(e))?(n=s[1]==="-"?-1:1,a={y:0,d:b(s[ke])*n,h:b(s[G])*n,m:b(s[he])*n,s:b(s[Pe])*n,ms:b(ea(s[Ae]*1e3))*n}):(s=Ol.exec(e))?(n=s[1]==="-"?-1:(s[1]==="+",1),a={y:Ee(s[2],n),M:Ee(s[3],n),w:Ee(s[4],n),d:Ee(s[5],n),h:Ee(s[6],n),m:Ee(s[7],n),s:Ee(s[8],n)}):a==null?a={}:typeof a=="object"&&("from"in a||"to"in a)&&(l=Yl(L(a.from),L(a.to)),a={},a.ms=l.milliseconds,a.M=l.months),r=new Ft(a),Xt(e)&&B(e,"_locale")&&(r._locale=e._locale),r}_e.fn=Ft.prototype;_e.invalid=hl;function Ee(e,t){var a=e&&parseFloat(e.replace(",","."));return(isNaN(a)?0:a)*t}function Ra(e,t){var a={milliseconds:0,months:0};return a.months=t.month()-e.month()+(t.year()-e.year())*12,e.clone().add(a.months,"M").isAfter(t)&&--a.months,a.milliseconds=+t-+e.clone().add(a.months,"M"),a}function Yl(e,t){var a;return e.isValid()&&t.isValid()?(t=ya(t,e),e.isBefore(t)?a=Ra(e,t):(a=Ra(t,e),a.milliseconds=-a.milliseconds,a.months=-a.months),a):{milliseconds:0,months:0}}function Cs(e,t){return function(a,s){var n,r;return s!==null&&!isNaN(+s)&&(ts(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),r=a,a=s,s=r),a=typeof a=="string"?+a:a,n=_e(a,s),Ts(this,n,e),this}}function Ts(e,t,a,s){var n=t._milliseconds,r=ea(t._days),l=ea(t._months);e.isValid()&&(s=s??!0,l&&ms(e,kt(e,"Month")+l*a),r&&cs(e,"Date",kt(e,"Date")+r*a),n&&e._d.setTime(e._d.valueOf()+n*a),s&&h.updateOffset(e,r||l))}var xl=Cs(1,"add"),Pl=Cs(-1,"subtract");function Cl(e,t){var a=e.diff(t,"days",!0);return a<-6?"sameElse":a<-1?"lastWeek":a<0?"lastDay":a<1?"sameDay":a<2?"nextDay":a<7?"nextWeek":"sameElse"}function Tl(e,t){var a=e||L(),s=ya(a,this).startOf("day"),n=h.calendarFormat(this,s)||"sameElse",r=t&&(De(t[n])?t[n].call(this,a):t[n]);return this.format(r||this.localeData().calendar(n,this,L(a)))}function Rl(){return new ut(this)}function $l(e,t){var a=Ue(e)?e:L(e);return this.isValid()&&a.isValid()?(t=de(Z(t)?"millisecond":t),t==="millisecond"?this.valueOf()>a.valueOf():a.valueOf()9999?Jt(e,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):De(Date.prototype.toISOString)?this.toDate().toISOString():Jt(e,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function Bl(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=this.utcOffset()===0?"moment.utc":"moment.parseZone",t="Z");var a="["+e+'("]',s=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n="-MM-DD[T]HH:mm:ss.SSS",r=t+'[")]';return this.format(a+s+n+r)}function El(e){e||(e=this.isUtc()?h.defaultFormatUtc:h.defaultFormat);var t=Jt(this,e);return this.localeData().postformat(t)}function Al(e,t){return this.isValid()&&(Ue(e)&&e.isValid()||L(e).isValid())?_e({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function Gl(e){return this.from(L(),e)}function jl(e,t){return this.isValid()&&(Ue(e)&&e.isValid()||L(e).isValid())?_e({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function zl(e){return this.to(L(),e)}function Rs(e){var t;return e===void 0?this._locale._abbr:(t=Ie(e),t!=null&&(this._locale=t),this)}var $s=oe("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return e===void 0?this.localeData():this.locale(e)});function Fs(){return this._locale}function Zl(e){switch(e=de(e),e){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return e==="week"&&this.weekday(0),e==="isoWeek"&&this.isoWeekday(1),e==="quarter"&&this.month(Math.floor(this.month()/3)*3),this}function ql(e){return e=de(e),e===void 0||e==="millisecond"?this:(e==="date"&&(e="day"),this.startOf(e).add(1,e==="isoWeek"?"week":e).subtract(1,"ms"))}function Jl(){return this._d.valueOf()-(this._offset||0)*6e4}function Ql(){return Math.floor(this.valueOf()/1e3)}function Kl(){return new Date(this.valueOf())}function Xl(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function eo(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function to(){return this.isValid()?this.toISOString():null}function ao(){return ra(this)}function so(){return We({},w(this))}function no(){return w(this).overflow}function ro(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}g(0,["gg",2],0,function(){return this.weekYear()%100});g(0,["GG",2],0,function(){return this.isoWeekYear()%100});function Wt(e,t){g(0,[e,e.length],0,t)}Wt("gggg","weekYear");Wt("ggggg","weekYear");Wt("GGGG","isoWeekYear");Wt("GGGGG","isoWeekYear");J("weekYear","gg");J("isoWeekYear","GG");Q("weekYear",1);Q("isoWeekYear",1);p("G",Ct);p("g",Ct);p("GG",F,ne);p("gg",F,ne);p("GGGG",ua,da);p("gggg",ua,da);p("GGGGG",Pt,Yt);p("ggggg",Pt,Yt);ft(["gggg","ggggg","GGGG","GGGGG"],function(e,t,a,s){t[s.substr(0,2)]=b(e)});ft(["gg","GG"],function(e,t,a,s){t[s]=h.parseTwoDigitYear(e)});function io(e){return Ws.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function lo(e){return Ws.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)}function oo(){return je(this.year(),1,4)}function uo(){var e=this.localeData()._week;return je(this.year(),e.dow,e.doy)}function Ws(e,t,a,s,n){var r;return e==null?dt(this,s,n).year:(r=je(e,s,n),t>r&&(t=r),co.call(this,e,t,a,s,n))}function co(e,t,a,s,n){var r=ps(e,t,a,s,n),l=ot(r.year,0,r.dayOfYear);return this.year(l.getUTCFullYear()),this.month(l.getUTCMonth()),this.date(l.getUTCDate()),this}g("Q",0,"Qo","quarter");J("quarter","Q");Q("quarter",7);p("Q",is);W("Q",function(e,t){t[xe]=(b(e)-1)*3});function fo(e){return e==null?Math.ceil((this.month()+1)/3):this.month((e-1)*3+this.month()%3)}g("D",["DD",2],"Do","date");J("date","D");Q("date",9);p("D",F);p("DD",F,ne);p("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient});W(["D","DD"],ke);W("Do",function(e,t){t[ke]=b(e.match(F)[0])});var Vs=Xe("Date",!0);g("DDD",["DDDD",3],"DDDo","dayOfYear");J("dayOfYear","DDD");Q("dayOfYear",4);p("DDD",xt);p("DDDD",ls);W(["DDD","DDDD"],function(e,t,a){a._dayOfYear=b(e)});function ho(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return e==null?t:this.add(e-t,"d")}g("m",["mm",2],0,"minute");J("minute","m");Q("minute",14);p("m",F);p("mm",F,ne);W(["m","mm"],he);var mo=Xe("Minutes",!1);g("s",["ss",2],0,"second");J("second","s");Q("second",15);p("s",F);p("ss",F,ne);W(["s","ss"],Pe);var vo=Xe("Seconds",!1);g("S",0,0,function(){return~~(this.millisecond()/100)});g(0,["SS",2],0,function(){return~~(this.millisecond()/10)});g(0,["SSS",3],0,"millisecond");g(0,["SSSS",4],0,function(){return this.millisecond()*10});g(0,["SSSSS",5],0,function(){return this.millisecond()*100});g(0,["SSSSSS",6],0,function(){return this.millisecond()*1e3});g(0,["SSSSSSS",7],0,function(){return this.millisecond()*1e4});g(0,["SSSSSSSS",8],0,function(){return this.millisecond()*1e5});g(0,["SSSSSSSSS",9],0,function(){return this.millisecond()*1e6});J("millisecond","ms");Q("millisecond",16);p("S",xt,is);p("SS",xt,ne);p("SSS",xt,ls);var Ve;for(Ve="SSSS";Ve.length<=9;Ve+="S")p(Ve,Hr);function _o(e,t){t[Ae]=b(("0."+e)*1e3)}for(Ve="S";Ve.length<=9;Ve+="S")W(Ve,_o);var po=Xe("Milliseconds",!1);g("z",0,0,"zoneAbbr");g("zz",0,0,"zoneName");function yo(){return this._isUTC?"UTC":""}function go(){return this._isUTC?"Coordinated Universal Time":""}var c=ut.prototype;c.add=xl;c.calendar=Tl;c.clone=Rl;c.diff=Il;c.endOf=ql;c.format=El;c.from=Al;c.fromNow=Gl;c.to=jl;c.toNow=zl;c.get=qr;c.invalidAt=no;c.isAfter=$l;c.isBefore=Fl;c.isBetween=Wl;c.isSame=Vl;c.isSameOrAfter=Ll;c.isSameOrBefore=Ul;c.isValid=ao;c.lang=$s;c.locale=Rs;c.localeData=Fs;c.max=ll;c.min=il;c.parsingFlags=so;c.set=Jr;c.startOf=Zl;c.subtract=Pl;c.toArray=Xl;c.toObject=eo;c.toDate=Kl;c.toISOString=Nl;c.inspect=Bl;c.toJSON=to;c.toString=Hl;c.unix=Ql;c.valueOf=Jl;c.creationData=ro;c.year=us;c.isLeapYear=Zr;c.weekYear=io;c.isoWeekYear=lo;c.quarter=c.quarters=fo;c.month=vs;c.daysInMonth=si;c.week=c.weeks=hi;c.isoWeek=c.isoWeeks=mi;c.weeksInYear=uo;c.isoWeeksInYear=oo;c.date=Vs;c.day=c.days=Di;c.weekday=Mi;c.isoWeekday=Oi;c.dayOfYear=ho;c.hour=c.hours=Li;c.minute=c.minutes=mo;c.second=c.seconds=vo;c.millisecond=c.milliseconds=po;c.utcOffset=vl;c.utc=pl;c.local=yl;c.parseZone=gl;c.hasAlignedHourOffset=wl;c.isDST=kl;c.isLocal=Sl;c.isUtcOffset=Dl;c.isUtc=Ps;c.isUTC=Ps;c.zoneAbbr=yo;c.zoneName=go;c.dates=oe("dates accessor is deprecated. Use date instead.",Vs);c.months=oe("months accessor is deprecated. Use month instead",vs);c.years=oe("years accessor is deprecated. Use year instead",us);c.zone=oe("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",_l);c.isDSTShifted=oe("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",bl);function wo(e){return L(e*1e3)}function ko(){return L.apply(null,arguments).parseZone()}function Ls(e){return e}var T=la.prototype;T.calendar=Or;T.longDateFormat=xr;T.invalidDate=Cr;T.ordinal=$r;T.preparse=Ls;T.postformat=Ls;T.relativeTime=Wr;T.pastFuture=Vr;T.set=Dr;T.months=Xr;T.monthsShort=ei;T.monthsParse=ai;T.monthsRegex=li;T.monthsShortRegex=ri;T.week=di;T.firstDayOfYear=fi;T.firstDayOfWeek=ci;T.weekdays=yi;T.weekdaysMin=ki;T.weekdaysShort=gi;T.weekdaysParse=Si;T.weekdaysRegex=xi;T.weekdaysShortRegex=Ci;T.weekdaysMinRegex=Ri;T.isPM=Fi;T.meridiem=Vi;function Dt(e,t,a,s){var n=Ie(),r=Se().set(s,t);return n[a](r,e)}function Us(e,t,a){if(ze(e)&&(t=e,e=void 0),e=e||"",t!=null)return Dt(e,t,a,"month");var s,n=[];for(s=0;s<12;s++)n[s]=Dt(e,s,a,"month");return n}function ga(e,t,a,s){typeof e=="boolean"?(ze(t)&&(a=t,t=void 0),t=t||""):(t=e,a=t,e=!1,ze(t)&&(a=t,t=void 0),t=t||"");var n=Ie(),r=e?n._week.dow:0;if(a!=null)return Dt(t,(a+r)%7,s,"day");var l,f=[];for(l=0;l<7;l++)f[l]=Dt(t,(l+r)%7,s,"day");return f}function bo(e,t){return Us(e,t,"months")}function So(e,t){return Us(e,t,"monthsShort")}function Do(e,t,a){return ga(e,t,a,"weekdays")}function Mo(e,t,a){return ga(e,t,a,"weekdaysShort")}function Oo(e,t,a){return ga(e,t,a,"weekdaysMin")}et("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,a=b(e%100/10)===1?"th":t===1?"st":t===2?"nd":t===3?"rd":"th";return e+a}});h.lang=oe("moment.lang is deprecated. Use moment.locale instead.",et);h.langData=oe("moment.langData is deprecated. Use moment.localeData instead.",Ie);var Oe=Math.abs;function Yo(){var e=this._data;return this._milliseconds=Oe(this._milliseconds),this._days=Oe(this._days),this._months=Oe(this._months),e.milliseconds=Oe(e.milliseconds),e.seconds=Oe(e.seconds),e.minutes=Oe(e.minutes),e.hours=Oe(e.hours),e.months=Oe(e.months),e.years=Oe(e.years),this}function Is(e,t,a,s){var n=_e(t,a);return e._milliseconds+=s*n._milliseconds,e._days+=s*n._days,e._months+=s*n._months,e._bubble()}function xo(e,t){return Is(this,e,t,1)}function Po(e,t){return Is(this,e,t,-1)}function $a(e){return e<0?Math.floor(e):Math.ceil(e)}function Co(){var e=this._milliseconds,t=this._days,a=this._months,s=this._data,n,r,l,f,o;return e>=0&&t>=0&&a>=0||e<=0&&t<=0&&a<=0||(e+=$a(aa(a)+t)*864e5,t=0,a=0),s.milliseconds=e%1e3,n=re(e/1e3),s.seconds=n%60,r=re(n/60),s.minutes=r%60,l=re(r/60),s.hours=l%24,t+=re(l/24),o=re(Hs(t)),a+=o,t-=$a(aa(o)),f=re(a/12),a%=12,s.days=t,s.months=a,s.years=f,this}function Hs(e){return e*4800/146097}function aa(e){return e*146097/4800}function To(e){if(!this.isValid())return NaN;var t,a,s=this._milliseconds;if(e=de(e),e==="month"||e==="year")return t=this._days+s/864e5,a=this._months+Hs(t),e==="month"?a:a/12;switch(t=this._days+Math.round(aa(this._months)),e){case"week":return t/7+s/6048e5;case"day":return t+s/864e5;case"hour":return t*24+s/36e5;case"minute":return t*1440+s/6e4;case"second":return t*86400+s/1e3;case"millisecond":return Math.floor(t*864e5)+s;default:throw new Error("Unknown unit "+e)}}function Ro(){return this.isValid()?this._milliseconds+this._days*864e5+this._months%12*2592e6+b(this._months/12)*31536e6:NaN}function He(e){return function(){return this.as(e)}}var $o=He("ms"),Fo=He("s"),Wo=He("m"),Vo=He("h"),Lo=He("d"),Uo=He("w"),Io=He("M"),Ho=He("y");function No(){return _e(this)}function Bo(e){return e=de(e),this.isValid()?this[e+"s"]():NaN}function Ze(e){return function(){return this.isValid()?this._data[e]:NaN}}var Eo=Ze("milliseconds"),Ao=Ze("seconds"),Go=Ze("minutes"),jo=Ze("hours"),zo=Ze("days"),Zo=Ze("months"),qo=Ze("years");function Jo(){return re(this.days()/7)}var Fe=Math.round,we={ss:44,s:45,m:45,h:22,d:26,M:11};function Qo(e,t,a,s,n){return n.relativeTime(t||1,!!a,e,s)}function Ko(e,t,a){var s=_e(e).abs(),n=Fe(s.as("s")),r=Fe(s.as("m")),l=Fe(s.as("h")),f=Fe(s.as("d")),o=Fe(s.as("M")),y=Fe(s.as("y")),v=n<=we.ss&&["s",n]||n0,v[4]=a,Qo.apply(null,v)}function Xo(e){return e===void 0?Fe:typeof e=="function"?(Fe=e,!0):!1}function ed(e,t){return we[e]===void 0?!1:t===void 0?we[e]:(we[e]=t,e==="s"&&(we.ss=t-1),!0)}function td(e){if(!this.isValid())return this.localeData().invalidDate();var t=this.localeData(),a=Ko(this,!e,t);return e&&(a=t.pastFuture(+this,a)),t.postformat(a)}var Gt=Math.abs;function qe(e){return(e>0)-(e<0)||+e}function Vt(){if(!this.isValid())return this.localeData().invalidDate();var e=Gt(this._milliseconds)/1e3,t=Gt(this._days),a=Gt(this._months),s,n,r;s=re(e/60),n=re(s/60),e%=60,s%=60,r=re(a/12),a%=12;var l=r,f=a,o=t,y=n,v=s,P=e?e.toFixed(3).replace(/\.?0+$/,""):"",U=this.asSeconds();if(!U)return"P0D";var K=U<0?"-":"",Re=qe(this._months)!==qe(U)?"-":"",Me=qe(this._days)!==qe(U)?"-":"",O=qe(this._milliseconds)!==qe(U)?"-":"";return K+"P"+(l?Re+l+"Y":"")+(f?Re+f+"M":"")+(o?Me+o+"D":"")+(y||v||P?"T":"")+(y?O+y+"H":"")+(v?O+v+"M":"")+(P?O+P+"S":"")}var D=Ft.prototype;D.isValid=fl;D.abs=Yo;D.add=xo;D.subtract=Po;D.as=To;D.asMilliseconds=$o;D.asSeconds=Fo;D.asMinutes=Wo;D.asHours=Vo;D.asDays=Lo;D.asWeeks=Uo;D.asMonths=Io;D.asYears=Ho;D.valueOf=Ro;D._bubble=Co;D.clone=No;D.get=Bo;D.milliseconds=Eo;D.seconds=Ao;D.minutes=Go;D.hours=jo;D.days=zo;D.weeks=Jo;D.months=Zo;D.years=qo;D.humanize=td;D.toISOString=Vt;D.toString=Vt;D.toJSON=Vt;D.locale=Rs;D.localeData=Fs;D.toIsoString=oe("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Vt);D.lang=$s;g("X",0,0,"unix");g("x",0,0,"valueOf");p("x",Ct);p("X",Br);W("X",function(e,t,a){a._d=new Date(parseFloat(e,10)*1e3)});W("x",function(e,t,a){a._d=new Date(b(e))});//! moment.js +//! version : 2.19.1 +//! authors : Tim Wood, Iskren Chernev, Moment.js contributors +//! license : MIT +//! momentjs.com +h.version="2.19.1";kr(L);h.fn=c;h.min=ol;h.max=dl;h.now=ul;h.utc=Se;h.unix=wo;h.months=bo;h.isDate=Mt;h.locale=et;h.invalid=Ot;h.duration=_e;h.isMoment=Ue;h.weekdays=Do;h.parseZone=ko;h.localeData=Ie;h.isDuration=Xt;h.monthsShort=So;h.weekdaysMin=Oo;h.defineLocale=ha;h.updateLocale=Ii;h.locales=Hi;h.weekdaysShort=Mo;h.normalizeUnits=de;h.relativeTimeRounding=Xo;h.relativeTimeThreshold=ed;h.calendarFormat=Cl;h.prototype=c;function Ld(e){return Ia.stringify(Sn(e),{addQueryPrefix:!0,arrayFormat:"indices",encodeValuesOnly:!0,skipNulls:!0,encoder:(t,a)=>typeof t=="boolean"?String(Number(t)):a(t)})}function Ud(e){return Ia.parse(e,{ignoreQueryPrefix:!0,strictNullHandling:!0})}const ad=["innerHTML"],Id=k({__name:"Content",props:{html:{}},setup(e){const t=e,a=ie(),s=S(()=>{var l;return(l=t.html)==null?void 0:l.replaceAll('title="','data-title="')}),n=S(()=>{var l;return(l=t.html)==null?void 0:l.includes("(d(),x("div",{onClick:r,onMouseover:f[0]||(f[0]=o=>a.value=o.target.closest("[data-title]")),onMouseout:f[1]||(f[1]=o=>a.value=null)},[_(i(Ea),null,{default:u(()=>{var o;return[_(i(Ha),{open:!!((o=a.value)!=null&&o.dataset.title)},{default:u(()=>[_(i(Na),{"as-child":""},{default:u(()=>[n.value?(d(),m(sr,{key:0,class:"content",template:s.value},null,8,["template"])):(d(),x("div",{key:1,class:"content",innerHTML:s.value},null,8,ad))]),_:1}),_(i(Ba),{class:"max-w-[--reka-tooltip-content-available-width] md:max-w-md","side-offset":12,"collision-boundary":a.value},{default:u(()=>{var y;return[Y(M((y=a.value)==null?void 0:y.dataset.title),1)]}),_:1},8,["collision-boundary"])]),_:1},8,["open"])]}),_:1})],32))}});function sd(){return Aa(On(Yn))}const nd=k({__name:"CheckFilter",props:{filter:{},value:{},valuated:{type:Boolean},disabled:{type:Boolean},inline:{type:Boolean}},emits:["input"],setup(e,{emit:t}){const a=e,s=t;return(n,r)=>(d(),m(i(fe),{as:"div",class:"relative h-8 border",variant:"outline",size:"sm"},{default:u(()=>[_(i(sa),{class:"flex items-center gap-2"},{default:u(()=>[r[1]||(r[1]=te("span",{class:"absolute inset-0"},null,-1)),_(i(Ga),{"model-value":a.value,"onUpdate:modelValue":r[0]||(r[0]=l=>s("input",l))},null,8,["model-value"]),Y(" "+M(a.filter.label),1)]),_:1})]),_:1}))}}),rd={class:"flex flex-col gap-y-4 mt-4 sm:flex-row sm:gap-x-4 sm:gap-y-0"},id=k({__name:"RangeCalendar",props:{defaultPlaceholder:{},defaultValue:{},modelValue:{},placeholder:{},allowNonContiguousRanges:{type:Boolean},pagedNavigation:{type:Boolean},preventDeselect:{type:Boolean},weekStartsOn:{},weekdayFormat:{},calendarLabel:{},fixedWeeks:{type:Boolean},maxValue:{},minValue:{},locale:{},numberOfMonths:{},disabled:{type:Boolean},readonly:{type:Boolean},initialFocus:{type:Boolean},isDateDisabled:{type:Function},isDateUnavailable:{type:Function},dir:{},nextPage:{type:Function},prevPage:{type:Function},asChild:{type:Boolean},as:{},class:{}},emits:["update:modelValue","update:placeholder","update:startValue"],setup(e,{emit:t}){const a=e,s=t,n=S(()=>{const{class:l,...f}=a;return f}),r=xn(n,s);return(l,f)=>(d(),m(i(ur),j({class:i(X)("p-3",a.class)},i(r)),{default:u(({grid:o,weekDays:y})=>[_(i(hd),null,{default:u(()=>[_(i(_d)),_(i(md)),_(i(vd))]),_:1}),te("div",rd,[(d(!0),x(z,null,Ye(o,v=>(d(),m(i(dd),{key:v.value.toString()},{default:u(()=>[_(i(cd),null,{default:u(()=>[_(i(Fa),null,{default:u(()=>[(d(!0),x(z,null,Ye(y,P=>(d(),m(i(fd),{key:P},{default:u(()=>[Y(M(P),1)]),_:2},1024))),128))]),_:2},1024)]),_:2},1024),_(i(ud),null,{default:u(()=>[(d(!0),x(z,null,Ye(v.rows,(P,U)=>(d(),m(i(Fa),{key:`weekDate-${U}`,class:"mt-2 w-full"},{default:u(()=>[(d(!0),x(z,null,Ye(P,K=>(d(),m(i(ld),{key:K.toString(),date:K},{default:u(()=>[_(i(od),{day:K,month:v.value},null,8,["day","month"])]),_:2},1032,["date"]))),128))]),_:2},1024))),128))]),_:2},1024)]),_:2},1024))),128))])]),_:1},16,["class"]))}}),ld=k({__name:"RangeCalendarCell",props:{date:{},asChild:{type:Boolean},as:{},class:{}},setup(e){const t=e,a=S(()=>{const{class:n,...r}=t;return r}),s=Te(a);return(n,r)=>(d(),m(i(hr),j({class:i(X)("relative h-9 w-9 p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([data-selected])]:bg-accent first:[&:has([data-selected])]:rounded-l-md last:[&:has([data-selected])]:rounded-r-md [&:has([data-selected][data-outside-month])]:bg-accent/50 [&:has([data-selected][data-selection-end])]:rounded-r-md [&:has([data-selected][data-selection-start])]:rounded-l-md",t.class)},i(s)),{default:u(()=>[C(n.$slots,"default")]),_:3},16,["class"]))}}),od=k({__name:"RangeCalendarCellTrigger",props:{day:{},month:{},asChild:{type:Boolean},as:{},class:{}},setup(e){const t=e,a=S(()=>{const{class:n,...r}=t;return r}),s=Te(a);return(n,r)=>(d(),m(i(wr),j({class:i(X)(i(na)({variant:"ghost"}),"h-9 w-9 p-0 font-normal data-[selected]:opacity-100","[&[data-today]:not([data-selected])]:bg-accent [&[data-today]:not([data-selected])]:text-accent-foreground","data-[selection-start]:bg-primary data-[selection-start]:text-primary-foreground data-[selection-start]:hover:bg-primary data-[selection-start]:hover:text-primary-foreground data-[selection-start]:focus:bg-primary data-[selection-start]:focus:text-primary-foreground","data-[selection-end]:bg-primary data-[selection-end]:text-primary-foreground data-[selection-end]:hover:bg-primary data-[selection-end]:hover:text-primary-foreground data-[selection-end]:focus:bg-primary data-[selection-end]:focus:text-primary-foreground","data-[outside-month]:pointer-events-none data-[outside-month]:text-muted-foreground data-[outside-month]:opacity-50 [&[data-outside-month][data-selected]]:bg-accent/50 [&[data-outside-month][data-selected]]:text-muted-foreground [&[data-outside-month][data-selected]]:opacity-30","data-[disabled]:text-muted-foreground data-[disabled]:opacity-50","data-[unavailable]:text-destructive-foreground data-[unavailable]:line-through",t.class)},i(s)),{default:u(()=>[C(n.$slots,"default")]),_:3},16,["class"]))}}),dd=k({__name:"RangeCalendarGrid",props:{asChild:{type:Boolean},as:{},class:{}},setup(e){const t=e,a=S(()=>{const{class:n,...r}=t;return r}),s=Te(a);return(n,r)=>(d(),m(i(fr),j({class:i(X)("w-full border-collapse space-y-1",t.class)},i(s)),{default:u(()=>[C(n.$slots,"default")]),_:3},16,["class"]))}}),ud=k({__name:"RangeCalendarGridBody",props:{asChild:{type:Boolean},as:{}},setup(e){const t=e;return(a,s)=>(d(),m(i(yr),le(be(t)),{default:u(()=>[C(a.$slots,"default")]),_:3},16))}}),cd=k({__name:"RangeCalendarGridHead",props:{asChild:{type:Boolean},as:{}},setup(e){const t=e;return(a,s)=>(d(),m(i(pr),le(be(t)),{default:u(()=>[C(a.$slots,"default")]),_:3},16))}}),Fa=k({__name:"RangeCalendarGridRow",props:{asChild:{type:Boolean},as:{},class:{}},setup(e){const t=e,a=S(()=>{const{class:n,...r}=t;return r}),s=Te(a);return(n,r)=>(d(),m(i(gr),j({class:i(X)("flex mt-2 w-full",t.class)},i(s)),{default:u(()=>[C(n.$slots,"default")]),_:3},16,["class"]))}}),fd=k({__name:"RangeCalendarHeadCell",props:{asChild:{type:Boolean},as:{},class:{}},setup(e){const t=e,a=S(()=>{const{class:n,...r}=t;return r}),s=Te(a);return(n,r)=>(d(),m(i(mr),j({class:i(X)("w-9 rounded-md text-[0.8rem] font-normal text-muted-foreground",t.class)},i(s)),{default:u(()=>[C(n.$slots,"default")]),_:3},16,["class"]))}}),hd=k({__name:"RangeCalendarHeader",props:{asChild:{type:Boolean},as:{},class:{}},setup(e){const t=e,a=S(()=>{const{class:n,...r}=t;return r}),s=Te(a);return(n,r)=>(d(),m(i(rr),j({class:i(X)("relative flex w-full items-center justify-between pt-1",t.class)},i(s)),{default:u(()=>[C(n.$slots,"default")]),_:3},16,["class"]))}}),md=k({__name:"RangeCalendarHeading",props:{asChild:{type:Boolean},as:{},class:{}},setup(e){const t=e,a=S(()=>{const{class:n,...r}=t;return r}),s=Te(a);return(n,r)=>(d(),m(i(cr),j({class:i(X)("text-sm font-medium",t.class)},i(s)),{default:u(({headingValue:l})=>[C(n.$slots,"default",{headingValue:l},()=>[Y(M(l),1)])]),_:3},16,["class"]))}}),vd=k({__name:"RangeCalendarNextButton",props:{nextPage:{type:Function},asChild:{type:Boolean},as:{},class:{}},setup(e){const t=e,a=S(()=>{const{class:n,...r}=t;return r}),s=Te(a);return(n,r)=>(d(),m(i(vr),j({class:i(X)(i(na)({variant:"outline"}),"h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100",t.class)},i(s)),{default:u(()=>[C(n.$slots,"default",{},()=>[_(i(Pn),{class:"h-4 w-4"})])]),_:3},16,["class"]))}}),_d=k({__name:"RangeCalendarPrevButton",props:{prevPage:{type:Function},asChild:{type:Boolean},as:{},class:{}},setup(e){const t=e,a=S(()=>{const{class:n,...r}=t;return r}),s=Te(a);return(n,r)=>(d(),m(i(_r),j({class:i(X)(i(na)({variant:"outline"}),"h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100",t.class)},i(s)),{default:u(()=>[C(n.$slots,"default",{},()=>[_(i(Cn),{class:"h-4 w-4"})])]),_:3},16,["class"]))}}),Wa=k({__name:"DateRangeFilterValue",props:{filter:{},value:{},valuated:{type:Boolean},disabled:{type:Boolean},inline:{type:Boolean}},setup(e){const t=e;return(a,s)=>"start"in t.value?(d(),m(i(wt),{key:0,variant:"secondary",class:"rounded-sm px-1 font-normal"},{default:u(()=>[t.value.end?(d(),x(z,{key:0},[Y(M(t.value.formatted.start)+" - "+M(t.value.formatted.end),1)],64)):(d(),x(z,{key:1},[Y(M(t.value.formatted.start),1)],64))]),_:1})):q("",!0)}}),pd={key:1,class:"text-muted-foreground"},yd={class:"flex"},gd={key:0,class:"flex flex-col shrink-0 p-3"},wd={class:"flex-1 min-w-0"},kd={class:"grid grid-cols-1 gap-4 p-3",key:"footer"},bd={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},Sd={class:"flex flex-col md:flex-row justify-end gap-3 pt-0"},Dd=k({__name:"DateRangeFilter",props:{filter:{},value:{},valuated:{type:Boolean},disabled:{type:Boolean},inline:{type:Boolean}},emits:["input"],setup(e,{emit:t}){const a=e,s=t,n=ie(),r=Aa({start:"",end:""}),l=ie(0),f=ie(!1);gt(()=>a.value,()=>o());function o(){var O,R,ee,A;n.value={start:(O=a.value)!=null&&O.start?_t(a.value.start):null,end:(R=a.value)!=null&&R.end?_t(a.value.end):null},r.start=(ee=n.value.start)==null?void 0:ee.toString(),r.end=(A=n.value.end)==null?void 0:A.toString(),l.value++}function y(){o()}function v(O){f.value=!1,s("input",{preset:O.key})}function P(){f.value=!1,s("input",n.value.start&&n.value.end?{start:n.value.start.toString(),end:n.value.end.toString()}:null)}function U(){var O,R;r.start=((O=n.value.start)==null?void 0:O.toString())??"",r.end=((R=n.value.end)==null?void 0:R.toString())??""}function K(){f.value=!1,s("input",null)}function Re(){l.value++,n.value.start=r.start?_t(r.start):null,r.end||(r.end=r.start,n.value.end=n.value.start)}function Me(){l.value++,n.value.end=r.end?_t(r.end):null,r.start||(r.start=r.end,n.value.start=n.value.end)}return(O,R)=>(d(),x("div",null,[O.inline?q("",!0):(d(),m(i(sa),{key:0},{default:u(()=>[Y(M(O.filter.label),1)]),_:1})),_(i(qa),{open:f.value,"onUpdate:open":[R[4]||(R[4]=ee=>f.value=ee),R[5]||(R[5]=ee=>ee&&y())],modal:!O.inline},{default:u(()=>[_(i(ja),{"as-child":""},{default:u(()=>[O.inline?(d(),m(i(fe),{key:0,variant:"outline",size:"sm",class:"h-8 gap-2 transition-shadow data-[state=open]:shadow-md",disabled:O.disabled},{default:u(()=>[_(i(Oa),{class:"h-4 w-4 opacity-50"}),Y(" "+M(O.filter.label)+" ",1),a.value&&"start"in a.value?(d(),x(z,{key:0},[_(i(za),{orientation:"vertical",class:"h-4"}),_(Wa,le(be(a)),null,16)],64)):q("",!0)]),_:1},8,["disabled"])):(d(),m(i(fe),{key:1,class:"mt-2 w-full text-left justify-between font-normal",variant:"outline",size:"sm",disabled:O.disabled},{default:u(()=>[a.value&&"start"in a.value?(d(),m(Wa,le(j({key:0},a)),null,16)):(d(),x("span",pd,M(i(ae)("sharp::form.multiselect.placeholder")),1)),_(i(Oa),{class:"ml-2 h-4 w-4 stroke-[1.25]"})]),_:1},8,["disabled"]))]),_:1}),_(i(Za),{class:Le(i(X)("w-auto p-0",O.inline?"":"w-[--reka-popover-trigger-width]"))},{default:u(()=>{var ee;return[te("div",yd,[(ee=O.filter.presets)!=null&&ee.length?(d(),x("div",gd,[(d(!0),x(z,null,Ye(O.filter.presets,A=>{var Ne;return d(),m(i(fe),{class:Le(["text-left justify-start",{"bg-accent text-accent-foreground":A.key===((Ne=a.value)==null?void 0:Ne.preset)}]),size:"sm",variant:"ghost",onClick:tt=>v(A)},{default:u(()=>[Y(M(A.label),1)]),_:2},1032,["class","onClick"])}),256))])):q("",!0),te("div",wd,[(d(),m(i(id),{class:Le(O.inline?"hidden md:block":"hidden"),modelValue:n.value,"onUpdate:modelValue":[R[0]||(R[0]=A=>n.value=A),U],"number-of-months":2,locale:O.window.navigator.language,"week-starts-on":a.filter.mondayFirst?1:0,"onUpdate:startValue":R[1]||(R[1]=A=>n.value.start=A),key:l.value},null,8,["class","modelValue","locale","week-starts-on"])),te("div",kd,[te("div",bd,[_(i(Ya),{class:"block",type:"date",modelValue:r.start,"onUpdate:modelValue":[R[2]||(R[2]=A=>r.start=A),Re]},null,8,["modelValue"]),_(i(Ya),{class:"block",type:"date",modelValue:r.end,"onUpdate:modelValue":[R[3]||(R[3]=A=>r.end=A),Me]},null,8,["modelValue"])]),te("div",Sd,[n.value.end?(d(),m(i(fe),{key:0,class:"max-md:h-8",variant:"outline",onClick:K},{default:u(()=>[Y(M(i(ae)("sharp::filters.select.reset")),1)]),_:1})):q("",!0),_(i(fe),{class:"max-md:h-8",onClick:P},{default:u(()=>[Y(M(i(ae)("sharp::filters.daterange.confirm")),1)]),_:1})])])])])]}),_:1},8,["class"])]),_:1},8,["open","modal"])]))}}),Va=k({__name:"SelectFilterValue",props:{filter:{},value:{},valuated:{type:Boolean},disabled:{type:Boolean},inline:{type:Boolean}},setup(e){return(t,a)=>(d(),x("div",{class:Le(["flex gap-1",{"flex-wrap":!t.inline}])},[Array.isArray(t.value)?(d(),x(z,{key:0},[t.value.length>2?(d(),m(i(wt),{key:0,variant:"secondary",class:"rounded-sm px-1 font-normal"},{default:u(()=>[Y(M(t.value.length)+" selected ",1)]),_:1})):(d(!0),x(z,{key:1},Ye(t.filter.values.filter(s=>t.value.some(n=>s.id==n)),s=>(d(),m(i(wt),{key:s.id,variant:"secondary",class:"block rounded-sm px-1 font-normal max-w-52 truncate"},{default:u(()=>[Y(M(s.label),1)]),_:2},1024))),128))],64)):(d(),m(i(wt),{key:1,variant:"secondary",class:"block rounded-sm px-1 font-normal max-w-44 truncate"},{default:u(()=>{var s;return[Y(M((s=t.filter.values.find(n=>n.id==t.value))==null?void 0:s.label),1)]}),_:1}))],2))}}),Md={key:1,class:"text-muted-foreground"},Od={class:"max-w-80 line-clamp-2"},Yd={key:0,class:"sticky -bottom-px border-b border-transparent bg-popover"},xd=k({__name:"SelectFilter",props:{filter:{},value:{},valuated:{type:Boolean},disabled:{type:Boolean},inline:{type:Boolean}},emits:["input"],setup(e,{emit:t}){const a=e,s=t,n=ie(!1),r=S(()=>Array.isArray(a.value)?a.value.length:a.value!=null);function l(o){return Array.isArray(a.value)?!!a.value.find(y=>o.id==y):a.value==o.id}function f(o){if(a.filter.multiple){const y=a.filter.values.filter(v=>{var U;const P=(U=a.value)==null?void 0:U.find(K=>v.id==K);return v.id===o.id?!P:P}).map(v=>v.id);s("input",y)}else n.value=!1,s("input",a.value==o.id?null:o.id)}return(o,y)=>(d(),x("div",null,[o.inline?q("",!0):(d(),m(i(sa),{key:0},{default:u(()=>[Y(M(o.filter.label),1)]),_:1})),_(i(qa),{open:n.value,"onUpdate:open":y[1]||(y[1]=v=>n.value=v),modal:!o.inline},{default:u(()=>[_(i(ja),{"as-child":""},{default:u(()=>[o.inline?(d(),m(i(fe),{key:0,class:"relative text-left justify-start h-8 py-1.5 gap-2 transition-shadow data-[state=open]:shadow-md",variant:"outline",size:"sm",disabled:o.disabled},{default:u(()=>[Y(M(o.filter.label)+" ",1),r.value?(d(),x(z,{key:0},[_(i(za),{orientation:"vertical",class:"h-4"}),_(Va,le(be(a)),null,16)],64)):q("",!0),_(i(zt),{class:"-mr-0.5 w-4 h-4 opacity-50 shrink-0"})]),_:1},8,["disabled"])):(d(),m(i(fe),{key:1,class:"mt-2 h-auto min-h-9 w-full text-left justify-start font-normal py-1.5 gap-2",variant:"outline",size:"sm",disabled:o.disabled},{default:u(()=>[r.value?(d(),m(Va,le(j({key:0},a)),null,16)):(d(),x("span",Md,M(i(ae)("sharp::form.multiselect.placeholder")),1)),_(i(zt),{class:"ml-auto w-4 h-4 opacity-50 shrink-0"})]),_:1},8,["disabled"]))]),_:1}),_(i(Za),{class:Le(i(X)("p-0 w-auto min-w-[150px]",o.inline?"":"w-[--reka-popover-trigger-width]")),align:"start"},{default:u(()=>[_(i(Tn),{multiple:a.filter.multiple,"highlight-on-hover":""},{default:u(()=>[Rn(te("div",null,[_(i($n),{placeholder:i(ae)("sharp::form.multiselect.placeholder")},null,8,["placeholder"])],512),[[Fn,o.filter.searchable]]),_(i(Wn),null,{default:u(()=>[_(i(Vn),null,{default:u(()=>[Y(M(i(ae)("sharp::form.autocomplete.no_results_text")),1)]),_:1}),_(i(xa),null,{default:u(()=>[(d(!0),x(z,null,Ye(o.filter.values,v=>(d(),m(i(Pa),{key:v.id,class:"pr-6",value:v,onSelect:P=>f(v)},{default:u(()=>[o.filter.multiple?(d(),m(i(Ga),{key:0,class:Le({"opacity-50":!l(v)}),"model-value":l(v)},null,8,["class","model-value"])):q("",!0),o.filter.multiple?q("",!0):(d(),m(i(Ln),{key:1,class:Le(i(X)("h-4 w-4",l(v)?"opacity-100":"opacity-0"))},null,8,["class"])),te("div",Od,M(v.label),1)]),_:2},1032,["value","onSelect"]))),128))]),_:1}),r.value?(d(),x("div",Yd,[_(i(Un)),_(i(xa),null,{default:u(()=>[_(i(Pa),{value:{label:i(ae)("sharp::filters.select.reset")},class:"justify-center text-center font-medium",onSelect:y[0]||(y[0]=v=>{s("input",null),n.value=!1})},{default:u(()=>[Y(M(i(ae)("sharp::filters.select.reset")),1)]),_:1},8,["value"])]),_:1})])):q("",!0)]),_:1})]),_:1},8,["multiple"])]),_:1},8,["class"])]),_:1},8,["open","modal"])]))}}),Hd=k({__name:"Filter",props:{filter:{},value:{},valuated:{type:Boolean},disabled:{type:Boolean},inline:{type:Boolean}},setup(e){const t=e,a={check:nd,daterange:Dd,select:xd};return(s,n)=>(d(),m(Ja(a[s.filter.type]),le(be(t)),null,16))}}),Pd=["srcdoc"],Cd=k({__name:"CommandViewPanel",props:{commands:{}},setup(e){return(t,a)=>{var s;return d(),m(i(Bn),{open:((s=t.commands.state.currentCommandResponse)==null?void 0:s.action)==="view","onUpdate:open":a[0]||(a[0]=n=>!n&&t.$nextTick(()=>t.commands.finish()))},{default:u(()=>[_(i(Nn),{class:"w-[calc(100%-2.5rem)] sm:w-3/4 sm:max-w-none",side:"left"},{close:u(()=>[_(i(In),{class:"absolute right-0 translate-x-full text-white top-0 p-2 md:p-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary"},{default:u(()=>[_(i(Hn),{class:"size-6"})]),_:1})]),default:u(()=>{var n;return[((n=t.commands.state.currentCommandResponse)==null?void 0:n.action)==="view"?(d(),x("iframe",{key:0,class:"absolute inset-0 size-full border-0",srcdoc:t.commands.state.currentCommandResponse.html,sandbox:"allow-forms allow-scripts allow-same-origin allow-popups allow-modals allow-downloads"},null,8,Pd)):q("",!0)]}),_:1})]),_:1},8,["open"])}}}),Td=k({__name:"CommandFormModal",props:{commands:{}},setup(e){const t=e,a=ie(),s=ie(!1),n=ie(0);return En(()=>{s.value=!!t.commands.state.currentCommandForm,n.value++}),(r,l)=>{const f=An("SharpForm");return d(),m(i(Kn),{open:s.value,"onUpdate:open":[l[4]||(l[4]=o=>s.value=o),l[5]||(l[5]=o=>!o&&r.$nextTick(()=>r.commands.finish()))]},{default:u(()=>[_(i(Qn),{class:"sm:max-w-[558px] gap-6",onPointerDownOutside:l[3]||(l[3]=Jn(()=>{},["prevent"]))},{default:u(()=>[r.commands.state.currentCommandForm?(d(),x(z,{key:0},[_(i(Gn),null,{default:u(()=>[_(i(jn),null,{default:u(()=>[Y(M(r.commands.state.currentCommandForm.config.title),1)]),_:1}),r.commands.state.currentCommandForm.config.description?(d(),m(i(zn),{key:0,as:"div",innerHTML:r.commands.state.currentCommandForm.config.description},null,8,["innerHTML"])):q("",!0)]),_:1}),te("div",null,[(d(),m(f,{"post-fn":o=>r.commands.postForm(o),form:r.commands.state.currentCommandForm,onLoading:l[0]||(l[0]=o=>r.commands.state.currentCommandFormLoading=o),key:`form-${n.value}`,inline:"",ref_key:"form",ref:a},null,8,["post-fn","form"]))]),_(i(Zn),null,{default:u(()=>[_(i(qn),{"as-child":""},{default:u(()=>[_(i(fe),{variant:"outline"},{default:u(()=>[Y(M(i(ae)("sharp::modals.cancel_button")),1)]),_:1})]),_:1}),r.commands.state.currentCommandForm.config.showSubmitAndReopenButton?(d(),m(i(fe),{key:0,variant:"secondary",disabled:r.commands.state.currentCommandFormLoading,onClick:l[1]||(l[1]=o=>a.value.submit({_shouldReopen:!0}))},{default:u(()=>[Y(M(r.commands.state.currentCommandForm.config.submitAndReopenButtonLabel??i(ae)("sharp::modals.command.submit_and_reopen_button")),1)]),_:1},8,["disabled"])):q("",!0),_(i(fe),{disabled:r.commands.state.currentCommandFormLoading,onClick:l[2]||(l[2]=o=>a.value.submit())},{default:u(()=>[Y(M(r.commands.state.currentCommandForm.config.buttonLabel??i(ae)("sharp::modals.command.submit_button")),1)]),_:1},8,["disabled"])]),_:1})],64)):q("",!0)]),_:1})]),_:1},8,["open"])}}}),Nd=k({__name:"WithCommands",props:{commands:{}},setup(e){return(t,a)=>(d(),x(z,null,[C(t.$slots,"default"),_(Cd,{commands:t.commands},null,8,["commands"]),_(Td,{commands:t.commands},null,8,["commands"])],64))}}),Rd={key:0,class:"text-xs text-muted-foreground"},Bd=k({__name:"CommandDropdownItems",props:{commands:{},selecting:{type:Boolean}},emits:["select"],setup(e){const t=e;function a(n){return!t.selecting&&n.instance_selection==="required"}const s=sd();return(n,r)=>{var l;return d(!0),x(z,null,Ye((l=n.commands)==null?void 0:l.filter(f=>f.length>0),(f,o)=>(d(),x(z,null,[o>0?(d(),m(i(Xn),{key:0,class:"first:hidden"})):q("",!0),_(i(ar),{class:"max-w-sm"},{default:u(()=>[_(i(Ea),null,{default:u(()=>[(d(!0),x(z,null,Ye(f,y=>(d(),m(i(Ha),{key:y.key,"delay-duration":0},{default:u(()=>[(d(),m(Ja(a(y)?i(Na):"div"),{onTouchend:v=>a(y)&&i(er)(i(ae)("sharp::entity_list.commands.needs_selection_message"),{highlightElement:v.target}),as:"div"},{default:u(()=>[_(i(tr),{onClick:v=>n.$emit("select",y),disabled:a(y)},{default:u(()=>[te("div",null,[Y(M(y.label)+" ",1),y.description?(d(),x("div",Rd,M(y.description),1)):q("",!0)])]),_:2},1032,["onClick","disabled"])]),_:2},1064,["onTouchend"])),_(i(Ba),{class:"max-w-sm",side:i(s).md?"left":"bottom"},{default:u(()=>[Y(M(i(ae)("sharp::entity_list.commands.needs_selection_message")),1)]),_:1},8,["side"])]),_:2},1024))),128))]),_:2},1024)]),_:2},1024)],64))),256)}}}),Ed=k({__name:"DropdownChevronDown",setup(e){return(t,a)=>(d(),m(i(zt),{class:Le(i(X)("size-4 opacity-50 ml-1.5 -mr-0.5",t.$attrs.class))},null,8,["class"]))}});export{Wd as F,Id as _,Vd as a,Ed as b,Bd as c,Nd as d,Hd as e,Ud as p,Ld as s,sd as u}; diff --git a/dist/assets/EntityList-B5ut03Gg.js b/dist/assets/EntityList-B5ut03Gg.js new file mode 100644 index 000000000..8aaebf90e --- /dev/null +++ b/dist/assets/EntityList-B5ut03Gg.js @@ -0,0 +1 @@ +import{d as v,r as l,ai as h,ax as L,ay as V,ar as S,c as g,w as n,az as w,o as q,a as o,u,O as C,b as $,t as k,aK as c}from"./sharp-DDNPuC1w.js";import{E as f,_ as E}from"./EntityList-CrgsiVon.js";import{_ as F}from"./Title.vue_vue_type_script_setup_true_lang-MxfiLW2l.js";import{s as m}from"./DropdownChevronDown.vue_vue_type_script_setup_true_lang-DZQFkxFU.js";import{_ as K}from"./PageBreadcrumb.vue_vue_type_script_setup_true_lang-D6ipke--.js";import"./CardDescription.vue_vue_type_script_setup_true_lang-BVFKuiG8.js";import"./TemplateRenderer.vue_vue_type_script_setup_true_lang-td6RXtbk.js";const G=v({__name:"EntityList",props:{entityList:{},breadcrumb:{}},setup(p){const r=p,s=l().params.entityKey,t=h(new f(r.entityList,s)),a=L(t.value.config.filters,t.value.filterValues),d=V("entityList",{refresh:(e,{formModal:i})=>{t.value=t.value.withRefreshedItems(e.items),i.shouldReopen&&i.reopen()}});S(()=>r.entityList,()=>{t.value=new f(r.entityList,s),a.update(r.entityList.config.filters,r.entityList.filterValues)});function y(e){m(t.value.query)!==m(e)&&c.visit(l("code16.sharp.list",{entityKey:s})+m(e),{preserveState:!0,preserveScroll:!1})}function b(e,i){c.post(l("code16.sharp.list.filters.store",{entityKey:s}),{filterValues:a.nextValues(e,i),query:t.value.query},{preserveState:!0,preserveScroll:!1})}function _(){c.post(l("code16.sharp.list.filters.store",{entityKey:s}),{filterValues:a.defaultValues(a.rootFilters),query:{...t.value.query,search:null}},{preserveState:!0,preserveScroll:!1})}return(e,i)=>(q(),g(w,null,{breadcrumb:n(()=>[o(K,{breadcrumb:e.breadcrumb},null,8,["breadcrumb"])]),default:n(()=>[o(F,{breadcrumb:e.breadcrumb},null,8,["breadcrumb"]),o(E,{"entity-key":u(s),"entity-list":t.value,filters:u(a),commands:u(d),title:e.breadcrumb.items[0].label,onReset:_,onFilterChange:b,"onUpdate:query":y},{"card-header":n(()=>[o(u(C),null,{default:n(()=>[$(k(e.breadcrumb.items[0].label),1)]),_:1})]),_:1},8,["entity-key","entity-list","filters","commands","title"])]),_:1}))}});export{G as default}; diff --git a/dist/assets/EntityList-CrgsiVon.js b/dist/assets/EntityList-CrgsiVon.js new file mode 100644 index 000000000..9d9c89a5f --- /dev/null +++ b/dist/assets/EntityList-CrgsiVon.js @@ -0,0 +1,21 @@ +import{b9 as Ce,d as T,ai as R,aq as De,ba as ft,bb as J,o as c,c as y,w as r,q as I,u as e,aL as le,P as oe,x as Ie,bc as pt,an as ue,A as w,j as E,a as f,v as Y,b as A,F as B,bd as ht,be as $e,bf as ie,y as W,bg as Ze,bh as Ue,bi as vt,bj as Oe,ar as Q,i as L,bk as mt,k as O,bl as yt,t as _,_ as D,D as bt,G as gt,H as ae,B as wt,bm as _t,U as q,I as kt,z as G,bn as St,bo as Lt,m as Ct,bp as $t,bq as Et,n as et,br as zt,bs as Rt,bt as At,bu as Pt,bv as tt,bw as Bt,as as Tt,bx as Dt,by as he,bz as It,bA as Ve,bB as at,bC as Ut,bD as qt,bE as Ft,bF as Ht,bG as Ot,aT as Vt,aH as me,aI as ye,a$ as be,a_ as ge,aJ as we,r as X,aO as re,aA as Wt,Q as Kt,bH as We,b3 as _e,b7 as ke,aB as Xt,aC as Mt,aD as Yt,aE as jt,aF as Nt,aG as Ke,X as Xe,R as xt,S as Gt,b0 as Qt,aK as Jt,aQ as Ae,aR as Zt,K as ea,b2 as Me,W as ta,bI as aa,bJ as na,aV as sa,aW as la,aX as ra,aY as oa,aZ as ia,b8 as ua,b1 as ca}from"./sharp-DDNPuC1w.js";import{u as da,b as Ye,c as je,a as fa,F as pa,d as ha,e as Ne,_ as va}from"./DropdownChevronDown.vue_vue_type_script_setup_true_lang-DZQFkxFU.js";import{_ as ma}from"./CardDescription.vue_vue_type_script_setup_true_lang-BVFKuiG8.js";/** + * @license lucide-vue-next v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ya=Ce("ArrowDownIcon",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);/** + * @license lucide-vue-next v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ba=Ce("ArrowUpIcon",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);/** + * @license lucide-vue-next v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ga=Ce("ChevronsLeftIcon",[["path",{d:"m11 17-5-5 5-5",key:"13zhaf"}],["path",{d:"m18 17-5-5 5-5",key:"h8a8et"}]]);/** + * @license lucide-vue-next v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const wa=Ce("ChevronsRightIcon",[["path",{d:"m6 17 5-5-5-5",key:"xnjwq"}],["path",{d:"m13 17 5-5-5-5",key:"17xmmf"}]]),[Z,_a]=Ie("ScrollAreaRoot"),ka=T({__name:"ScrollAreaRoot",props:{type:{default:"hover"},dir:{},scrollHideDelay:{default:600},asChild:{type:Boolean},as:{}},setup(i,{expose:t}){const a=i,s=R(0),u=R(0),d=R(),l=R(),o=R(),p=R(),h=R(!1),k=R(!1),{type:U,dir:C,scrollHideDelay:S}=De(a),F=ft(C);function M(){var g;(g=d.value)==null||g.scrollTo({top:0})}function j(){var g;(g=d.value)==null||g.scrollTo({top:0,left:0})}t({viewport:d,scrollTop:M,scrollTopLeft:j});const{forwardRef:v,currentElement:P}=J();return _a({type:U,dir:F,scrollHideDelay:S,scrollArea:P,viewport:d,onViewportChange:g=>{d.value=g||void 0},content:l,onContentChange:g=>{l.value=g},scrollbarX:o,scrollbarXEnabled:h,scrollbarY:p,scrollbarYEnabled:k,onScrollbarXChange:g=>{o.value=g||void 0},onScrollbarYChange:g=>{p.value=g||void 0},onScrollbarXEnabledChange:g=>{h.value=g},onScrollbarYEnabledChange:g=>{k.value=g},onCornerWidthChange:g=>{s.value=g},onCornerHeightChange:g=>{u.value=g}}),(g,$)=>(c(),y(e(oe),{ref:e(v),"as-child":a.asChild,as:g.as,dir:e(F),style:le({position:"relative","--reka-scroll-area-corner-width":`${s.value}px`,"--reka-scroll-area-corner-height":`${u.value}px`})},{default:r(()=>[I(g.$slots,"default")]),_:3},8,["as-child","as","dir","style"]))}}),Sa=T({inheritAttrs:!1,__name:"ScrollAreaViewport",props:{nonce:{},asChild:{type:Boolean},as:{}},setup(i,{expose:t}){const a=i,{nonce:s}=De(a),u=pt(s),d=Z(),l=R();ue(()=>{d.onViewportChange(l.value),d.onContentChange(p.value)}),t({viewportElement:l});const{forwardRef:o,currentElement:p}=J();return(h,k)=>(c(),w(B,null,[E("div",Y({ref_key:"viewportElement",ref:l,"data-reka-scroll-area-viewport":"",style:{overflowX:e(d).scrollbarXEnabled.value?"scroll":"hidden",overflowY:e(d).scrollbarYEnabled.value?"scroll":"hidden"}},h.$attrs,{tabindex:0}),[f(e(oe),{ref:e(o),style:le({minWidth:e(d).scrollbarXEnabled.value?"fit-content":void 0}),"as-child":a.asChild,as:h.as},{default:r(()=>[I(h.$slots,"default")]),_:3},8,["style","as-child","as"])],16),f(e(oe),{as:"style",nonce:e(u)},{default:r(()=>k[0]||(k[0]=[A(" /* Hide scrollbars cross-browser and enable momentum scroll for touch devices */ [data-reka-scroll-area-viewport] { scrollbar-width:none; -ms-overflow-style:none; -webkit-overflow-scrolling:touch; } [data-reka-scroll-area-viewport]::-webkit-scrollbar { display:none; } ")])),_:1},8,["nonce"])],64))}});function nt(i,t){return a=>{if(i[0]===i[1]||t[0]===t[1])return t[0];const s=(t[1]-t[0])/(i[1]-i[0]);return t[0]+s*(a-i[0])}}function Ee(i){const t=st(i.viewport,i.content),a=i.scrollbar.paddingStart+i.scrollbar.paddingEnd,s=(i.scrollbar.size-a)*t;return Math.max(s,18)}function st(i,t){const a=i/t;return Number.isNaN(a)?0:a}function La(i,t=()=>{}){let a={left:i.scrollLeft,top:i.scrollTop},s=0;return function u(){const d={left:i.scrollLeft,top:i.scrollTop},l=a.left!==d.left,o=a.top!==d.top;(l||o)&&t(),a=d,s=window.requestAnimationFrame(u)}(),()=>window.cancelAnimationFrame(s)}function xe(i,t,a="ltr"){const s=Ee(t),u=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,d=t.scrollbar.size-u,l=t.content-t.viewport,o=d-s,p=a==="ltr"?[0,l]:[l*-1,0],h=ht(i,p[0],p[1]);return nt([0,l],[0,o])(h)}function Se(i){return i?Number.parseInt(i,10):0}function Ca(i,t,a,s="ltr"){const u=Ee(a),d=u/2,l=t||d,o=u-l,p=a.scrollbar.paddingStart+l,h=a.scrollbar.size-a.scrollbar.paddingEnd-o,k=a.content-a.viewport,U=s==="ltr"?[0,k]:[k*-1,0];return nt([p,h],U)(i)}function Ge(i,t){return i>0&&i{document.addEventListener("wheel",M,{passive:!1})}),$e(()=>{document.removeEventListener("wheel",M)});function j(){var v,P,g,$,te;p.value&&(a.isHorizontal?d.handleSizeChange({content:((v=u.viewport.value)==null?void 0:v.scrollWidth)??0,viewport:((P=u.viewport.value)==null?void 0:P.offsetWidth)??0,scrollbar:{size:p.value.clientWidth??0,paddingStart:Se(getComputedStyle(p.value).paddingLeft),paddingEnd:Se(getComputedStyle(p.value).paddingRight)}}):d.handleSizeChange({content:((g=u.viewport.value)==null?void 0:g.scrollHeight)??0,viewport:(($=u.viewport.value)==null?void 0:$.offsetHeight)??0,scrollbar:{size:((te=p.value)==null?void 0:te.clientHeight)??0,paddingStart:Se(getComputedStyle(p.value).paddingLeft),paddingEnd:Se(getComputedStyle(p.value).paddingRight)}}))}return ie(p,j),ie(u.content,j),(v,P)=>(c(),y(e(oe),{ref:e(o),style:{position:"absolute"},"data-scrollbarimpl":"",as:e(l).as.value,"as-child":e(l).asChild.value,onPointerdown:C,onPointermove:S,onPointerup:F},{default:r(()=>[I(v.$slots,"default")]),_:3},8,["as","as-child"]))}}),$a=T({__name:"ScrollAreaScrollbarX",setup(i){const t=Z(),a=ze(),{forwardRef:s,currentElement:u}=J();ue(()=>{u.value&&t.onScrollbarXChange(u.value)});const d=W(()=>a.sizes.value);return(l,o)=>(c(),y(lt,{ref:e(s),"is-horizontal":!0,"data-orientation":"horizontal",style:le({bottom:0,left:e(t).dir.value==="rtl"?"var(--reka-scroll-area-corner-width)":0,right:e(t).dir.value==="ltr"?"var(--reka-scroll-area-corner-width)":0,"--reka-scroll-area-thumb-width":d.value?`${e(Ee)(d.value)}px`:void 0}),onOnDragScroll:o[0]||(o[0]=p=>e(a).onDragScroll(p.x))},{default:r(()=>[I(l.$slots,"default")]),_:3},8,["style"]))}}),Ea=T({__name:"ScrollAreaScrollbarY",setup(i){const t=Z(),a=ze(),{forwardRef:s,currentElement:u}=J();ue(()=>{u.value&&t.onScrollbarYChange(u.value)});const d=W(()=>a.sizes.value);return(l,o)=>(c(),y(lt,{ref:e(s),"is-horizontal":!1,"data-orientation":"vertical",style:le({top:0,right:e(t).dir.value==="ltr"?0:void 0,left:e(t).dir.value==="rtl"?0:void 0,bottom:"var(--reka-scroll-area-corner-height)","--reka-scroll-area-thumb-height":d.value?`${e(Ee)(d.value)}px`:void 0}),onOnDragScroll:o[0]||(o[0]=p=>e(a).onDragScroll(p.y))},{default:r(()=>[I(l.$slots,"default")]),_:3},8,["style"]))}}),[ze,za]=Ie("ScrollAreaScrollbarVisible"),qe=T({__name:"ScrollAreaScrollbarVisible",setup(i){const t=Z(),a=Re(),{forwardRef:s}=J(),u=R({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),d=W(()=>{const v=st(u.value.viewport,u.value.content);return v>0&&v<1}),l=R(),o=R(0);function p(v,P){if(S.value){const g=t.viewport.value.scrollLeft+v.deltaY;t.viewport.value.scrollLeft=g,Ge(g,P)&&v.preventDefault()}else{const g=t.viewport.value.scrollTop+v.deltaY;t.viewport.value.scrollTop=g,Ge(g,P)&&v.preventDefault()}}function h(v,P){S.value?o.value=P.x:o.value=P.y}function k(v){o.value=0}function U(v){u.value=v}function C(v,P){return Ca(v,o.value,u.value,P)}const S=W(()=>a.isHorizontal.value);function F(v){S.value?t.viewport.value.scrollLeft=C(v,t.dir.value):t.viewport.value.scrollTop=C(v)}function M(){if(S.value){if(t.viewport.value&&l.value){const v=t.viewport.value.scrollLeft,P=xe(v,u.value,t.dir.value);l.value.style.transform=`translate3d(${P}px, 0, 0)`}}else if(t.viewport.value&&l.value){const v=t.viewport.value.scrollTop,P=xe(v,u.value);l.value.style.transform=`translate3d(0, ${P}px, 0)`}}function j(v){l.value=v}return za({sizes:u,hasThumb:d,handleWheelScroll:p,handleThumbDown:h,handleThumbUp:k,handleSizeChange:U,onThumbPositionChange:M,onThumbChange:j,onDragScroll:F}),(v,P)=>S.value?(c(),y($a,Y({key:0},v.$attrs,{ref:e(s)}),{default:r(()=>[I(v.$slots,"default")]),_:3},16)):(c(),y(Ea,Y({key:1},v.$attrs,{ref:e(s)}),{default:r(()=>[I(v.$slots,"default")]),_:3},16))}}),rt=T({__name:"ScrollAreaScrollbarAuto",props:{forceMount:{type:Boolean}},setup(i){const t=Z(),a=Re(),{forwardRef:s}=J(),u=R(!1),d=Ze(()=>{if(t.viewport.value){const l=t.viewport.value.offsetWidthd()),ie(t.viewport,d),ie(t.content,d),(l,o)=>(c(),y(e(Ue),{present:l.forceMount||u.value},{default:r(()=>[f(qe,Y(l.$attrs,{ref:e(s),"data-state":u.value?"visible":"hidden"}),{default:r(()=>[I(l.$slots,"default")]),_:3},16,["data-state"])]),_:3},8,["present"]))}}),Ra=T({inheritAttrs:!1,__name:"ScrollAreaScrollbarHover",props:{forceMount:{type:Boolean}},setup(i){const t=Z(),{forwardRef:a}=J();let s;const u=R(!1);function d(){window.clearTimeout(s),u.value=!0}function l(){s=window.setTimeout(()=>{u.value=!1},t.scrollHideDelay.value)}return ue(()=>{const o=t.scrollArea.value;o&&(o.addEventListener("pointerenter",d),o.addEventListener("pointerleave",l))}),$e(()=>{const o=t.scrollArea.value;o&&(window.clearTimeout(s),o.removeEventListener("pointerenter",d),o.removeEventListener("pointerleave",l))}),(o,p)=>(c(),y(e(Ue),{present:o.forceMount||u.value},{default:r(()=>[f(rt,Y(o.$attrs,{ref:e(a),"data-state":u.value?"visible":"hidden"}),{default:r(()=>[I(o.$slots,"default")]),_:3},16,["data-state"])]),_:3},8,["present"]))}}),Aa=T({__name:"ScrollAreaScrollbarScroll",props:{forceMount:{type:Boolean}},setup(i){const t=Z(),a=Re(),{forwardRef:s}=J(),{state:u,dispatch:d}=vt("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});Oe(o=>{if(u.value==="idle"){const p=window.setTimeout(()=>d("HIDE"),t.scrollHideDelay.value);o(()=>{window.clearTimeout(p)})}});const l=Ze(()=>d("SCROLL_END"),100);return Oe(o=>{const p=t.viewport.value,h=a.isHorizontal.value?"scrollLeft":"scrollTop";if(p){let k=p[h];const U=()=>{const C=p[h];k!==C&&(d("SCROLL"),l()),k=C};p.addEventListener("scroll",U),o(()=>{p.removeEventListener("scroll",U)})}}),(o,p)=>(c(),y(e(Ue),{present:o.forceMount||e(u)!=="hidden"},{default:r(()=>[f(qe,Y(o.$attrs,{ref:e(s)}),{default:r(()=>[I(o.$slots,"default")]),_:3},16)]),_:3},8,["present"]))}}),[Re,Pa]=Ie("ScrollAreaScrollbar"),Ba=T({inheritAttrs:!1,__name:"ScrollAreaScrollbar",props:{orientation:{default:"vertical"},forceMount:{type:Boolean},asChild:{type:Boolean},as:{default:"div"}},setup(i){const t=i,{forwardRef:a}=J(),s=Z(),u=W(()=>t.orientation==="horizontal");Q(u,()=>{u.value?s.onScrollbarXEnabledChange(!0):s.onScrollbarYEnabledChange(!0)},{immediate:!0}),$e(()=>{s.onScrollbarXEnabledChange(!1),s.onScrollbarYEnabledChange(!1)});const{orientation:d,forceMount:l,asChild:o,as:p}=De(t);return Pa({orientation:d,forceMount:l,isHorizontal:u,as:p,asChild:o}),(h,k)=>e(s).type.value==="hover"?(c(),y(Ra,Y({key:0},h.$attrs,{ref:e(a),"force-mount":e(l)}),{default:r(()=>[I(h.$slots,"default")]),_:3},16,["force-mount"])):e(s).type.value==="scroll"?(c(),y(Aa,Y({key:1},h.$attrs,{ref:e(a),"force-mount":e(l)}),{default:r(()=>[I(h.$slots,"default")]),_:3},16,["force-mount"])):e(s).type.value==="auto"?(c(),y(rt,Y({key:2},h.$attrs,{ref:e(a),"force-mount":e(l)}),{default:r(()=>[I(h.$slots,"default")]),_:3},16,["force-mount"])):e(s).type.value==="always"?(c(),y(qe,Y({key:3},h.$attrs,{ref:e(a),"data-state":"visible"}),{default:r(()=>[I(h.$slots,"default")]),_:3},16)):L("",!0)}}),Ta=T({__name:"ScrollAreaThumb",props:{asChild:{type:Boolean},as:{}},setup(i){const t=i,a=Z(),s=ze();function u(C){const F=C.target.getBoundingClientRect(),M=C.clientX-F.left,j=C.clientY-F.top;s.handleThumbDown(C,{x:M,y:j})}function d(C){s.handleThumbUp(C)}const{forwardRef:l,currentElement:o}=J(),p=R(),h=W(()=>a.viewport.value);function k(){if(!p.value){const C=La(h.value,s.onThumbPositionChange);p.value=C,s.onThumbPositionChange()}}const U=W(()=>s.sizes.value);return mt(U,()=>{s.onThumbChange(o.value),h.value&&(s.onThumbPositionChange(),h.value.addEventListener("scroll",k))}),$e(()=>{var C;h.value.removeEventListener("scroll",k),(C=a.viewport.value)==null||C.removeEventListener("scroll",k)}),(C,S)=>(c(),y(e(oe),{ref:e(l),"data-state":e(s).hasThumb?"visible":"hidden",style:{width:"var(--reka-scroll-area-thumb-width)",height:"var(--reka-scroll-area-thumb-height)"},"as-child":t.asChild,as:C.as,onPointerdown:u,onPointerup:d},{default:r(()=>[I(C.$slots,"default")]),_:3},8,["data-state","as-child","as"]))}}),Da=T({__name:"ScrollAreaCornerImpl",setup(i){const t=Z(),a=R(0),s=R(0),u=W(()=>!!a.value&&!!s.value);function d(){var p;const o=((p=t.scrollbarX.value)==null?void 0:p.offsetHeight)||0;t.onCornerHeightChange(o),s.value=o}function l(){var p;const o=((p=t.scrollbarY.value)==null?void 0:p.offsetWidth)||0;t.onCornerWidthChange(o),a.value=o}return ie(t.scrollbarX.value,d),ie(t.scrollbarY.value,l),Q(()=>t.scrollbarX.value,d),Q(()=>t.scrollbarY.value,l),(o,p)=>{var h;return u.value?(c(),y(e(oe),Y({key:0,style:{width:`${a.value}px`,height:`${s.value}px`,position:"absolute",right:e(t).dir.value==="ltr"?0:void 0,left:e(t).dir.value==="rtl"?0:void 0,bottom:0}},(h=o.$parent)==null?void 0:h.$props),{default:r(()=>[I(o.$slots,"default")]),_:3},16,["style"])):L("",!0)}}}),Ia=T({__name:"ScrollAreaCorner",props:{asChild:{type:Boolean},as:{}},setup(i){const t=i,{forwardRef:a}=J(),s=Z(),u=W(()=>!!s.scrollbarX.value&&!!s.scrollbarY.value),d=W(()=>s.type.value!=="scroll"&&u.value);return(l,o)=>d.value?(c(),y(Da,Y({key:0},t,{ref:e(a)}),{default:r(()=>[I(l.$slots,"default")]),_:3},16)):L("",!0)}}),Ua={class:"flex justify-center w-full gap-x-6 lg:gap-x-8","aria-label":"Pagination"},qa={class:"flex gap-2"},Fa={class:"sr-only"},Ha={class:"flex min-w-[100px] gap-2 items-center justify-center text-sm font-medium"},Oa=["href"],Va={class:"flex gap-2"},Wa={class:"sr-only"},Ka=T({__name:"EntityListPagination",props:{entityList:{},linksOpenable:{type:Boolean}},emits:["change"],setup(i,{emit:t}){const a=i,s=t;function u(l,o=!1){if(a.linksOpenable&&(l.metaKey||l.ctrlKey||l.shiftKey||l.altKey)){l.stopPropagation();return}const p=l.target.closest("a").href;p&&!o&&(s("change",new URL(p).searchParams.get("page")),l.preventDefault())}function d(l){const o=new URL(a.entityList.meta.first_page_url);return o.searchParams.set("page",String(l)),o.toString()}return(l,o)=>(c(),w("nav",Ua,[E("div",qa,[f(e(O),{as:l.entityList.meta.prev_page_url?"a":"button",class:"hidden sm:flex",size:"icon",variant:"outline",href:l.entityList.meta.first_page_url,disabled:!l.entityList.meta.prev_page_url,onClick:u},{default:r(()=>[f(e(ga),{class:"h-4 w-4"})]),_:1},8,["as","href","disabled"]),f(e(O),{as:l.entityList.meta.prev_page_url?"a":"button",size:"icon",variant:"outline",href:l.entityList.meta.prev_page_url,disabled:!l.entityList.meta.prev_page_url,onClick:u},{default:r(()=>[f(e(yt),{class:"h-4 w-4"}),E("span",Fa,_(e(D)("sharp::entity_list.pagination.previous")),1)]),_:1},8,["as","href","disabled"])]),E("div",Ha,[l.entityList.meta.last_page?(c(),w(B,{key:0},[E("span",null,_(e(D)("sharp::entity_list.pagination.current").split(":current_page")[0]),1),f(e(wt),{"model-value":String(l.entityList.meta.current_page),"onUpdate:modelValue":o[1]||(o[1]=p=>l.$emit("change",p))},{default:r(()=>[f(e(bt),{class:"w-10 justify-center [&_svg]:hidden"},{default:r(()=>[A(_(l.entityList.meta.current_page),1)]),_:1}),f(e(gt),{"align-offset":-22},{default:r(()=>[(c(!0),w(B,null,ae(l.entityList.meta.last_page,p=>(c(),y(e(kt),{value:String(p)},{default:r(()=>[l.linksOpenable?(c(),w("a",{key:0,class:"absolute inset-0",href:d(p),onPointerup:o[0]||(o[0]=h=>u(h,!0))},null,40,Oa)):L("",!0),A(" "+_(p),1)]),_:2},1032,["value"]))),256))]),_:1})]),_:1},8,["model-value"]),E("span",null,_(e(D)("sharp::entity_list.pagination.current",{last_page:l.entityList.meta.last_page}).split(":current_page")[1]),1)],64)):(c(),w(B,{key:1},[A(_(e(D)("sharp::entity_list.pagination.current_simple").replace(":current_page",l.entityList.meta.current_page+"")),1)],64))]),E("div",Va,[f(e(O),{as:l.entityList.meta.next_page_url?"a":"button",size:"icon",variant:"outline",href:l.entityList.meta.next_page_url,disabled:!l.entityList.meta.next_page_url,onClick:u},{default:r(()=>[E("span",Wa,_(e(D)("sharp::entity_list.pagination.next")),1),f(e(_t),{class:"h-4 w-4"})]),_:1},8,["as","href","disabled"]),f(e(O),{as:l.entityList.meta.next_page_url?"a":"button",class:q(["hidden sm:flex",l.entityList.meta.last_page_url?"":"invisible"]),size:"icon",variant:"outline",href:l.entityList.meta.last_page_url,disabled:!l.entityList.meta.next_page_url,onClick:u},{default:r(()=>[f(e(wa),{class:"h-4 w-4"})]),_:1},8,["as","class","href","disabled"])])]))}}),Pe=T({__name:"StateIcon",props:{stateValue:{}},setup(i){return(t,a)=>{var s;return c(),w("div",{class:"relative rounded-full",style:le({"--color":((s=t.stateValue)==null?void 0:s.color)??"black"})},a[0]||(a[0]=[E("div",{class:"h-1.5 w-1.5 rounded-full bg-[var(--color)]"},null,-1)]),4)}}}),Xa=T({__name:"Table",props:{class:{},noScroll:{type:Boolean}},setup(i){const t=i;return(a,s)=>(c(),w("div",{class:q(["relative",{"w-full overflow-auto":!a.noScroll}])},[E("table",{class:q(e(G)("w-full caption-bottom text-sm",t.class))},[I(a.$slots,"default")],2)],2))}}),Ma=T({__name:"TableBody",props:{class:{}},setup(i){const t=i;return(a,s)=>(c(),w("tbody",{class:q(e(G)("[&_tr:last-child]:border-0",t.class))},[I(a.$slots,"default")],2))}}),pe=T({__name:"TableCell",props:{class:{}},setup(i){const t=i;return(a,s)=>(c(),w("td",{class:q(e(G)("px-3 py-4 align-middle [&:has([role=checkbox])]:pr-0 first:pl-4 last:pr-4",t.class))},[I(a.$slots,"default")],2))}}),Le=T({__name:"TableHead",props:{class:{}},setup(i){const t=i;return(a,s)=>(c(),w("th",{class:q(e(G)("h-12 px-3 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",t.class))},[I(a.$slots,"default")],2))}}),Ya=T({__name:"TableHeader",props:{class:{}},setup(i){const t=i;return(a,s)=>(c(),w("thead",{class:q(e(G)("[&_tr]:border-b",t.class))},[I(a.$slots,"default")],2))}}),Qe=T({__name:"TableRow",props:{class:{}},setup(i){const t=i;return(a,s)=>(c(),w("tr",{class:q(e(G)("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",t.class))},[I(a.$slots,"default")],2))}}),Je=T({__name:"EntityListSearch",props:{entityList:{},expanded:{type:Boolean},inline:{type:Boolean}},emits:["submit","update:expanded"],setup(i,{emit:t}){var C;const a=i,s=t,u=R(),d=R(),{focused:l}=St(u),{pressed:o}=Lt({target:u}),p=R(((C=a.entityList.query)==null?void 0:C.search)??"");let h="";Q(l,()=>{var S,F;l.value?(h&&(p.value=h,h=""),o.value?Q(o,()=>{o.value||s("update:expanded",!0)},{once:!0}):s("update:expanded",!0)):o.value||(h=(S=a.entityList.query)!=null&&S.search?"":p.value,p.value=(F=a.entityList.query)==null?void 0:F.search,s("update:expanded",!1))}),Q(()=>a.entityList,()=>{var S;p.value=((S=a.entityList.query)==null?void 0:S.search)??"",s("update:expanded",!1)});function k(){s("update:expanded",!1),s("submit",p.value)}function U(){a.expanded||s("update:expanded",!0)}return(S,F)=>{var M,j;return c(),w("form",{onSubmit:et(k,["prevent"]),ref_key:"el",ref:u},[E("div",{class:q(["relative z-[1]",[S.inline?"h-8 w-[150px] @5xl/root-card:w-[200px]":""]])},[E("div",{class:q(["top-0 left-0 group flex gap-3",e(G)(S.inline?"absolute h-8":"flex-col",S.inline&&S.expanded?"-mr-[100px]":"")])},[E("div",{class:q(["relative",[S.inline?"":"w-full"]])},[f(e(Ct),{placeholder:e(D)("sharp::action_bar.list.search.placeholder"),modelValue:p.value,"onUpdate:modelValue":F[0]||(F[0]=v=>p.value=v),class:q(e(G)("w-full pl-8 h-9",{"h-8 w-[150px] @5xl/root-card:w-[200px]":S.inline,"sm:!w-[300px]":S.inline&&S.expanded,"pr-8":(M=a.entityList.query)==null?void 0:M.search})),type:"search",ref_key:"input",ref:d,onInput:U},null,8,["placeholder","modelValue","class"]),f(e($t),{class:"absolute left-2.5 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none"}),(j=a.entityList.query)!=null&&j.search?(c(),y(e(O),{key:0,type:"button",class:"absolute right-0 top-0 h-full",size:"sm",variant:"ghost",onClick:F[1]||(F[1]=v=>S.$emit("submit",null))},{default:r(()=>[f(e(Et),{class:"h-4 w-4 text-muted-foreground"})]),_:1})):L("",!0)],2),f(e(O),{type:"submit",class:q(e(G)("h-8 hidden",S.expanded?"inline-flex":"")),size:"sm"},{default:r(()=>[A(_(e(D)("sharp::action_bar.list.search.button")),1)]),_:1},8,["class"])],2)],2)],544)}}}),ot=T({__name:"ScrollBar",props:{orientation:{default:"vertical"},forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(i){const t=i,a=W(()=>{const{class:s,...u}=t;return u});return(s,u)=>(c(),y(e(Ba),Y(a.value,{class:e(G)("flex touch-none select-none transition-colors",s.orientation==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-px",s.orientation==="horizontal"&&"h-4 flex-col border-t border-t-transparent p-1",t.class)}),{default:r(()=>[f(e(Ta),{class:"relative flex-1 rounded-full bg-muted-foreground/50 hover:bg-muted-foreground"},{default:r(()=>u[0]||(u[0]=[E("div",{class:"absolute -inset-1.5 -top-4"},null,-1)])),_:1})]),_:1},16,["class"]))}}),ja=T({__name:"ScrollArea",props:{type:{},dir:{},scrollHideDelay:{},asChild:{type:Boolean},as:{},class:{},touchType:{}},setup(i){const t=i,a=W(()=>{const{class:o,...p}=t;return p}),s=zt("(hover: none)"),u=R(),{arrivedState:d,measure:l}=Rt(()=>{var o;return(o=u.value)==null?void 0:o.viewportElement});return Q(Pt(()=>{var o;return(o=u.value)==null?void 0:o.viewportElement}).width,At(()=>{l()},50,!0,!0)),(o,p)=>(c(),y(e(ka),Y(a.value,{type:e(s)?t.touchType:t.type,class:e(G)("group/scroll-area relative overflow-hidden",t.class),"data-scroll-arrived-right":e(d).right?!0:null,"data-scrollbar-x-visible":!e(d).left||!e(d).right?!0:null}),{default:r(()=>[f(e(Sa),{class:"h-full w-full rounded-[inherit]",ref_key:"viewport",ref:u},{default:r(()=>[I(o.$slots,"default")]),_:3},512),I(o.$slots,"scrollbar",{},()=>[f(ot),f(e(Ia))])]),_:3},16,["type","class","data-scroll-arrived-right","data-scrollbar-x-visible"]))}}),Na=Ft?window:void 0;function xa(i){var t;const a=he(i);return(t=a==null?void 0:a.$el)!=null?t:a}function Ga(...i){let t,a,s,u;if(typeof i[0]=="string"||Array.isArray(i[0])?([a,s,u]=i,t=Na):[t,a,s,u]=i,!t)return Ut;Array.isArray(a)||(a=[a]),Array.isArray(s)||(s=[s]);const d=[],l=()=>{d.forEach(k=>k()),d.length=0},o=(k,U,C,S)=>(k.addEventListener(U,C,S),()=>k.removeEventListener(U,C,S)),p=Q(()=>[xa(t),he(u)],([k,U])=>{if(l(),!k)return;const C=qt(U)?{...U}:U;d.push(...a.flatMap(S=>s.map(F=>o(k,S,F,C))))},{immediate:!0,flush:"post"}),h=()=>{p(),l()};return at(h),h}const Qa=T({name:"UseElementBounding",props:["box","as"],setup(i,{slots:t}){const a=R(),s=tt(Bt(a));return()=>{if(t.default)return Tt(i.as||"div",{ref:a},t.default(s))}}});function Be(i){return typeof Window<"u"&&i instanceof Window?i.document.documentElement:typeof Document<"u"&&i instanceof Document?i.documentElement:i}function it(i){const t=window.getComputedStyle(i);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&i.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const Te=new WeakMap;function Za(i,t=!1){const a=R(t);let s=null,u="";Q(It(i),o=>{const p=Be(he(o));if(p){const h=p;if(Te.get(h)||Te.set(h,h.style.overflow),h.style.overflow!=="hidden"&&(u=h.style.overflow),h.style.overflow==="hidden")return a.value=!0;if(a.value)return h.style.overflow="hidden"}},{immediate:!0});const d=()=>{const o=Be(he(i));!o||a.value||(Ve&&(s=Ga(o,"touchmove",p=>{Ja(p)},{passive:!1})),o.style.overflow="hidden",a.value=!0)},l=()=>{const o=Be(he(i));!o||!a.value||(Ve&&(s==null||s()),o.style.overflow=u,Te.delete(o),a.value=!1)};return at(l),W({get(){return a.value},set(o){o?d():l()}})}function en(){let i=!1;const t=R(!1);return(a,s)=>{if(t.value=s.value,i)return;i=!0;const u=Za(a,s.value);Q(t,d=>u.value=d)}}en();const tn=T({name:"UseWindowSize",props:["initialWidth","initialHeight"],setup(i,{slots:t}){const a=tt(Dt(i));return()=>{if(t.default)return t.default(a)}}}),an={key:0,class:"fixed inset-0 z-10 bg-black/5"},nn={class:"ml-auto self-start flex flex-wrap justify-end pointer-events-auto gap-2"},sn={key:1,class:"h-8 mb-4"},ln={key:2,class:"container px-4 lg:px-6"},rn={class:"flex @2xl/root-card:grid grid-cols-1 flex-wrap gap-y-4 gap-x-2"},on={class:"flex items-baseline"},un={key:1,class:"contents"},cn={class:"flex items-center @2xl/root-card:hidden"},dn={class:"flex flex-col flex-wrap gap-4"},fn=["for"],pn={class:"truncate"},hn={class:"flex justify-center w-10"},vn={class:"truncate"},mn={key:1,class:"text-muted-foreground"},wn=T({__name:"EntityList",props:{entityKey:{},entityList:{},filters:{},commands:{},title:{},inline:{type:Boolean},showCreateButton:{type:Boolean,default:!0},showReorderButton:{type:Boolean,default:!0},showSearchField:{type:Boolean,default:!0},showEntityState:{type:Boolean,default:!0},collapsed:{type:Boolean}},emits:["update:query","filter-change","reset","reordering","needs-topbar"],setup(i,{emit:t}){const a=i,s=R(),u=t,d=R(null),l=W(()=>!!d.value);function o(){d.value=Object.fromEntries(a.entityList.data.map(n=>[n.id,!1]))}function p(n,b){u("filter-change",n,b)}const h=R(!1);function k(n){u("update:query",{...a.entityList.query,search:n})}function U(){u("reset")}function C(n){u("update:query",{...a.entityList.query,page:n})}function S(n){const b=a.entityList.currentSort===n?a.entityList.currentSortDir==="desc"?a.entityList.config.defaultSort===a.entityList.currentSort?"asc":null:"desc":"asc";u("update:query",{...a.entityList.query,page:1,sort:b?n:null,dir:b||null})}function F(n,b){const{commands:H,entityKey:N}=a;Ae.post(X("code16.sharp.api.list.state",{entityKey:N,instanceId:b}),{value:n}).then(V=>{H.handleCommandResponse(V.data)}).catch(V=>{var ee,m;const se=(ee=V.response)==null?void 0:ee.data;((m=V.response)==null?void 0:m.status)===422&&ua(se.message,{title:D("modals.state.422.title"),isError:!0})})}async function M(n,b){if(n.metaKey||n.ctrlKey||n.shiftKey)return;const{entityKey:H}=a;n.preventDefault(),a.entityList.config.quickCreationForm?await a.commands.send({hasForm:!0},{postCommand:X("code16.sharp.api.list.command.quick-creation-form.store",{entityKey:b?`${H}:${b.key}`:H}),getForm:X("code16.sharp.api.list.command.quick-creation-form.create",{entityKey:b?`${H}:${b.key}`:H}),query:a.entityList.query,entityKey:H}):Jt.visit(X("code16.sharp.form.create",{parentUri:re(),entityKey:b?`${H}:${b.key}`:H}))}async function j(n,b){const{commands:H,entityKey:N}=a;n.confirmation&&s.value.querySelector("[data-reka-scroll-area-viewport]").scrollTo({left:0,behavior:"smooth"}),await H.send(n,{postCommand:X("code16.sharp.api.list.command.instance",{entityKey:N,instanceId:b,commandKey:n.key}),getForm:X("code16.sharp.api.list.command.instance.form",{entityKey:N,instanceId:b,commandKey:n.key}),query:a.entityList.query,entityKey:N,instanceId:b},{highlightElement:()=>{var V;return(V=s.value)==null?void 0:V.querySelector(`[data-instance-row="${b}"]`)}})}async function v(n){const{commands:b,entityKey:H}=a;await b.send(n,{postCommand:X("code16.sharp.api.list.command.entity",{entityKey:H,commandKey:n.key}),getForm:X("code16.sharp.api.list.command.entity.form",{entityKey:H,commandKey:n.key}),query:{...a.entityList.query,ids:Object.entries(d.value??{}).filter(([N,V])=>V).map(([N,V])=>N)},entityKey:H}),d.value=null}async function P(n){const{entityKey:b,entityList:H,commands:N}=a;s.value.querySelector("[data-reka-scroll-area-viewport]").scrollTo({left:0,behavior:"smooth"}),await ca(H.config.deleteConfirmationText,{highlightElement:()=>{var V;return(V=s.value)==null?void 0:V.querySelector(`[data-instance-row="${n}"]`)}})&&(await Ae.delete(X("code16.sharp.api.list.delete",{entityKey:b,instanceId:n})),N.handleCommandResponse({action:"reload"}))}const g=R(null),$=W(()=>!!g.value),te=R(),Fe=Ht(()=>$.value?te.value.$el:null,W({get:()=>g.value??[],set:n=>{g.value=n}}),{animation:150});Q($,()=>{$.value?Fe.start():Fe.stop(),u("reordering",$.value)});function He(){g.value=[...a.entityList.data]}async function ct(){const{entityKey:n,commands:b}=a;await Ae.post(X("code16.sharp.api.list.reorder",{entityKey:n}),{instances:g.value.map(H=>a.entityList.instanceId(H))}),await b.handleCommandResponse({action:"reload"}),g.value=null}const ce=R(!1),de=W(()=>$.value||l.value);Q([ce,de],()=>{ce.value?u("needs-topbar",de.value):u("needs-topbar",!1),a.inline&&document.dispatchEvent(new CustomEvent("breadcrumb:updateAppendItem",{detail:ce.value&&de.value?{label:a.title}:null}))});const dt=da(),ve=W(()=>a.entityList.fields.filter(n=>dt.md?!0:!n.hideOnXS));return(n,b)=>(c(),y(ha,{commands:n.commands},{default:r(()=>{var H,N;return[E("div",{ref_key:"el",ref:s},[f(Ot,{"enter-active-class":"transition","enter-from-class":"opacity-0","enter-to-class":"opacity-100","leave-active-class":"transition","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:r(()=>[$.value?(c(),w("div",an)):L("",!0)]),_:1}),n.entityList?(c(),w(B,{key:0},[n.showReorderButton&&n.entityList.canReorder||n.entityList.canSelect||(H=n.entityList.dropdownEntityCommands(l.value))!=null&&H.flat().length||n.entityList.primaryCommand||n.showCreateButton&&n.entityList.authorizations.create?(c(),y(Vt,{key:0,class:q(e(G)("group container sticky top-14 border-b -mb-px -mt-4 pt-4 bg-white pb-4 px-4 lg:px-6 flex gap-3 pointer-events-none","lg:sticky lg:border-0 lg:pt-0 lg:mt-0 lg:top-3 lg:bg-transparent lg:last:*:-translate-x-[--sticky-safe-right-offset]",{"border-0":n.inline,"-top-8 z-0":n.inline&&!de.value,"z-[15]":$.value,"data-[stuck=true]:z-30":!n.inline||de.value})),stuck:ce.value,"onUpdate:stuck":b[3]||(b[3]=V=>ce.value=V)},{default:r(()=>{var V,se,ee;return[E("div",nn,[n.showReorderButton&&n.entityList.canReorder&&!l.value?(c(),w(B,{key:0},[$.value?(c(),w(B,{key:0},[f(e(O),{class:"h-8",size:"sm",variant:"outline",onClick:b[0]||(b[0]=m=>g.value=null)},{default:r(()=>[A(_(e(D)("sharp::action_bar.list.reorder_button.cancel")),1)]),_:1}),f(e(O),{class:"h-8",size:"sm",onClick:ct},{default:r(()=>[A(_(e(D)("sharp::action_bar.list.reorder_button.finish")),1)]),_:1})],64)):(c(),y(e(O),{key:1,class:q(["h-8",(V=n.entityList.dropdownEntityCommands(l.value))!=null&&V.flat().length?"max-sm:hidden":""]),size:"sm",variant:"outline",onClick:He},{default:r(()=>[A(_(e(D)("sharp::action_bar.list.reorder_button")),1)]),_:1},8,["class"]))],64)):L("",!0),n.entityList.canSelect&&!$.value?(c(),w(B,{key:1},[l.value?(c(),y(e(O),{key:0,class:"h-8",size:"sm",variant:"outline",onClick:b[1]||(b[1]=m=>d.value=null)},{default:r(()=>[A(_(e(D)("sharp::action_bar.list.reorder_button.cancel")),1)]),_:1})):(c(),y(e(O),{key:1,class:q(["h-8",(se=n.entityList.dropdownEntityCommands(l.value))!=null&&se.flat().length?"max-sm:hidden":""]),size:"sm",variant:"outline",onClick:o},{default:r(()=>[A(_(e(D)("sharp::action_bar.list.select_button")),1)]),_:1},8,["class"]))],64)):L("",!0),(ee=n.entityList.dropdownEntityCommands(l.value))!=null&&ee.flat().length&&!$.value?(c(),y(e(me),{key:2},{default:r(()=>[f(e(ye),{"as-child":""},{default:r(()=>[f(e(O),{class:"h-8",variant:l.value?"default":"outline",size:"sm",disabled:$.value},{default:r(()=>[A(_(e(D)("sharp::entity_list.commands.entity.label"))+" ",1),l.value?(c(),w(B,{key:0},[A(" ("+_(Object.values(d.value).filter(Boolean).length)+" selected) ",1)],64)):L("",!0),f(Ye)]),_:1},8,["variant","disabled"])]),_:1}),f(e(we),null,{default:r(()=>[n.showReorderButton&&n.entityList.canReorder&&!l.value?(c(),w(B,{key:0},[f(e(be),{class:"sm:hidden",onClick:He},{default:r(()=>[A(_(e(D)("sharp::action_bar.list.reorder_button")),1)]),_:1}),f(e(ge),{class:"sm:hidden"})],64)):L("",!0),n.entityList.canSelect&&!l.value?(c(),w(B,{key:1},[f(e(be),{class:"sm:hidden",onClick:o},{default:r(()=>[A(_(e(D)("sharp::action_bar.list.select_button")),1)]),_:1}),f(e(ge),{class:"sm:hidden"})],64)):L("",!0),f(je,{commands:n.entityList.dropdownEntityCommands(l.value),selecting:l.value,onSelect:v},null,8,["commands","selecting"])]),_:1})]),_:1})):L("",!0),n.entityList.primaryCommand&&!$.value&&!l.value?(c(),y(e(O),{key:3,class:"h-8",size:"sm",onClick:b[2]||(b[2]=m=>v(n.entityList.primaryCommand))},{default:r(()=>[A(_(n.entityList.primaryCommand.label),1)]),_:1})):L("",!0),n.showCreateButton&&n.entityList.authorizations.create&&!$.value&&!l.value?(c(),w(B,{key:4},[n.entityList.forms&&Object.values(n.entityList.forms).length?(c(),y(e(me),{key:0},{default:r(()=>[f(e(ye),{"as-child":""},{default:r(()=>[f(e(O),{class:"h-8",size:"sm"},{default:r(()=>[A(_(a.entityList.config.createButtonLabel||e(D)("sharp::action_bar.list.forms_dropdown"))+" ",1),f(Ye,{class:"opacity-75"})]),_:1})]),_:1}),f(e(we),null,{default:r(()=>[(c(!0),w(B,null,ae(Object.values(n.entityList.forms).filter(m=>!!m.label),m=>(c(),y(e(be),{as:"a",href:e(X)("code16.sharp.form.create",{parentUri:e(re)(),entityKey:`${n.entityKey}:${m.key}`}),onClick:ne=>M(ne,m)},{default:r(()=>[A(_(m.label),1)]),_:2},1032,["href","onClick"]))),256))]),_:1})]),_:1})):(c(),y(e(O),{key:1,as:"a",class:"h-8 gap-1",size:"sm",disabled:$.value||l.value,href:e(X)("code16.sharp.form.create",{parentUri:e(re)(),entityKey:n.entityKey}),onClick:M},{default:r(()=>[A(_(a.entityList.config.createButtonLabel||e(D)("sharp::action_bar.list.create_button")),1)]),_:1},8,["disabled","href"]))],64)):L("",!0)])]}),_:1},8,["class","stuck"])):L("",!0)],64)):(c(),w("div",sn)),(N=n.entityList)!=null&&N.pageAlert?(c(),w("div",ln,[f(Wt,{class:"mb-3","page-alert":n.entityList.pageAlert},null,8,["page-alert"])])):L("",!0),f(Qt,{class:q($.value?"relative z-[11]":"")},{default:r(()=>{var V,se;return[f(e(Kt),null,{default:r(()=>{var ee,m,ne,K,x;return[E("div",rn,[E("div",on,[I(n.$slots,"card-header"),n.entityList?(c(),y(e(ma),{key:0,class:q(["text-xs ml-4 mr-2 lg:ml-6 whitespace-nowrap",[n.inline?"lg:mr-9":"lg:mr-5"]])},{default:r(()=>{var z;return[(z=n.entityList.query)!=null&&z.search?(c(),w(B,{key:0},[A(_(e(We)("sharp::action_bar.list.search.title",n.entityList.count,{count:n.entityList.count,search:n.entityList.query.search})),1)],64)):(c(),w(B,{key:1},[A(_(e(We)("sharp::action_bar.list.items_count",n.entityList.count,{count:n.entityList.count})),1)],64))]}),_:1},8,["class"])):L("",!0)]),n.entityList&&(n.showSearchField&&n.entityList.config.searchable||(ee=n.entityList.visibleFilters)!=null&&ee.length)?(c(),w("div",{key:0,class:q(["flex flex-wrap items-center gap-2 -my-1 @2xl/root-card:my-0",!n.collapsed&&((m=n.entityList.data)!=null&&m.length)?"@2xl/root-card:-mb-2":""])},[n.showSearchField&&n.entityList.config.searchable?_e((c(),w("div",{key:0,class:q(["self-center pointer-events-auto",{"hidden @2xl/root-card:block":(ne=n.entityList.visibleFilters)==null?void 0:ne.length}])},[f(Je,{inline:"",expanded:h.value,"onUpdate:expanded":b[4]||(b[4]=z=>h.value=z),"entity-list":n.entityList,onSubmit:k},null,8,["expanded","entity-list"])],2)),[[ke,!$.value&&!l.value&&!n.collapsed]]):L("",!0),(K=n.entityList.visibleFilters)!=null&&K.length?_e((c(),w("div",un,[E("div",cn,[f(e(Xt),null,{default:r(()=>[f(e(fa),{"as-child":""},{default:r(()=>[f(e(O),{class:"h-8 gap-1",variant:"outline",size:"sm"},{default:r(()=>[f(e(pa),{class:"h-3.5 w-3.5"}),E("span",null,_(e(D)("sharp::filters.popover_button")),1)]),_:1})]),_:1}),f(e(Mt),{onOpenAutoFocus:b[6]||(b[6]=et(()=>{},["prevent"]))},{default:r(()=>[f(e(Yt),null,{default:r(()=>[f(e(jt),null,{default:r(()=>[A(_(e(D)("sharp::filters.popover_button"))+" : "+_(n.title),1)]),_:1})]),_:1}),E("div",dn,[n.showSearchField&&n.entityList.config.searchable?(c(),y(Je,{key:0,expanded:h.value,"onUpdate:expanded":b[5]||(b[5]=z=>h.value=z),"entity-list":n.entityList,onSubmit:k},null,8,["expanded","entity-list"])):L("",!0),(c(!0),w(B,null,ae(n.entityList.visibleFilters,z=>(c(),y(Ne,{key:z.key,filter:z,value:n.filters.currentValues[z.key],disabled:$.value,valuated:n.filters.isValuated([z]),onInput:fe=>p(z,fe)},null,8,["filter","value","disabled","valuated","onInput"]))),128))]),f(e(Nt),{class:"flex-row gap-2 mt-2"},{default:r(()=>[f(e(Ke),{"as-child":""},{default:r(()=>{var z;return[f(e(O),{class:"flex-1",variant:"secondary",disabled:!n.filters.isValuated(n.entityList.visibleFilters)&&!((z=n.entityList.query)!=null&&z.search),onClick:U},{default:r(()=>[A(_(e(D)("sharp::filters.reset_all")),1)]),_:1},8,["disabled"])]}),_:1}),f(e(Ke),{"as-child":""},{default:r(()=>[f(e(O),{class:"flex-1"},{default:r(()=>[A(_(e(D)("sharp::filters.dialog.submit")),1)]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),n.filters.isValuated(n.filters.rootFilters)?(c(),y(e(Xe),{key:0,class:"ml-2"},{default:r(()=>[A(_(n.filters.valuatedCount(n.filters.rootFilters)),1)]),_:1})):L("",!0)]),E("div",{class:q(["hidden @2xl/root-card:contents",{"*:opacity-0 *:pointer-events-none":h.value}])},[(c(!0),w(B,null,ae(n.entityList.visibleFilters,z=>(c(),y(Ne,{key:z.key,filter:z,value:n.filters.currentValues[z.key],disabled:$.value,valuated:n.filters.isValuated([z]),inline:"",onInput:fe=>p(z,fe)},null,8,["filter","value","disabled","valuated","onInput"]))),128)),n.filters.isValuated(n.entityList.visibleFilters)||(x=n.entityList.query)!=null&&x.search?(c(),y(e(O),{key:0,class:"h-8 underline underline-offset-4 -ml-2",variant:"ghost",size:"sm",onClick:U},{default:r(()=>[A(_(e(D)("sharp::filters.reset_all")),1)]),_:1})):L("",!0)],2)],512)),[[ke,!$.value&&!l.value&&!n.collapsed]]):L("",!0)],2)):L("",!0)])]}),_:3}),n.entityList?(c(),w(B,{key:0},[_e(f(e(xt),{class:q(n.entityList.count>0?"pb-2 !px-0":"")},{default:r(()=>{var ee;return[((ee=n.entityList.data)==null?void 0:ee.length)>0?(c(),y(e(ja),{key:0,class:"w-full data-[scrollbar-x-visible]:pb-4",type:"auto","touch-type":"scroll"},{scrollbar:r(()=>[f(e(tn),null,{default:r(({height:m})=>[f(e(Qa),{class:"absolute inset-0 pointer-events-none"},{default:r(({bottom:ne})=>[f(e(ot),{class:"z-20 [@media(hover:hover)]:bg-background pointer-events-auto will-change-transform",orientation:"horizontal",style:le({transform:`translate3d(0, ${Math.max(0,ne-m)*-1}px, 0)`})},null,8,["style"])]),_:2},1024)]),_:1})]),default:r(()=>[f(e(Xa),{"no-scroll":"",class:"w-max min-w-full max-w-[768px] md:max-w-[1024px] @3xl:w-full @3xl:max-w-none"},{default:r(()=>[f(e(Ya),{class:q(ve.value.some(m=>m.label)?"":"collapse [&_tr]:border-0")},{default:r(()=>[f(e(Qe),{class:"hover:bg-transparent lg:first:*:pl-6 lg:last:*:pr-6"},{default:r(()=>[l.value?(c(),y(e(Le),{key:0},{default:r(()=>b[7]||(b[7]=[E("span",{class:"sr-only"},"Select...",-1)])),_:1})):L("",!0),(c(!0),w(B,null,ae(ve.value,(m,ne)=>(c(),y(e(Le),{key:m.key,class:"max-w-[70cqw] md:w-[var(--width,auto)]",style:le({"--width":m.width==="fill"?100/ve.value.length+"%":m.width?m.width:m.type==="state"?0:null})},{default:r(()=>[m.sortable?(c(),y(e(O),{key:0,variant:"ghost",size:"sm",class:"-ml-3 h-8 data-[state=open]:bg-accent",onClick:K=>S(m.key)},{default:r(()=>[E("span",null,_(m.label),1),n.entityList.currentSort===m.key?(c(),w(B,{key:0},[n.entityList.currentSortDir==="desc"?(c(),y(e(ya),{key:0,class:"ml-2 h-3.5 w-3.5"})):n.entityList.currentSortDir==="asc"?(c(),y(e(ba),{key:1,class:"ml-2 h-3.5 w-3.5"})):L("",!0)],64)):(c(),y(e(Zt),{key:1,class:"ml-2 h-3.5 w-3.5"}))]),_:2},1032,["onClick"])):(c(),w(B,{key:1},[A(_(m.label),1)],64))]),_:2},1032,["style"]))),128)),!$.value&&!l.value&&n.entityList.data.some(m=>n.entityList.instanceHasActions(m,n.showEntityState))?(c(),y(e(Le),{key:1,class:"w-2"},{default:r(()=>b[8]||(b[8]=[E("span",{class:"sr-only"},"Edit",-1)])),_:1})):L("",!0),$.value?(c(),y(e(Le),{key:2},{default:r(()=>b[9]||(b[9]=[E("span",{class:"sr-only"},"Select...",-1)])),_:1})):L("",!0)]),_:1})]),_:1},8,["class"]),f(e(Ma),{class:"group",ref_key:"sortableTableBody",ref:te},{default:r(()=>[(c(!0),w(B,null,ae(g.value??n.entityList.data,(m,ne)=>(c(),y(e(Qe),{key:n.entityList.instanceId(m),class:q(e(G)("relative hover:bg-transparent has-[[data-row-action]:hover]:bg-muted/50 has-[[aria-expanded=true]]:bg-muted/50 lg:first:*:pl-6 lg:last:*:pr-6",$.value?"cursor-move hover:bg-muted/50 group-[:has(.sortable-chosen)]:bg-background [&.sortable-chosen]:transition-none":"")),"data-instance-row":n.entityList.instanceId(m)},{default:r(()=>[l.value&&d.value?(c(),y(e(pe),{key:0},{default:r(()=>[f(e(ea),{class:"block",id:`check-${n.entityKey}-${n.entityList.instanceId(m)}`,"model-value":d.value[n.entityList.instanceId(m)],"onUpdate:modelValue":K=>d.value[n.entityList.instanceId(m)]=K},null,8,["id","model-value","onUpdate:modelValue"]),E("label",{class:"absolute inset-0 z-20","data-row-action":"",for:`check-${n.entityKey}-${n.entityList.instanceId(m)}`},b[10]||(b[10]=[E("span",{class:"sr-only"},"Select",-1)]),8,fn)]),_:2},1024)):L("",!0),(c(!0),w(B,null,ae(ve.value,(K,x)=>(c(),w(B,{key:K.key},[K.type==="state"&&n.entityList.config.state&&n.showEntityState?(c(),y(e(pe),{key:0,class:"max-w-[70cqw]"},{default:r(()=>[f(e(me),null,{default:r(()=>[f(e(ye),{"as-child":""},{default:r(()=>[f(e(O),{class:"relative disabled:opacity-100 -mx-3",variant:"ghost",size:"sm",disabled:!n.entityList.instanceCanUpdateState(m)},{default:r(()=>[f(e(Xe),{variant:"outline"},{default:r(()=>{var z;return[f(Pe,{class:"-ml-0.5 mr-1.5","state-value":n.entityList.instanceStateValue(m)},null,8,["state-value"]),A(" "+_((z=n.entityList.instanceStateValue(m))==null?void 0:z.label),1)]}),_:2},1024)]),_:2},1032,["disabled"])]),_:2},1024),f(e(we),{align:"start","align-offset":-16},{default:r(()=>[(c(!0),w(B,null,ae(n.entityList.config.state.values,z=>(c(),y(e(Me),{key:z.value,"model-value":z.value==n.entityList.instanceState(m),"onUpdate:modelValue":fe=>fe&&F(z.value,n.entityList.instanceId(m))},{default:r(()=>[f(Pe,{class:"mr-1.5","state-value":z},null,8,["state-value"]),E("span",pn,_(z.label),1)]),_:2},1032,["model-value","onUpdate:modelValue"]))),128))]),_:2},1024)]),_:2},1024)]),_:2},1024)):(c(),y(e(pe),{key:1,class:"max-w-[70cqw]"},{default:r(()=>[K.html&&typeof m[K.key]=="string"?(c(),y(va,{key:0,class:q(["break-words [&_a]:relative [&_a]:z-10",{"[&_a]:pointer-events-none":l.value||$.value}]),html:m[K.key]},null,8,["class","html"])):(c(),w(B,{key:1},[A(_(m[K.key]),1)],64)),x===0&&n.entityList.instanceUrl(m)&&!l.value&&!$.value?(c(),y(e(ta),{key:2,class:"absolute inset-0","data-row-action":"",href:n.entityList.instanceUrl(m)},null,8,["href"])):L("",!0)]),_:2},1024))],64))),128)),$.value?(c(),y(e(pe),{key:1,class:"w-0 hidden lg:table-cell @5xl:pl-4"},{default:r(()=>[E("div",hn,[f(e(aa),{class:"w-4 h-4 opacity-50"})])]),_:1})):L("",!0),!$.value&&!l.value&&n.entityList.instanceHasActions(m,n.showEntityState)?(c(),y(e(pe),{key:2,class:"sticky bg-background pl-1 -right-3 z-10 group-data-[scroll-arrived-right=true]/scroll-area:bg-transparent @5xl:pl-4 @5xl:bg-transparent"},{default:r(()=>[b[11]||(b[11]=E("div",{class:"absolute inset-0 -left-2 overflow-hidden","aria-hidden":"true"},null,-1)),b[12]||(b[12]=E("div",{class:"absolute inset-0 -left-4 overflow-hidden pointer-events-none","aria-hidden":"true"},[E("div",{class:"absolute inset-0 left-4 shadow-l-xl dark:border-l shadow-border transition-opacity group-data-[scroll-arrived-right=true]/scroll-area:opacity-0 @5xl:opacity-0","aria-hidden":"true"})],-1)),f(e(me),null,{default:r(()=>[f(e(ye),{"as-child":""},{default:r(()=>[f(e(O),{class:"[@media(hover:hover)]:pointer-events-auto relative",variant:"ghost",size:"icon"},{default:r(()=>[f(e(na),{class:"w-4 h-4"})]),_:1})]),_:1}),f(e(we),{side:"bottom",align:"center"},{default:r(()=>{var K;return[n.entityList.config.state&&n.showEntityState&&n.entityList.instanceCanUpdateState(m)?(c(),w(B,{key:0},[f(e(sa),null,{default:r(()=>[f(e(la),null,{default:r(()=>[f(e(ra),null,{default:r(()=>[A(_(e(D)("sharp::modals.entity_state.edit.title")),1)]),_:1}),f(e(oa),null,{default:r(()=>[f(e(ia),null,{default:r(()=>[(c(!0),w(B,null,ae(n.entityList.config.state.values,x=>(c(),y(e(Me),{key:x.value,"model-value":x.value==n.entityList.instanceState(m),"onUpdate:modelValue":z=>z&&F(x.value,n.entityList.instanceId(m))},{default:r(()=>[f(Pe,{class:"mr-1.5","state-value":x},null,8,["state-value"]),E("span",vn,_(x.label),1)]),_:2},1032,["model-value","onUpdate:modelValue"]))),128))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:2},1024),f(e(ge),{class:"last:hidden"})],64)):L("",!0),f(je,{commands:n.entityList.instanceCommands(m),onSelect:x=>j(x,n.entityList.instanceId(m))},null,8,["commands","onSelect"]),!n.entityList.config.deleteHidden&&n.entityList.instanceCanDelete(m)?(c(),w(B,{key:1},[(K=n.entityList.instanceCommands(m))!=null&&K.flat().length?(c(),y(e(ge),{key:0,class:"first:hidden"})):L("",!0),f(e(be),{class:"text-destructive",onClick:x=>P(n.entityList.instanceId(m))},{default:r(()=>[A(_(e(D)("sharp::action_bar.form.delete_button")),1)]),_:2},1032,["onClick"])],64)):L("",!0)]}),_:2},1024)]),_:2},1024)]),_:2},1024)):L("",!0)]),_:2},1032,["class","data-instance-row"]))),128))]),_:1},512)]),_:1})]),_:1})):(c(),w("div",mn,_(e(D)("sharp::entity_list.empty_text")),1))]}),_:1},8,["class"]),[[ke,!n.collapsed]]),(V=n.entityList.meta)!=null&&V.prev_page_url||(se=n.entityList.meta)!=null&&se.next_page_url?_e((c(),y(e(Gt),{key:0,class:"px-4 pt-4 lg:px-6"},{default:r(()=>[f(Ka,{"entity-list":n.entityList,"links-openable":!n.inline,onChange:C},null,8,["entity-list","links-openable"])]),_:1},512)),[[ke,!n.collapsed]]):L("",!0)],64)):L("",!0)]}),_:3},8,["class"])],512)]}),_:3},8,["commands"]))}});class ut{constructor(t,a,s,u){Object.assign(this,t),this.entityKey=a,this.hiddenFilters=s,this.hiddenCommands=u}get count(){var t;return((t=this.meta)==null?void 0:t.total)??this.data.length}get currentSort(){var t;return((t=this.query)==null?void 0:t.sort)??this.config.defaultSort}get currentSortDir(){var t;return((t=this.query)==null?void 0:t.dir)??this.config.defaultSortDir}get visibleFilters(){var t;return(t=this.config.filters)==null?void 0:t._root.filter(a=>{var s;return!((s=this.hiddenFilters)!=null&&s[a.key])})}get visibleCommands(){var t,a,s,u;return{instance:(a=(t=this.config.commands)==null?void 0:t.instance)==null?void 0:a.map(d=>d.filter(l=>{var o,p;return!((p=(o=this.hiddenCommands)==null?void 0:o.instance)!=null&&p.includes(l.key))})),entity:(u=(s=this.config.commands)==null?void 0:s.entity)==null?void 0:u.map(d=>d.filter(l=>{var o,p;return!((p=(o=this.hiddenCommands)==null?void 0:o.entity)!=null&&p.includes(l.key))}))}}get allowedEntityCommands(){var t;return((t=this.visibleCommands.entity)==null?void 0:t.map(a=>a.filter(s=>s.authorization)))??[]}get primaryCommand(){return this.allowedEntityCommands.flat().find(t=>t.primary)}get canSelect(){return this.allowedEntityCommands.flat().some(t=>t.instanceSelection)}get canReorder(){return this.config.reorderable&&this.authorizations.reorder&&this.data.length>1}withRefreshedItems(t){return this.data=this.data.map(a=>t.find(s=>this.instanceId(s)===this.instanceId(a))??a),new ut(this,this.entityKey)}dropdownEntityCommands(t){return this.allowedEntityCommands.map(a=>a.filter(s=>t?!!s.instanceSelection:!s.primary))}instanceId(t){return t[this.config.instanceIdAttribute]}instanceUrl(t){const a=this.entityKey,s=this.instanceId(t);if(!this.authorizations.view.includes(s))return null;if(this.config.hasShowPage)return X("code16.sharp.show.show",{parentUri:re(),entityKey:a,instanceId:s});if(this.forms){const u=Object.values(this.forms).find(d=>d.instances.includes(s));return X("code16.sharp.form.edit",{parentUri:re(),entityKey:`${a}:${u.key}`,instanceId:s})}return X("code16.sharp.form.edit",{parentUri:re(),entityKey:a,instanceId:s})}instanceState(t){return this.config.state?t[this.config.state.attribute]:null}instanceStateValue(t){var a;return(a=this.config.state)==null?void 0:a.values.find(s=>s.value===this.instanceState(t))}instanceCanUpdateState(t){return Array.isArray(this.config.state.authorization)?this.config.state.authorization.includes(this.instanceId(t)):!!this.config.state.authorization}instanceCanDelete(t){var a;return Array.isArray(this.authorizations.delete)?(a=this.authorizations.delete)==null?void 0:a.includes(this.instanceId(t)):!!this.authorizations.delete}instanceCommands(t){var a,s;return(s=(a=this.visibleCommands)==null?void 0:a.instance)==null?void 0:s.map(u=>u.filter(d=>Array.isArray(d.authorization)?d.authorization.includes(this.instanceId(t)):d.authorization))}instanceHasActions(t,a){var s;return((s=this.instanceCommands(t))==null?void 0:s.flat().length)>0||this.config.state&&a&&this.instanceCanUpdateState(t)||!this.config.deleteHidden&&this.instanceCanDelete(t)}}export{ut as E,wn as _,Pe as a}; diff --git a/dist/assets/Error-DsGYQx9i.js b/dist/assets/Error-DsGYQx9i.js new file mode 100644 index 000000000..741df22db --- /dev/null +++ b/dist/assets/Error-DsGYQx9i.js @@ -0,0 +1 @@ +import{d as _,c as o,w as a,az as l,o as c,j as u,a as s,u as e,Q as f,O as i,b as n,t as r,T as m}from"./sharp-DDNPuC1w.js";import{_ as d}from"./CardDescription.vue_vue_type_script_setup_true_lang-BVFKuiG8.js";const p={class:"container"},N=_({__name:"Error",props:{status:{},message:{}},setup($){return(t,g)=>(c(),o(l,null,{default:a(()=>[u("div",p,[s(e(m),null,{default:a(()=>[s(e(f),null,{default:a(()=>[s(e(i),null,{default:a(()=>[n(" Error "+r(t.status),1)]),_:1}),s(e(d),null,{default:a(()=>[n(r(t.message),1)]),_:1})]),_:1})]),_:1})])]),_:1}))}});export{N as default}; diff --git a/dist/assets/ForgotPassword-B5chsHIk.js b/dist/assets/ForgotPassword-B5chsHIk.js new file mode 100644 index 000000000..c140db636 --- /dev/null +++ b/dist/assets/ForgotPassword-B5chsHIk.js @@ -0,0 +1 @@ +import{d as n,C as p,c as _,w as a,o as f,a as e,b as t,t as o,u as s,_ as r,s as m,e as d,f as c,g,h,i as w,j as $,k as b,l as V,m as k,n as C,r as x}from"./sharp-DDNPuC1w.js";import{_ as N,a as y,b as B}from"./FormItem.vue_vue_type_script_setup_true_lang-DaBtyhPx.js";import{_ as v}from"./Title.vue_vue_type_script_setup_true_lang-MxfiLW2l.js";import{_ as S}from"./FormMessage.vue_vue_type_script_setup_true_lang-DKDyAYo9.js";import"./CardDescription.vue_vue_type_script_setup_true_lang-BVFKuiG8.js";const U=n({__name:"ForgotPassword",props:{status:{}},setup(j){const l=p({email:""});return(q,i)=>(f(),_(N,null,{default:a(()=>[e(v,null,{default:a(()=>[t(o(s(r)("sharp::pages/auth/forgot-password.title")),1)]),_:1}),s(m)("status")?(f(),_(s(d),{key:0,class:"mb-4"},{default:a(()=>[e(s(c),{class:"w-4 h-4"}),e(s(g),null,{default:a(()=>[t(o(s(m)("status_title")),1)]),_:1}),e(s(h),null,{default:a(()=>[t(o(s(m)("status")),1)]),_:1})]),_:1})):w("",!0),$("form",{onSubmit:i[1]||(i[1]=C(u=>s(l).post(s(x)("code16.sharp.password.request.post")),["prevent"]))},[e(B,null,{title:a(()=>[t(o(s(r)("sharp::pages/auth/forgot-password.title")),1)]),description:a(()=>[t(o(s(r)("sharp::pages/auth/forgot-password.description")),1)]),footer:a(()=>[e(s(b),{class:"w-full",type:"submit"},{default:a(()=>[t(o(s(r)("sharp::pages/auth/forgot-password.submit")),1)]),_:1})]),default:a(()=>[e(s(y),null,{default:a(()=>[e(s(V),{for:"email"},{default:a(()=>[t(o(s(r)("sharp::pages/auth/forgot-password.email_field")),1)]),_:1}),e(s(k),{id:"email",modelValue:s(l).email,"onUpdate:modelValue":i[0]||(i[0]=u=>s(l).email=u),autofocus:""},null,8,["modelValue"]),e(s(S),{message:s(l).errors.email},null,8,["message"])]),_:1})]),_:1})],32)]),_:1}))}});export{U as default}; diff --git a/dist/assets/Form-DeGlYxEg.js b/dist/assets/Form-DeGlYxEg.js new file mode 100644 index 000000000..e37ccd7e6 --- /dev/null +++ b/dist/assets/Form-DeGlYxEg.js @@ -0,0 +1 @@ +import{d as I,r as s,aM as V,ai as y,ar as $,aN as z,c as g,w as o,az as A,o as a,u as e,J as D,i as S,a as d,b as n,t as i,j as U,k as C,W as j,A as m,_ as l,F as u,aK as E}from"./sharp-DDNPuC1w.js";import{_ as M}from"./Title.vue_vue_type_script_setup_true_lang-MxfiLW2l.js";import{_ as T}from"./PageBreadcrumb.vue_vue_type_script_setup_true_lang-D6ipke--.js";const x={class:"flex gap-4"},O=I({__name:"Form",props:{form:{},breadcrumb:{},errors:{}},setup(N){const f=N,{entityKey:B,instanceId:k}=s().params,r=new V(f.form,B,k),b=y(!1),p=y(!1),v=y("");$(()=>r.errors,()=>{Object.keys(r.errors).length===0&&(p.value=!1)},{deep:!0});function w(){const{parentUri:t,entityKey:_,instanceId:h}=s().params,c=()=>{b.value=!0},F=()=>{b.value=!1},K=()=>{r.errors=f.errors,p.value=!0,v.value=f.errors.error};s().current("code16.sharp.form.create")?E.post(s("code16.sharp.form.store",{parentUri:t,entityKey:_}),r.serializedData,{onStart:c,onFinish:F,onError:K}):s().current("code16.sharp.form.edit")&&E.post(s("code16.sharp.form.update",{parentUri:t,entityKey:_,instanceId:h}),r.serializedData,{onStart:c,onFinish:F,onError:K})}return(t,_)=>{const h=z("SharpForm");return a(),g(A,null,{breadcrumb:o(()=>[e(D)("sharp.display_breadcrumb")?(a(),g(T,{key:0,breadcrumb:t.breadcrumb},null,8,["breadcrumb"])):S("",!0)]),default:o(()=>[d(M,{breadcrumb:t.breadcrumb},null,8,["breadcrumb"]),d(h,{form:e(r),"show-error-alert":p.value,"error-alert-message":v.value,onSubmit:w},{title:o(()=>[n(i(t.breadcrumb.items.at(-1).documentTitleLabel),1)]),footer:o(()=>[U("div",x,[d(e(C),{variant:"outline","as-child":""},{default:o(()=>{var c;return[d(e(j),{href:(c=t.breadcrumb.items.at(-2))==null?void 0:c.url},{default:o(()=>[e(r).canEdit?(a(),m(u,{key:0},[n(i(e(l)("sharp::action_bar.form.cancel_button")),1)],64)):(a(),m(u,{key:1},[n(i(e(l)("sharp::action_bar.form.back_button")),1)],64))]),_:1},8,["href"])]}),_:1}),e(r).canEdit?(a(),g(e(C),{key:0,style:{"min-width":"6.5em"},disabled:e(r).isUploading||b.value,onClick:w},{default:o(()=>[e(r).isUploading?(a(),m(u,{key:0},[n(i(e(l)("sharp::action_bar.form.submit_button.pending.upload")),1)],64)):e(k)||e(r).config.isSingle?(a(),m(u,{key:1},[n(i(e(l)("sharp::action_bar.form.submit_button.update")),1)],64)):(a(),m(u,{key:2},[n(i(e(l)("sharp::action_bar.form.submit_button.create")),1)],64))]),_:1},8,["disabled"])):S("",!0)])]),_:1},8,["form","show-error-alert","error-alert-message"])]),_:1})}}});export{O as default}; diff --git a/dist/assets/FormItem.vue_vue_type_script_setup_true_lang-DaBtyhPx.js b/dist/assets/FormItem.vue_vue_type_script_setup_true_lang-DaBtyhPx.js new file mode 100644 index 000000000..5ddf5d35c --- /dev/null +++ b/dist/assets/FormItem.vue_vue_type_script_setup_true_lang-DaBtyhPx.js @@ -0,0 +1 @@ +import{o as a,A as p,M as _,d as h,j as e,a as n,c as d,u as t,q as c,t as i,N as m,w as o,J as u,O as f,i as v,Q as $,R as g,S as x,T as z,U as w,z as y}from"./sharp-DDNPuC1w.js";import{_ as b}from"./CardDescription.vue_vue_type_script_setup_true_lang-BVFKuiG8.js";const k={fill:"currentColor",viewBox:"0 0 641.06 97.344",xmlns:"http://www.w3.org/2000/svg"};function C(l,s){return a(),p("svg",k,s[0]||(s[0]=[_('',8)]))}const S={render:C},B={id:"sharp-app",class:"p-4 py-16 min-h-screen flex justify-center items-center"},N={class:"absolute inset-0 -z-10"},V={class:"grid min-h-screen w-full md:grid-cols-[220px_1fr] lg:grid-cols-[280px_1fr]"},A={class:"flex h-14 items-center border-b border-transparent px-4 lg:px-6"},j={key:0,class:"text-accent-foreground"},L={class:"w-full max-w-sm"},q={class:"text-center text-xs text-muted-foreground opacity-50 mt-2"},D={href:"https://sharp.code16.fr/docs/",target:"_blank"},M=h({__name:"AuthLayout",setup(l){return(s,r)=>(a(),p("div",B,[e("div",N,[e("div",V,[e("div",A,[s.$page.props.logo?(a(),p("div",j,[n(m)])):(a(),d(t(S),{key:1,class:"h-4 text-accent-foreground"}))])])]),e("div",L,[c(s.$slots,"default"),e("p",q,[r[0]||(r[0]=e("span",null,"powered by ",-1)),e("a",D,"Sharp "+i(s.$page.props.sharpVersion),1)])])]))}}),E={class:"text-sm text-muted-foreground"},O=h({__name:"AuthCard",setup(l){return(s,r)=>(a(),d(t(z),null,{default:o(()=>[n(t($),null,{default:o(()=>[e("h4",E,i(t(u)("sharp.name")),1),n(t(f),{class:"text-2xl"},{default:o(()=>[c(s.$slots,"title")]),_:3}),s.$slots.description?(a(),d(t(b),{key:0},{default:o(()=>[c(s.$slots,"description")]),_:3})):v("",!0)]),_:3}),n(t(g),null,{default:o(()=>[c(s.$slots,"default")]),_:3}),n(t(x),null,{default:o(()=>[c(s.$slots,"footer")]),_:3})]),_:3}))}}),Q=h({__name:"FormItem",props:{class:{}},setup(l){const s=l;return(r,F)=>(a(),p("div",{class:w(t(y)("space-y-2",s.class))},[c(r.$slots,"default")],2))}});export{M as _,Q as a,O as b}; diff --git a/dist/assets/FormMessage.vue_vue_type_script_setup_true_lang-DKDyAYo9.js b/dist/assets/FormMessage.vue_vue_type_script_setup_true_lang-DKDyAYo9.js new file mode 100644 index 000000000..c45b9cdf6 --- /dev/null +++ b/dist/assets/FormMessage.vue_vue_type_script_setup_true_lang-DKDyAYo9.js @@ -0,0 +1 @@ +import{d as s,o as t,A as o,t as a,i as m}from"./sharp-DDNPuC1w.js";const r={key:0,class:"text-sm font-medium text-destructive"},i=s({__name:"FormMessage",props:{message:{}},setup(n){return(e,p)=>e.message?(t(),o("p",r,a(e.message),1)):m("",!0)}});export{i as _}; diff --git a/dist/assets/GeistVF-p2GUc8qZ.woff2 b/dist/assets/GeistVF-p2GUc8qZ.woff2 new file mode 100644 index 000000000..9983e92a0 Binary files /dev/null and b/dist/assets/GeistVF-p2GUc8qZ.woff2 differ diff --git a/dist/assets/Impersonate-D1E8YTjm.js b/dist/assets/Impersonate-D1E8YTjm.js new file mode 100644 index 000000000..ad27fe217 --- /dev/null +++ b/dist/assets/Impersonate-D1E8YTjm.js @@ -0,0 +1 @@ +import{d as m,p as w,o as _,c as f,w as s,q as b,v,u as e,P as y,x as C,y as S,z as B,C as k,A as h,a,F as $,b as i,t as l,_ as p,j as d,k as G,r as g,l as V,B as P,D as U,E as j,G as I,H as N,n as D,I as E}from"./sharp-DDNPuC1w.js";import{_ as F,b as q,a as z}from"./FormItem.vue_vue_type_script_setup_true_lang-DaBtyhPx.js";import{_ as A}from"./Title.vue_vue_type_script_setup_true_lang-MxfiLW2l.js";import"./CardDescription.vue_vue_type_script_setup_true_lang-BVFKuiG8.js";const[X,H]=C("SelectGroup"),L=m({__name:"SelectGroup",props:{asChild:{type:Boolean},as:{}},setup(n){const u=n,t=w(void 0,"reka-select-group");return H({id:t}),(o,r)=>(_(),f(e(y),v({role:"group"},u,{"aria-labelledby":e(t)}),{default:s(()=>[b(o.$slots,"default")]),_:3},16,["aria-labelledby"]))}}),M=m({__name:"SelectGroup",props:{asChild:{type:Boolean},as:{},class:{}},setup(n){const u=n,t=S(()=>{const{class:o,...r}=u;return r});return(o,r)=>(_(),f(e(L),v({class:e(B)("p-1 w-full",u.class)},t.value),{default:s(()=>[b(o.$slots,"default")]),_:3},16,["class"]))}}),O={class:"w-full"},T={class:"mt-4 text-center"},J=["href"],Y=m({__name:"Impersonate",props:{impersonateUsers:{}},setup(n){const t=k({user_id:Object.keys(n.impersonateUsers??{})[0]});return(o,r)=>(_(),h($,null,[a(A,null,{default:s(()=>[i(l(e(p)("sharp::pages/auth/impersonate.title")),1)]),_:1}),a(F,null,{default:s(()=>[d("form",{onSubmit:r[1]||(r[1]=D(c=>e(t).post(e(g)("code16.sharp.impersonate.post")),["prevent"]))},[a(q,null,{title:s(()=>[i(l(e(p)("sharp::pages/auth/impersonate.title")),1)]),footer:s(()=>[d("div",O,[a(e(G),{class:"w-full",type:"submit"},{default:s(()=>[i(l(e(p)("sharp::pages/auth/impersonate.button")),1)]),_:1}),d("div",T,[d("a",{class:"text-xs underline",href:e(g)("code16.sharp.login")},l(e(p)("sharp::pages/auth/impersonate.switch_to_password_login")),9,J)])])]),default:s(()=>[a(e(z),null,{default:s(()=>[a(e(V),{for:"user_id"},{default:s(()=>[i(l(e(p)("sharp::pages/auth/impersonate.user_id_field")),1)]),_:1}),a(e(P),{id:"user_id",modelValue:e(t).user_id,"onUpdate:modelValue":r[0]||(r[0]=c=>e(t).user_id=c)},{default:s(()=>[a(e(U),null,{default:s(()=>[a(e(j))]),_:1}),a(e(I),null,{default:s(()=>[a(e(M),null,{default:s(()=>[(_(!0),h($,null,N(o.impersonateUsers,(c,x)=>(_(),f(e(E),{value:x},{default:s(()=>[i(l(c),1)]),_:2},1032,["value"]))),256))]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})],32)]),_:1})],64))}});export{Y as default}; diff --git a/dist/assets/Login-DzUMkx7A.js b/dist/assets/Login-DzUMkx7A.js new file mode 100644 index 000000000..4888b28c6 --- /dev/null +++ b/dist/assets/Login-DzUMkx7A.js @@ -0,0 +1 @@ +import{d as C,C as x,c as p,w as s,o as n,a,b as r,t as l,u as e,_ as i,e as v,g as V,i as u,s as _,f as I,j as f,k as N,l as g,m as y,J as c,A as $,r as E,K as U,n as j}from"./sharp-DDNPuC1w.js";import{_ as S,a as h,b as q}from"./FormItem.vue_vue_type_script_setup_true_lang-DaBtyhPx.js";import{_ as A}from"./Title.vue_vue_type_script_setup_true_lang-MxfiLW2l.js";import{_ as D}from"./TemplateRenderer.vue_vue_type_script_setup_true_lang-td6RXtbk.js";import"./CardDescription.vue_vue_type_script_setup_true_lang-BVFKuiG8.js";const J={class:"grid gap-4"},K={class:"flex items-center"},L=["href"],M={class:"flex items-center space-x-2"},O={key:2,class:"mt-4"},P=C({__name:"Login",props:{loginIsEmail:{type:Boolean},message:{},prefill:{}},setup(B){var w,k;const b=B,t=x({login:(w=b.prefill)==null?void 0:w.login,password:(k=b.prefill)==null?void 0:k.password,remember:!1});return(d,o)=>(n(),p(S,null,{default:s(()=>[a(A,null,{default:s(()=>[r(l(e(i)("sharp::pages/auth/login.title")),1)]),_:1}),e(t).hasErrors?(n(),p(e(v),{key:0,class:"mb-4",variant:"destructive"},{default:s(()=>[a(e(V),{class:"mb-0"},{default:s(()=>[r(l(Object.values(e(t).errors)[0]),1)]),_:1})]),_:1})):u("",!0),e(_)("status")?(n(),p(e(v),{key:1,class:"mb-4",variant:e(_)("status_level")==="error"?"destructive":"default"},{default:s(()=>[e(_)("status_level")!=="error"?(n(),p(e(I),{key:0,class:"w-4 h-4"})):u("",!0),a(e(V),{class:"mb-0"},{default:s(()=>[r(l(e(_)("status")),1)]),_:1})]),_:1},8,["variant"])):u("",!0),f("form",{onSubmit:o[3]||(o[3]=j(m=>e(t).post(e(E)("code16.sharp.login.post")),["prevent"]))},[a(q,null,{title:s(()=>[r(l(e(i)("sharp::pages/auth/login.title")),1)]),footer:s(()=>[a(e(N),{type:"submit",class:"w-full"},{default:s(()=>[r(l(e(i)("sharp::pages/auth/login.button")),1)]),_:1})]),default:s(()=>[f("div",J,[a(e(h),null,{default:s(()=>[a(e(g),{for:"login"},{default:s(()=>[r(l(d.loginIsEmail?e(i)("sharp::pages/auth/login.login_field_for_email"):e(i)("sharp::pages/auth/login.login_field")),1)]),_:1}),a(e(y),{id:"login",type:d.loginIsEmail?"email":"text",autocomplete:d.loginIsEmail?"email":"username",modelValue:e(t).login,"onUpdate:modelValue":o[0]||(o[0]=m=>e(t).login=m),autofocus:""},null,8,["type","autocomplete","modelValue"])]),_:1}),a(e(h),null,{default:s(()=>[f("div",K,[a(e(g),{for:"password"},{default:s(()=>[r(l(e(i)("sharp::pages/auth/login.password_field")),1)]),_:1}),e(c)("sharp.auth.forgotten_password.enabled")&&e(c)("sharp.auth.forgotten_password.show_reset_link_in_login_form")?(n(),$("a",{key:0,href:e(E)("code16.sharp.password.request"),class:"ml-auto inline-block text-sm underline"},l(e(i)("sharp::pages/auth/login.forgot_password_link")),9,L)):u("",!0)]),a(e(y),{id:"password",type:"password",modelValue:e(t).password,"onUpdate:modelValue":o[1]||(o[1]=m=>e(t).password=m),autocomplete:"current-password"},null,8,["modelValue"])]),_:1}),e(c)("sharp.auth.suggest_remember_me")?(n(),p(e(h),{key:0},{default:s(()=>[f("div",M,[a(e(U),{id:"remember_me",modelValue:e(t).remember,"onUpdate:modelValue":o[2]||(o[2]=m=>e(t).remember=m)},null,8,["modelValue"]),a(e(g),{for:"remember_me"},{default:s(()=>[r(l(e(i)("sharp::pages/auth/login.remember")),1)]),_:1})])]),_:1})):u("",!0)])]),_:1})],32),d.message?(n(),$("div",O,[a(D,{template:d.message},null,8,["template"])])):u("",!0)]),_:1}))}});export{P as default}; diff --git a/dist/assets/Login2Fa-B3KJPY3T.js b/dist/assets/Login2Fa-B3KJPY3T.js new file mode 100644 index 000000000..9bd4b4d75 --- /dev/null +++ b/dist/assets/Login2Fa-B3KJPY3T.js @@ -0,0 +1 @@ +import{d as p,C as m,c as _,w as a,o as d,a as s,b as o,t as l,u as e,_ as r,e as c,h,i as g,j as f,L as $,k as b,l as v,m as V,n as x,r as y}from"./sharp-DDNPuC1w.js";import{_ as T,a as k,b as w}from"./FormItem.vue_vue_type_script_setup_true_lang-DaBtyhPx.js";import{_ as C}from"./Title.vue_vue_type_script_setup_true_lang-MxfiLW2l.js";import"./CardDescription.vue_vue_type_script_setup_true_lang-BVFKuiG8.js";const L=["innerHTML"],H=p({__name:"Login2Fa",props:{helpText:{}},setup(N){const t=m({code:""});return(i,n)=>(d(),_(T,null,{default:a(()=>[s(C,null,{default:a(()=>[o(l(e(r)("sharp::pages/auth/login.title")),1)]),_:1}),e(t).hasErrors?(d(),_(e(c),{key:0,class:"mb-4",variant:"destructive"},{default:a(()=>[s(e(h),null,{default:a(()=>[o(l(Object.values(e(t).errors)[0]),1)]),_:1})]),_:1})):g("",!0),f("form",{onSubmit:n[1]||(n[1]=x(u=>e(t).post(e(y)("code16.sharp.login.2fa.post")),["prevent"]))},[s(w,null,$({title:a(()=>[o(l(e(r)("sharp::pages/auth/login.title")),1)]),footer:a(()=>[s(e(b),{type:"submit",class:"w-full"},{default:a(()=>[o(l(e(r)("sharp::pages/auth/login.button")),1)]),_:1})]),default:a(()=>[s(e(k),null,{default:a(()=>[s(e(v),{for:"code"},{default:a(()=>[o(l(e(r)("sharp::pages/auth/login.code_field")),1)]),_:1}),s(e(V),{type:"text",id:"code",modelValue:e(t).code,"onUpdate:modelValue":n[0]||(n[0]=u=>e(t).code=u)},null,8,["modelValue"])]),_:1})]),_:2},[i.helpText?{name:"description",fn:a(()=>[f("div",{class:"space-y-2",innerHTML:i.helpText},null,8,L)]),key:"0"}:void 0]),1024)],32)]),_:1}))}});export{H as default}; diff --git a/dist/assets/PageBreadcrumb.vue_vue_type_script_setup_true_lang-D6ipke--.js b/dist/assets/PageBreadcrumb.vue_vue_type_script_setup_true_lang-D6ipke--.js new file mode 100644 index 000000000..ab416a32d --- /dev/null +++ b/dist/assets/PageBreadcrumb.vue_vue_type_script_setup_true_lang-D6ipke--.js @@ -0,0 +1 @@ +import{d,o as t,A as c,q as i,U as o,a,u as e,bJ as P,j as C,z as m,c as B,w as r,P as E,bm as I,ai as L,W as w,b as f,t as _,F as b,i as g,aH as N,aI as V,aJ as z,H as k,a$ as S}from"./sharp-DDNPuC1w.js";const j=d({__name:"Breadcrumb",props:{class:{}},setup(n){const l=n;return(s,u)=>(t(),c("nav",{"aria-label":"breadcrumb",class:o(l.class)},[i(s.$slots,"default")],2))}}),A=d({__name:"BreadcrumbEllipsis",props:{class:{}},setup(n){const l=n;return(s,u)=>(t(),c("span",{role:"presentation","aria-hidden":"true",class:o(e(m)("flex h-9 w-9 items-center justify-center",l.class))},[i(s.$slots,"default",{},()=>[a(e(P),{class:"h-4 w-4"})]),u[0]||(u[0]=C("span",{class:"sr-only"},"More",-1))],2))}}),h=d({__name:"BreadcrumbItem",props:{class:{}},setup(n){const l=n;return(s,u)=>(t(),c("li",{class:o(e(m)("inline-flex items-center gap-1.5",l.class))},[i(s.$slots,"default")],2))}}),y=d({__name:"BreadcrumbLink",props:{asChild:{type:Boolean},as:{default:"a"},class:{}},setup(n){const l=n;return(s,u)=>(t(),B(e(E),{as:s.as,"as-child":s.asChild,class:o(e(m)("transition-colors hover:text-foreground",l.class))},{default:r(()=>[i(s.$slots,"default")]),_:3},8,["as","as-child","class"]))}}),F=d({__name:"BreadcrumbList",props:{class:{}},setup(n){const l=n;return(s,u)=>(t(),c("ol",{class:o(e(m)("flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5",l.class))},[i(s.$slots,"default")],2))}}),x=d({__name:"BreadcrumbPage",props:{class:{}},setup(n){const l=n;return(s,u)=>(t(),c("span",{role:"link","aria-disabled":"true","aria-current":"page",class:o(e(m)("font-normal text-foreground",l.class))},[i(s.$slots,"default")],2))}}),$=d({__name:"BreadcrumbSeparator",props:{class:{}},setup(n){const l=n;return(s,u)=>(t(),c("li",{role:"presentation","aria-hidden":"true",class:o(e(m)("[&>svg]:size-3.5",l.class))},[i(s.$slots,"default",{},()=>[a(e(I))])],2))}}),J=d({__name:"PageBreadcrumb",props:{breadcrumb:{}},setup(n){const l=L();return document.addEventListener("breadcrumb:updateAppendItem",s=>{l.value=s.detail}),(s,u)=>{var v;return(v=s.breadcrumb.items)!=null&&v.length?(t(),B(e(j),{key:0},{default:r(()=>[a(e(F),{class:"flex-nowrap max-w-screen overflow-hidden"},{default:r(()=>[s.breadcrumb.items.length>1?(t(),c(b,{key:0},[a(e(h),{class:"min-w-0"},{default:r(()=>[a(e(y),{"as-child":""},{default:r(()=>[a(e(w),{class:"truncate",href:s.breadcrumb.items[0].url},{default:r(()=>[f(_(s.breadcrumb.items[0].label),1)]),_:1},8,["href"])]),_:1})]),_:1}),a(e($))],64)):g("",!0),s.breadcrumb.items.length>2?(t(),c("div",{key:1,class:o(["contents",s.breadcrumb.items.length===3?"sm:hidden":""])},[a(e(h),null,{default:r(()=>[a(e(N),null,{default:r(()=>[a(e(V),{class:"flex items-center gap-1"},{default:r(()=>[a(e(A),{class:"h-4 w-4"}),u[0]||(u[0]=C("span",{class:"sr-only"},"Toggle menu",-1))]),_:1}),a(e(z),null,{default:r(()=>[(t(!0),c(b,null,k(s.breadcrumb.items.slice(1,-1),p=>(t(),B(e(S),{class:"sm:last:hidden","as-child":""},{default:r(()=>[a(e(w),{href:p.url},{default:r(()=>[f(_(p.label),1)]),_:2},1032,["href"])]),_:2},1024))),256))]),_:1})]),_:1})]),_:1}),a(e($))],2)):g("",!0),(t(!0),c(b,null,k(s.breadcrumb.items.slice(1).slice(-2,-1),p=>(t(),c(b,null,[a(e(h),{class:"min-w-0 max-sm:hidden"},{default:r(()=>[a(e(y),{"as-child":""},{default:r(()=>[a(e(w),{class:"truncate min-w-0",href:p.url},{default:r(()=>[f(_(p.label),1)]),_:2},1032,["href"])]),_:2},1024)]),_:2},1024),a(e($),{class:"max-sm:hidden"})],64))),256)),a(e(h),null,{default:r(()=>[a(e(x),{class:"truncate w-max min-w-0 max-w-full"},{default:r(()=>[f(_(s.breadcrumb.items.at(-1).label),1)]),_:1})]),_:1}),l.value?(t(),c(b,{key:2},[a(e($)),a(e(h),null,{default:r(()=>[a(e(x),null,{default:r(()=>[f(_(l.value.label),1)]),_:1})]),_:1})],64)):g("",!0)]),_:1})]),_:1})):g("",!0)}}});export{J as _}; diff --git a/dist/assets/ResetPassword-2qSxuu9O.js b/dist/assets/ResetPassword-2qSxuu9O.js new file mode 100644 index 000000000..b5dade0d0 --- /dev/null +++ b/dist/assets/ResetPassword-2qSxuu9O.js @@ -0,0 +1 @@ +import{d as c,C as g,c as h,w as e,o as V,a,b as t,t as l,u as s,_ as d,j as _,k as $,l as p,m as n,n as k,r as b}from"./sharp-DDNPuC1w.js";import{_ as y,a as m,b as x}from"./FormItem.vue_vue_type_script_setup_true_lang-DaBtyhPx.js";import{_ as v}from"./Title.vue_vue_type_script_setup_true_lang-MxfiLW2l.js";import{_ as u}from"./FormMessage.vue_vue_type_script_setup_true_lang-DKDyAYo9.js";import"./CardDescription.vue_vue_type_script_setup_true_lang-BVFKuiG8.js";const B={class:"grid gap-4"},F=c({__name:"ResetPassword",props:{token:{},email:{}},setup(w){const f=w,o=g({token:f.token,email:f.email,password:"",password_confirmation:""});return(C,r)=>(V(),h(y,null,{default:e(()=>[a(v,null,{default:e(()=>[t(l(s(d)("sharp::pages/auth/reset-password.title")),1)]),_:1}),_("form",{onSubmit:r[3]||(r[3]=k(i=>s(o).post(s(b)("code16.sharp.password.reset.post"),{onFinish:()=>{s(o).reset("password","password_confirmation")}}),["prevent"]))},[a(x,null,{title:e(()=>[t(l(s(d)("sharp::pages/auth/reset-password.title")),1)]),description:e(()=>[t(l(s(d)("sharp::pages/auth/reset-password.description")),1)]),footer:e(()=>[a(s($),{class:"w-full",type:"submit"},{default:e(()=>[t(l(s(d)("sharp::pages/auth/reset-password.submit")),1)]),_:1})]),default:e(()=>[_("div",B,[a(s(m),null,{default:e(()=>[a(s(p),{for:"email"},{default:e(()=>[t(l(s(d)("sharp::pages/auth/reset-password.email_field")),1)]),_:1}),a(s(n),{id:"email",type:"email",modelValue:s(o).email,"onUpdate:modelValue":r[0]||(r[0]=i=>s(o).email=i)},null,8,["modelValue"]),a(s(u),{message:s(o).errors.email},null,8,["message"])]),_:1}),a(s(m),null,{default:e(()=>[a(s(p),{for:"password"},{default:e(()=>[t(l(s(d)("sharp::pages/auth/reset-password.password_field")),1)]),_:1}),a(s(n),{id:"password",type:"password",modelValue:s(o).password,"onUpdate:modelValue":r[1]||(r[1]=i=>s(o).password=i)},null,8,["modelValue"]),a(s(u),{message:s(o).errors.password},null,8,["message"])]),_:1}),a(s(m),null,{default:e(()=>[a(s(p),{for:"password_confirmation"},{default:e(()=>[t(l(s(d)("sharp::pages/auth/reset-password.password_confirmation_field")),1)]),_:1}),a(s(n),{id:"password_confirmation",type:"password",modelValue:s(o).password_confirmation,"onUpdate:modelValue":r[2]||(r[2]=i=>s(o).password_confirmation=i)},null,8,["modelValue"]),a(s(u),{message:s(o).errors.password_confirmation},null,8,["message"])]),_:1})])]),_:1})],32)]),_:1}))}});export{F as default}; diff --git a/dist/assets/Show-NavYqR-6.js b/dist/assets/Show-NavYqR-6.js new file mode 100644 index 000000000..3f79d1cf6 --- /dev/null +++ b/dist/assets/Show-NavYqR-6.js @@ -0,0 +1 @@ +import{d as Z,ai as F,o as l,A as c,q as ue,r as b,aO as M,J as ie,y as ce,aP as fe,ax as me,ay as oe,aQ as I,a as n,w as s,j as S,u as e,O as Y,b as C,t as v,c as h,k as x,aR as re,i as g,v as he,aS as pe,aN as ye,az as _e,aT as ge,U as ee,B as be,aU as ve,G as ke,H as k,F as _,aH as O,aI as Q,X as we,aJ as J,_ as L,aV as $e,aW as Se,aX as Ce,aY as Re,aZ as ze,a_ as te,a$ as Be,W as Fe,aA as Ke,b0 as ae,Q as W,b1 as Ve,aK as Ue,I as Le,b2 as se,b3 as D,R as xe,aL as Te,b4 as Ae,b5 as Ie,b6 as Ee,b7 as P,b8 as qe}from"./sharp-DDNPuC1w.js";import{b as le,c as ne,d as je,p as He}from"./DropdownChevronDown.vue_vue_type_script_setup_true_lang-DZQFkxFU.js";import{_ as Ne,E as De,a as X}from"./EntityList-CrgsiVon.js";import{_ as Pe}from"./Title.vue_vue_type_script_setup_true_lang-MxfiLW2l.js";import{_ as Ge}from"./PageBreadcrumb.vue_vue_type_script_setup_true_lang-D6ipke--.js";import"./TemplateRenderer.vue_vue_type_script_setup_true_lang-td6RXtbk.js";import"./CardDescription.vue_vue_type_script_setup_true_lang-BVFKuiG8.js";const Oe=Z({__name:"Section",setup(R){const a=F(!1);return(o,i)=>(l(),c("section",null,[ue(o.$slots,"default",{collapsed:a.value,onToggle:t=>a.value=!t})]))}});class Qe{constructor(a,o,i){Object.assign(this,a),this.entityKey=o,this.instanceId=i}get formUrl(){const a=this.config.multiformAttribute?this.data[this.config.multiformAttribute]:null;return b().params.instanceId?b("code16.sharp.form.edit",{parentUri:M(),entityKey:a?`${this.entityKey}:${a}`:this.entityKey,instanceId:this.instanceId}):b("code16.sharp.form.create",{parentUri:M(),entityKey:a?`${this.entityKey}:${a}`:this.entityKey})}get instanceState(){return this.config.state?this.data[this.config.state.attribute]:null}get instanceStateValue(){var a;return(a=this.config.state)==null?void 0:a.values.find(o=>o.value===this.instanceState)}get allowedInstanceCommands(){var a,o;return(o=(a=this.config.commands)==null?void 0:a.instance)==null?void 0:o.map(i=>i.filter(t=>t.authorization))}getTitle(a){var o;if(!this.config.titleAttribute)return null;if(this.fields[this.config.titleAttribute]){const i=this.fields[this.config.titleAttribute],t=this.data[this.config.titleAttribute];return i.localized&&typeof(t==null?void 0:t.text)=="object"?(o=t==null?void 0:t.text)==null?void 0:o[a]:t==null?void 0:t.text}return null}sectionFields(a){return a.columns.map(o=>o.fields.flat().map(i=>this.fields[i.key])).flat().filter(Boolean)}sectionHasField(a,o){return this.sectionFields(a).some(i=>i.type===o)}sectionCommands(a){return a.key?(this.config.commands[a.key]??[]).map(o=>o.filter(i=>i.authorization)):null}sectionShouldBeVisible(a,o){return a.columns.map(i=>i.fields).flat(2).some(i=>this.fieldShouldBeVisible(i,o))}fieldRowShouldBeVisible(a,o,i=this.fields,t=this.data){return a.some(r=>this.fieldShouldBeVisible(r,o,i,t))}fieldShouldBeVisible(a,o,i=this.fields,t=this.data){var z;const r=i[a.key];if(!r)return ie("app.debug");if(r.type==="entityList"||r.emptyVisible)return!0;if(r.type==="text"){const p=t[r.key];return r.localized?!!((z=p==null?void 0:p.text)!=null&&z[o]):!!(p!=null&&p.text)}if(r.type==="list"){const p=t[r.key];return(p==null?void 0:p.length)>0}return!!t[r.key]}}function Je(){const R=F({}),a=ce(()=>Object.values(R.value).some(i=>i));function o(i,t){R.value[i]=t}return{isReordering:a,onEntityListReordering:o}}const We={class:"flex items-center gap-x-4"},Xe=Z({__name:"EntityList",props:{field:{},value:{},fieldLayout:{},locale:{},collapsable:{type:Boolean},root:{type:Boolean},isRightCol:{type:Boolean},hideLabel:{type:Boolean},row:{}},setup(R){const a=R,o=F();fe();const i=F(a.collapsable),t=F(null),r=me(),z=oe("entityList",{reload:(d,{formModal:u})=>{K(),u.shouldReopen&&u.reopen()},refresh:(d,{formModal:u})=>{t.value=t.value.withRefreshedItems(d.items),u.shouldReopen&&u.reopen()}});function p(d){t.value=new De(d,a.field.entityListKey,a.field.hiddenFilters,a.field.hiddenCommands),r.update(d.config.filters,d.filterValues)}async function E(d){const u=await I.get(b("code16.sharp.api.list",{entityKey:a.field.entityListKey}),{params:d}).then(y=>y.data);p(u)}async function T(d,u){const y=await I.post(b("code16.sharp.api.list.filters.store",{entityKey:a.field.entityListKey}),{query:t.value.query,filterValues:r.nextValues(d,u),hiddenFilters:a.field.hiddenFilters}).then(A=>A.data);p(y)}async function q(){const d=await I.post(b("code16.sharp.api.list.filters.store",{entityKey:a.field.entityListKey}),{query:{...t.value.query,search:null},filterValues:r.defaultValues(r.rootFilters),hiddenFilters:a.field.hiddenFilters}).then(u=>u.data);p(d)}async function K(){const d=await I.get(a.field.endpointUrl).then(u=>u.data);p(d)}function G(){i.value=!i.value,t.value||K()}return a.collapsable||K(),(d,u)=>(l(),c("div",{ref_key:"el",ref:o},[n(Ne,he({"entity-list":t.value,"entity-key":d.field.entityListKey,filters:e(r),commands:e(z),"show-create-button":d.field.showCreateButton,"show-reorder-button":d.field.showReorderButton,"show-search-field":d.field.showSearchField,"show-entity-state":d.field.showEntityState,collapsed:i.value,title:d.field.label,inline:"","onUpdate:query":E,onFilterChange:T,onReset:q,onReordering:u[0]||(u[0]=y=>d.$emit("reordering",y))},d.$attrs),{"card-header":s(()=>[S("div",We,[n(e(Y),null,{default:s(()=>[C(v(d.field.label),1)]),_:1}),d.collapsable?(l(),h(e(x),{key:0,variant:"ghost",size:"sm",class:"w-9 p-0 -my-1.5 -mr-3",onClick:G},{default:s(()=>[n(e(re),{class:"w-4 h-4"})]),_:1})):g("",!0)])]),_:1},16,["entity-list","entity-key","filters","commands","show-create-button","show-reorder-button","show-search-field","show-entity-state","collapsed","title"])],512))}}),Ye={class:"flex flex-wrap justify-end pointer-events-auto gap-3 lg:mr-[--sticky-safe-right-offset]"},Ze={class:"uppercase text-xs"},Me={class:"truncate"},et={class:"truncate"},tt={key:0,class:"container"},at={class:"grid gap-6 md:gap-8"},st={class:"font-mono"},lt={class:"flex gap-4"},nt={class:"grid grid-cols-1 gap-6 @3xl/root-card:grid-cols-12"},mt=Z({__name:"Show",props:{show:{},breadcrumb:{}},setup(R){var d;const a=R,{entityKey:o,instanceId:i}=b().params,t=new Qe(a.show,o,i),r=F((d=t.locales)==null?void 0:d[0]),{isReordering:z,onEntityListReordering:p}=Je(),E=F(!1),T=oe("show");pe("show",t);function q(u){T.send(u,{postCommand:b("code16.sharp.api.show.command.instance",{entityKey:o,instanceId:i,commandKey:u.key}),getForm:i?b("code16.sharp.api.show.command.instance.form",{entityKey:o,instanceId:i,commandKey:u.key}):b("code16.sharp.api.show.command.singleInstance.form",{entityKey:o,commandKey:u.key}),entityKey:o,instanceId:i,query:He(location.search)})}function K(u){I.post(b("code16.sharp.api.show.state",{entityKey:o,instanceId:i}),{value:u}).then(y=>{T.handleCommandResponse(y.data)}).catch(y=>{var f,w;const A=(f=y.response)==null?void 0:f.data;((w=y.response)==null?void 0:w.status)===422&&qe(A.message,{title:L("sharp::modals.state.422.title"),isError:!0})})}async function G(){await Ve(t.config.deleteConfirmationText)&&Ue.delete(b("code16.sharp.show.delete",{parentUri:b().params.parentUri,entityKey:o,instanceId:i}))}return(u,y)=>{const A=ye("SharpShowField");return l(),h(_e,null,{breadcrumb:s(()=>[e(ie)("sharp.display_breadcrumb")?(l(),h(Ge,{key:0,breadcrumb:u.breadcrumb},null,8,["breadcrumb"])):g("",!0)]),default:s(()=>[n(Pe,{breadcrumb:u.breadcrumb},null,8,["breadcrumb"]),n(je,{commands:e(T)},{default:s(()=>[n(ge,{class:ee(["group container mb-4 pointer-events-none top-3 data-[stuck=true]:z-20",[{"lg:sticky":!E.value}]])},{default:s(()=>{var f,w;return[S("div",Ye,[(f=e(t).locales)!=null&&f.length?(l(),h(e(be),{key:0,modelValue:r.value,"onUpdate:modelValue":y[0]||(y[0]=m=>r.value=m)},{default:s(()=>[n(ve,{class:"lg:ml-[--sticky-safe-left-offset] mr-auto"}),n(e(ke),null,{default:s(()=>[(l(!0),c(_,null,k(e(t).locales,m=>(l(),h(e(Le),{key:m,value:m},{default:s(()=>[S("span",Ze,v(m),1)]),_:2},1032,["value"]))),128))]),_:1})]),_:1},8,["modelValue"])):g("",!0),e(t).config.state?(l(),h(e(O),{key:1},{default:s(()=>[n(e(Q),{"as-child":""},{default:s(()=>[n(e(x),{class:"h-8 -mx-2 disabled:opacity-100",variant:"ghost",size:"sm",disabled:!e(t).config.state.authorization},{default:s(()=>[n(e(we),{variant:"outline"},{default:s(()=>{var m;return[n(X,{class:"-ml-0.5 mr-1.5","state-value":e(t).instanceStateValue},null,8,["state-value"]),C(" "+v((m=e(t).instanceStateValue)==null?void 0:m.label),1)]}),_:1})]),_:1},8,["disabled"])]),_:1}),n(e(J),null,{default:s(()=>[(l(!0),c(_,null,k(e(t).config.state.values,m=>(l(),h(e(se),{key:m.value,"model-value":m.value===e(t).instanceState,"onUpdate:modelValue":$=>$&&K(m.value)},{default:s(()=>[n(X,{class:"mr-1.5","state-value":m},null,8,["state-value"]),S("span",Me,v(m.label),1)]),_:2},1032,["model-value","onUpdate:modelValue"]))),128))]),_:1})]),_:1})):g("",!0),(w=e(t).allowedInstanceCommands)!=null&&w.flat().length||e(t).authorizations.delete||e(t).config.state?(l(),h(e(O),{key:2},{default:s(()=>[n(e(Q),{"as-child":""},{default:s(()=>[n(e(x),{class:"h-8",variant:"outline",size:"sm"},{default:s(()=>[C(v(e(L)("sharp::entity_list.commands.instance.label"))+" ",1),n(le)]),_:1})]),_:1}),n(e(J),null,{default:s(()=>{var m;return[e(t).config.state&&e(t).config.state.authorization?(l(),c(_,{key:0},[n(e($e),null,{default:s(()=>[n(e(Se),null,{default:s(()=>[n(e(Ce),null,{default:s(()=>[C(v(e(L)("sharp::modals.entity_state.edit.title")),1)]),_:1}),n(e(Re),null,{default:s(()=>[n(e(ze),null,{default:s(()=>[(l(!0),c(_,null,k(e(t).config.state.values,$=>(l(),h(e(se),{key:$.value,"model-value":$.value===e(t).instanceState,"onUpdate:modelValue":j=>j&&K($.value)},{default:s(()=>[n(X,{class:"mr-1.5","state-value":$},null,8,["state-value"]),S("span",et,v($.label),1)]),_:2},1032,["model-value","onUpdate:modelValue"]))),128))]),_:1})]),_:1})]),_:1})]),_:1}),n(e(te),{class:"last:hidden"})],64)):g("",!0),n(ne,{commands:e(t).allowedInstanceCommands,onSelect:q},null,8,["commands"]),e(t).authorizations.delete?(l(),c(_,{key:1},[(m=e(t).allowedInstanceCommands)!=null&&m.flat().length?(l(),h(e(te),{key:0})):g("",!0),n(e(Be),{class:"text-destructive",onClick:G},{default:s(()=>[C(v(e(L)("sharp::action_bar.form.delete_button")),1)]),_:1})],64)):g("",!0)]}),_:1})]),_:1})):g("",!0),e(t).authorizations.update?(l(),h(e(x),{key:3,class:"h-8",size:"sm",disabled:e(z),"as-child":""},{default:s(()=>[n(e(Fe),{as:e(z)?"button":"a",href:e(t).formUrl},{default:s(()=>[C(v(a.show.config.editButtonLabel||e(L)("sharp::action_bar.show.edit_button")),1)]),_:1},8,["as","href"])]),_:1},8,["disabled"])):g("",!0)])]}),_:1},8,["class"]),e(t).pageAlert?(l(),c("div",tt,[n(Ke,{class:"mb-4","page-alert":e(t).pageAlert},null,8,["page-alert"])])):g("",!0),S("div",at,[e(t).getTitle(r.value)&&e(t).layout.sections[0]&&(e(t).sectionHasField(e(t).layout.sections[0],"entityList")||e(t).layout.sections[0].title)?(l(),h(ae,{key:0},{default:s(()=>[n(e(W),null,{default:s(()=>[n(e(Y),null,{default:s(()=>[C(v(e(t).getTitle(r.value)),1)]),_:1})]),_:1})]),_:1})):g("",!0),(l(!0),c(_,null,k(e(t).layout.sections,(f,w)=>D((l(),h(Oe,{class:"min-w-0"},{default:s(({collapsed:m,onToggle:$})=>{var j;return[e(t).sectionHasField(f,"entityList")?(l(!0),c(_,{key:0},k(f.columns,H=>(l(),c(_,null,[(l(!0),c(_,null,k(H.fields,N=>(l(),c(_,null,[(l(!0),c(_,null,k(N,V=>(l(),c(_,null,[e(t).fields[V.key]?(l(),h(Xe,{key:0,field:e(t).fields[V.key],collapsable:f.collapsable,value:null,onReordering:B=>e(p)(V.key,B),onNeedsTopbar:y[1]||(y[1]=B=>E.value=B)},null,8,["field","collapsable","onReordering"])):(l(),c(_,{key:1},[y[2]||(y[2]=C(" Undefined EntityList ")),S("span",st,v(V.key),1)],64))],64))),256))],64))),256))],64))),256)):(l(),c(_,{key:1},[(j=e(t).sectionCommands(f))!=null&&j.flat().length?(l(),c("div",{key:0,class:ee(["container flex justify-end mb-4",{invisible:m}])},[n(e(O),null,{default:s(()=>[n(e(Q),{"as-child":""},{default:s(()=>[n(e(x),{class:"h-8",size:"sm",variant:"outline"},{default:s(()=>[C(v(e(L)("sharp::entity_list.commands.instance.label"))+" ",1),n(le)]),_:1})]),_:1}),n(e(J),null,{default:s(()=>[n(ne,{commands:e(t).sectionCommands(f),onSelect:q},null,8,["commands"])]),_:2},1024)]),_:2},1024)],2)):g("",!0),n(ae,null,{default:s(()=>{var H;return[f.title||!w&&e(t).getTitle(r.value)||f.collapsable||(H=e(t).sectionCommands(f))!=null&&H.flat().length?(l(),h(e(W),{key:0},{default:s(()=>[S("div",lt,[f.title||!w&&e(t).getTitle(r.value)?(l(),h(e(Y),{key:0,innerHTML:f.title||!w&&e(t).getTitle(r.value)},null,8,["innerHTML"])):g("",!0),f.collapsable?(l(),h(e(x),{key:1,variant:"ghost",size:"sm",class:"w-9 p-0 -my-1.5",onClick:$},{default:s(()=>[n(e(re),{class:"w-4 h-4"})]),_:2},1032,["onClick"])):g("",!0)])]),_:2},1024)):(l(),h(e(W),{key:1,class:"pb-0"})),D(n(e(xe),null,{default:s(()=>[S("div",nt,[(l(!0),c(_,null,k(f.columns,(N,V)=>(l(),c("div",{class:"@3xl/root-card:col-[span_var(--size)]",style:Te({"--size":`${N.size}`})},[n(Ae,{class:"gap-x-4 gap-y-6"},{default:s(()=>[(l(!0),c(_,null,k(N.fields,B=>D((l(),h(Ie,null,{default:s(()=>[(l(!0),c(_,null,k(B,U=>D((l(),h(Ee,{layout:U},{default:s(()=>[n(A,{field:e(t).fields[U.key],"field-layout":U,value:e(t).data[U.key],locale:r.value,collapsable:f.collapsable,"entity-key":e(o),"instance-id":e(i),"is-right-col":V===f.columns.length-1,row:B,onReordering:de=>e(p)(U.key,de)},null,8,["field","field-layout","value","locale","collapsable","entity-key","instance-id","is-right-col","row","onReordering"])]),_:2},1032,["layout"])),[[P,e(t).fieldShouldBeVisible(U,r.value)]])),256))]),_:2},1536)),[[P,e(t).fieldRowShouldBeVisible(B,r.value)]])),256))]),_:2},1024)],4))),256))])]),_:2},1536),[[P,!m]])]}),_:2},1024)],64))]}),_:2},1536)),[[P,e(t).sectionShouldBeVisible(f,r.value)]])),256))])]),_:1},8,["commands"])]),_:1})}}});export{mt as default}; diff --git a/dist/assets/TemplateRenderer.vue_vue_type_script_setup_true_lang-td6RXtbk.js b/dist/assets/TemplateRenderer.vue_vue_type_script_setup_true_lang-td6RXtbk.js new file mode 100644 index 000000000..e77d7af66 --- /dev/null +++ b/dist/assets/TemplateRenderer.vue_vue_type_script_setup_true_lang-td6RXtbk.js @@ -0,0 +1 @@ +import{d as p,y as o,o as r,c as m,w as n,q as c,av as l,aw as d,au as i,T as _,Q as u,X as f}from"./sharp-DDNPuC1w.js";const $=p({__name:"TemplateRenderer",props:{templateData:{},templateProps:{},template:{}},setup(t){const a=t,s=o(()=>({components:{"sharp-card":_,"sharp-card-header":u,"sharp-badge":f},template:`
${a.template??""}
`,props:[...a.templateProps||[],...Object.keys(a.templateData??{})]}));return(e,h)=>(r(),m(i(s.value),l(d(e.templateData??{})),{default:n(()=>[c(e.$slots,"default")]),_:3},16))}});export{$ as _}; diff --git a/dist/assets/Title.vue_vue_type_script_setup_true_lang-MxfiLW2l.js b/dist/assets/Title.vue_vue_type_script_setup_true_lang-MxfiLW2l.js new file mode 100644 index 000000000..195b0ca55 --- /dev/null +++ b/dist/assets/Title.vue_vue_type_script_setup_true_lang-MxfiLW2l.js @@ -0,0 +1 @@ +import{d as b,cu as h,c,w as p,u as e,o as u,au as T,b as g,t as n,J as m,cv as v,cw as w}from"./sharp-DDNPuC1w.js";const K=b({__name:"Title",props:{entityKey:{},breadcrumb:{}},setup(d){var a;const s=d,_=h(),t=(a=s.breadcrumb)==null?void 0:a.items.at(-1),y=_.getEntityItem((t==null?void 0:t.entityKey)??s.entityKey);return(f,x)=>(u(),c(e(w),null,{default:p(()=>[(u(),c(T("title"),null,{default:p(()=>{var o,i,r,l;return[g(n((i=(o=f.$slots).default)==null?void 0:i.call(o)[0].children)+" "+n((r=e(t))!=null&&r.documentTitleLabel?`${e(t).documentTitleLabel},`:"")+" "+n((l=e(y))==null?void 0:l.label)+" | "+n(e(m)("sharp.name"))+" "+n(e(m)("sharp.display_sharp_version_in_title")?`(${e(v)().props.sharpVersion})`:""),1)]}),_:1}))]),_:1}))}});export{K as _}; diff --git a/dist/assets/Welcome-D4qGN3zl.js b/dist/assets/Welcome-D4qGN3zl.js new file mode 100644 index 000000000..c7c91f309 --- /dev/null +++ b/dist/assets/Welcome-D4qGN3zl.js @@ -0,0 +1 @@ +import{d as a,c as e,w as s,az as t,o,j as n,t as _,u as c,_ as r}from"./sharp-DDNPuC1w.js";const l={class:"text-xl"},i=a({__name:"Welcome",setup(m){return(p,u)=>(o(),e(t,null,{default:s(()=>[n("h1",l,_(c(r)("sharp::menu.no-dashboard-message")),1)]),_:1}))}});export{i as default}; diff --git a/resources/assets/dist/assets/layers-2x-066daca8.png b/dist/assets/layers-2x-Bpkbi35X.png similarity index 100% rename from resources/assets/dist/assets/layers-2x-066daca8.png rename to dist/assets/layers-2x-Bpkbi35X.png diff --git a/resources/assets/dist/assets/layers-1dbbe9d0.png b/dist/assets/layers-BWBAp2CZ.png similarity index 100% rename from resources/assets/dist/assets/layers-1dbbe9d0.png rename to dist/assets/layers-BWBAp2CZ.png diff --git a/dist/assets/leaflet-src-C1NR3fKs.js b/dist/assets/leaflet-src-C1NR3fKs.js new file mode 100644 index 000000000..c5b1d4d43 --- /dev/null +++ b/dist/assets/leaflet-src-C1NR3fKs.js @@ -0,0 +1,4 @@ +import{ah as Vo,cB as qo}from"./sharp-DDNPuC1w.js";function jo(Gt,Vt){for(var l=0;lit[x]})}}}return Object.freeze(Object.defineProperty(Gt,Symbol.toStringTag,{value:"Module"}))}var Xe={exports:{}};/* @preserve + * Leaflet 1.9.4, a JS library for interactive maps. https://leafletjs.com + * (c) 2010-2023 Vladimir Agafonkin, (c) 2010-2011 CloudMade + */(function(Gt,Vt){(function(l,it){it(Vt)})(qo,function(l){var it="1.9.4";function x(t){var e,i,n,o;for(i=1,n=arguments.length;i"u"||!L||!L.Mixin)){t=K(t)?t:[t];for(var e=0;e0?Math.floor(t):Math.ceil(t)};m.prototype={clone:function(){return new m(this.x,this.y)},add:function(t){return this.clone()._add(_(t))},_add:function(t){return this.x+=t.x,this.y+=t.y,this},subtract:function(t){return this.clone()._subtract(_(t))},_subtract:function(t){return this.x-=t.x,this.y-=t.y,this},divideBy:function(t){return this.clone()._divideBy(t)},_divideBy:function(t){return this.x/=t,this.y/=t,this},multiplyBy:function(t){return this.clone()._multiplyBy(t)},_multiplyBy:function(t){return this.x*=t,this.y*=t,this},scaleBy:function(t){return new m(this.x*t.x,this.y*t.y)},unscaleBy:function(t){return new m(this.x/t.x,this.y/t.y)},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.clone()._ceil()},_ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},trunc:function(){return this.clone()._trunc()},_trunc:function(){return this.x=oi(this.x),this.y=oi(this.y),this},distanceTo:function(t){t=_(t);var e=t.x-this.x,i=t.y-this.y;return Math.sqrt(e*e+i*i)},equals:function(t){return t=_(t),t.x===this.x&&t.y===this.y},contains:function(t){return t=_(t),Math.abs(t.x)<=Math.abs(this.x)&&Math.abs(t.y)<=Math.abs(this.y)},toString:function(){return"Point("+J(this.x)+", "+J(this.y)+")"}};function _(t,e,i){return t instanceof m?t:K(t)?new m(t[0],t[1]):t==null?t:typeof t=="object"&&"x"in t&&"y"in t?new m(t.x,t.y):new m(t,e,i)}function z(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;n=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=F(t);var e=this.min,i=this.max,n=t.min,o=t.max,s=o.x>=e.x&&n.x<=i.x,r=o.y>=e.y&&n.y<=i.y;return s&&r},overlaps:function(t){t=F(t);var e=this.min,i=this.max,n=t.min,o=t.max,s=o.x>e.x&&n.xe.y&&n.y=e.lat&&o.lat<=i.lat&&n.lng>=e.lng&&o.lng<=i.lng},intersects:function(t){t=O(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>=e.lat&&n.lat<=i.lat,r=o.lng>=e.lng&&n.lng<=i.lng;return s&&r},overlaps:function(t){t=O(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>e.lat&&n.late.lng&&n.lng1,On=function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("testPassiveEventSupport",E,e),window.removeEventListener("testPassiveEventSupport",E,e)}catch{}return t}(),In=function(){return!!document.createElement("canvas").getContext}(),Le=!!(document.createElementNS&&ri("svg").createSVGRect),An=!!Le&&function(){var t=document.createElement("div");return t.innerHTML="",(t.firstChild&&t.firstChild.namespaceURI)==="http://www.w3.org/2000/svg"}(),Bn=!Le&&function(){try{var t=document.createElement("div");t.innerHTML='';var e=t.firstChild;return e.style.behavior="url(#default#VML)",e&&typeof e.adj=="object"}catch{return!1}}(),Nn=navigator.platform.indexOf("Mac")===0,Rn=navigator.platform.indexOf("Linux")===0;function $(t){return navigator.userAgent.toLowerCase().indexOf(t)>=0}var f={ie:jt,ielt9:xn,edge:hi,webkit:we,android:ui,android23:li,androidStock:Ln,opera:xe,chrome:ci,gecko:fi,safari:Tn,phantom:di,opera12:_i,win:bn,ie3d:mi,webkit3d:Pe,gecko3d:pi,any3d:Mn,mobile:Et,mobileWebkit:Sn,mobileWebkit3d:Cn,msPointer:vi,pointer:gi,touch:zn,touchNative:yi,mobileOpera:kn,mobileGecko:En,retina:Zn,passiveEvents:On,canvas:In,svg:Le,vml:Bn,inlineSvg:An,mac:Nn,linux:Rn},wi=f.msPointer?"MSPointerDown":"pointerdown",xi=f.msPointer?"MSPointerMove":"pointermove",Pi=f.msPointer?"MSPointerUp":"pointerup",Li=f.msPointer?"MSPointerCancel":"pointercancel",Te={touchstart:wi,touchmove:xi,touchend:Pi,touchcancel:Li},Ti={touchstart:Gn,touchmove:Kt,touchend:Kt,touchcancel:Kt},yt={},bi=!1;function Dn(t,e,i){return e==="touchstart"&&Un(),Ti[e]?(i=Ti[e].bind(this,i),t.addEventListener(Te[e],i,!1),i):(console.warn("wrong event specified:",e),E)}function Fn(t,e,i){if(!Te[e]){console.warn("wrong event specified:",e);return}t.removeEventListener(Te[e],i,!1)}function Hn(t){yt[t.pointerId]=t}function Wn(t){yt[t.pointerId]&&(yt[t.pointerId]=t)}function Mi(t){delete yt[t.pointerId]}function Un(){bi||(document.addEventListener(wi,Hn,!0),document.addEventListener(xi,Wn,!0),document.addEventListener(Pi,Mi,!0),document.addEventListener(Li,Mi,!0),bi=!0)}function Kt(t,e){if(e.pointerType!==(e.MSPOINTER_TYPE_MOUSE||"mouse")){e.touches=[];for(var i in yt)e.touches.push(yt[i]);e.changedTouches=[e],t(e)}}function Gn(t,e){e.MSPOINTER_TYPE_TOUCH&&e.pointerType===e.MSPOINTER_TYPE_TOUCH&&N(e),Kt(t,e)}function Vn(t){var e={},i,n;for(n in t)i=t[n],e[n]=i&&i.bind?i.bind(t):i;return t=e,e.type="dblclick",e.detail=2,e.isTrusted=!1,e._simulated=!0,e}var qn=200;function jn(t,e){t.addEventListener("dblclick",e);var i=0,n;function o(s){if(s.detail!==1){n=s.detail;return}if(!(s.pointerType==="mouse"||s.sourceCapabilities&&!s.sourceCapabilities.firesTouchEvents)){var r=Ei(s);if(!(r.some(function(h){return h instanceof HTMLLabelElement&&h.attributes.for})&&!r.some(function(h){return h instanceof HTMLInputElement||h instanceof HTMLSelectElement}))){var a=Date.now();a-i<=qn?(n++,n===2&&e(Vn(s))):n=1,i=a}}}return t.addEventListener("click",o),{dblclick:e,simDblclick:o}}function Kn(t,e){t.removeEventListener("dblclick",e.dblclick),t.removeEventListener("click",e.simDblclick)}var be=Jt(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),Zt=Jt(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),Si=Zt==="webkitTransition"||Zt==="OTransition"?Zt+"End":"transitionend";function Ci(t){return typeof t=="string"?document.getElementById(t):t}function Ot(t,e){var i=t.style[e]||t.currentStyle&&t.currentStyle[e];if((!i||i==="auto")&&document.defaultView){var n=document.defaultView.getComputedStyle(t,null);i=n?n[e]:null}return i==="auto"?null:i}function T(t,e,i){var n=document.createElement(t);return n.className=e||"",i&&i.appendChild(n),n}function k(t){var e=t.parentNode;e&&e.removeChild(t)}function Yt(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function wt(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}function xt(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function Me(t,e){if(t.classList!==void 0)return t.classList.contains(e);var i=Xt(t);return i.length>0&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(i)}function v(t,e){if(t.classList!==void 0)for(var i=dt(e),n=0,o=i.length;n0?2*window.devicePixelRatio:1;function Oi(t){return f.edge?t.wheelDeltaY/2:t.deltaY&&t.deltaMode===0?-t.deltaY/Jn:t.deltaY&&t.deltaMode===1?-t.deltaY*20:t.deltaY&&t.deltaMode===2?-t.deltaY*60:t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)/2:t.detail&&Math.abs(t.detail)<32765?-t.detail*20:t.detail?t.detail/-32765*60:0}function Re(t,e){var i=e.relatedTarget;if(!i)return!0;try{for(;i&&i!==t;)i=i.parentNode}catch{return!1}return i!==t}var $n={__proto__:null,on:p,off:M,stopPropagation:pt,disableScrollPropagation:Ne,disableClickPropagation:Nt,preventDefault:N,stop:vt,getPropagationPath:Ei,getMousePosition:Zi,getWheelDelta:Oi,isExternalTarget:Re,addListener:p,removeListener:M},Ii=zt.extend({run:function(t,e,i,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=i||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=mt(t),this._offset=e.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=D(this._animate,this),this._step()},_step:function(t){var e=+new Date-this._startTime,i=this._duration*1e3;ethis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),n=this._limitCenter(i,this._zoom,O(t));return i.equals(n)||this.panTo(n,e),this._enforcingBounds=!1,this},panInside:function(t,e){e=e||{};var i=_(e.paddingTopLeft||e.padding||[0,0]),n=_(e.paddingBottomRight||e.padding||[0,0]),o=this.project(this.getCenter()),s=this.project(t),r=this.getPixelBounds(),a=F([r.min.add(i),r.max.subtract(n)]),h=a.getSize();if(!a.contains(s)){this._enforcingBounds=!0;var u=s.subtract(a.getCenter()),c=a.extend(s).getSize().subtract(h);o.x+=u.x<0?-c.x:c.x,o.y+=u.y<0?-c.y:c.y,this.panTo(this.unproject(o),e),this._enforcingBounds=!1}return this},invalidateSize:function(t){if(!this._loaded)return this;t=x({animate:!1,pan:!0},t===!0?{animate:!0}:t);var e=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var i=this.getSize(),n=e.divideBy(2).round(),o=i.divideBy(2).round(),s=n.subtract(o);return!s.x&&!s.y?this:(t.animate&&t.pan?this.panBy(s):(t.pan&&this._rawPanBy(s),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(S(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:e,newSize:i}))},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=x({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var e=S(this._handleGeolocationResponse,this),i=S(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(e,i,t):navigator.geolocation.getCurrentPosition(e,i,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){if(this._container._leaflet_id){var e=t.code,i=t.message||(e===1?"permission denied":e===2?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+i+"."})}},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var e=t.coords.latitude,i=t.coords.longitude,n=new b(e,i),o=n.toBounds(t.coords.accuracy*2),s=this._locateOptions;if(s.setView){var r=this.getBoundsZoom(o);this.setView(n,s.maxZoom?Math.min(r,s.maxZoom):r)}var a={latlng:n,bounds:o,timestamp:t.timestamp};for(var h in t.coords)typeof t.coords[h]=="number"&&(a[h]=t.coords[h]);this.fire("locationfound",a)}},addHandler:function(t,e){if(!e)return this;var i=this[t]=new e(this);return this._handlers.push(i),this.options[t]&&i.enable(),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch{this._container._leaflet_id=void 0,this._containerId=void 0}this._locationWatchId!==void 0&&this.stopLocate(),this._stop(),k(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(G(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload");var t;for(t in this._layers)this._layers[t].remove();for(t in this._panes)k(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){var i="leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),n=T("div",i,e||this._mapPane);return t&&(this._panes[t]=n),n},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter.clone():this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds(),e=this.unproject(t.getBottomLeft()),i=this.unproject(t.getTopRight());return new H(e,i)},getMinZoom:function(){return this.options.minZoom===void 0?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return this.options.maxZoom===void 0?this._layersMaxZoom===void 0?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=O(t),i=_(i||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),a=t.getSouthEast(),h=this.getSize().subtract(i),u=F(this.project(a,n),this.project(r,n)).getSize(),c=f.any3d?this.options.zoomSnap:1,d=h.x/u.x,g=h.y/u.y,R=e?Math.max(d,g):Math.min(d,g);return n=this.getScaleZoom(R,n),c&&(n=Math.round(n/(c/100))*(c/100),n=e?Math.ceil(n/c)*c:Math.floor(n/c)*c),Math.max(o,Math.min(s,n))},getSize:function(){return(!this._size||this._sizeChanged)&&(this._size=new m(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){var i=this._getTopLeftPoint(t,e);return new z(i,i.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(t===void 0?this.getZoom():t)},getPane:function(t){return typeof t=="string"?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var i=this.options.crs;return e=e===void 0?this._zoom:e,i.scale(t)/i.scale(e)},getScaleZoom:function(t,e){var i=this.options.crs;e=e===void 0?this._zoom:e;var n=i.zoom(t*i.scale(e));return isNaN(n)?1/0:n},project:function(t,e){return e=e===void 0?this._zoom:e,this.options.crs.latLngToPoint(y(t),e)},unproject:function(t,e){return e=e===void 0?this._zoom:e,this.options.crs.pointToLatLng(_(t),e)},layerPointToLatLng:function(t){var e=_(t).add(this.getPixelOrigin());return this.unproject(e)},latLngToLayerPoint:function(t){var e=this.project(y(t))._round();return e._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(y(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(O(t))},distance:function(t,e){return this.options.crs.distance(y(t),y(e))},containerPointToLayerPoint:function(t){return _(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return _(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var e=this.containerPointToLayerPoint(_(t));return this.layerPointToLatLng(e)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(y(t)))},mouseEventToContainerPoint:function(t){return Zi(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var e=this._container=Ci(t);if(e){if(e._leaflet_id)throw new Error("Map container is already initialized.")}else throw new Error("Map container not found.");p(e,"scroll",this._onScroll,this),this._containerId=P(e)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&f.any3d,v(t,"leaflet-container"+(f.touch?" leaflet-touch":"")+(f.retina?" leaflet-retina":"")+(f.ielt9?" leaflet-oldie":"")+(f.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var e=Ot(t,"position");e!=="absolute"&&e!=="relative"&&e!=="fixed"&&e!=="sticky"&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),I(this._mapPane,new m(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(v(t.markerPane,"leaflet-zoom-hide"),v(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e,i){I(this._mapPane,new m(0,0));var n=!this._loaded;this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset");var o=this._zoom!==e;this._moveStart(o,i)._move(t,e)._moveEnd(o),this.fire("viewreset"),n&&this.fire("load")},_moveStart:function(t,e){return t&&this.fire("zoomstart"),e||this.fire("movestart"),this},_move:function(t,e,i,n){e===void 0&&(e=this._zoom);var o=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),n?i&&i.pinch&&this.fire("zoom",i):((o||i&&i.pinch)&&this.fire("zoom",i),this.fire("move",i)),this},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return G(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){I(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={},this._targets[P(this._container)]=this;var e=t?M:p;e(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&e(window,"resize",this._onResize,this),f.any3d&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){G(this._resizeRequest),this._resizeRequest=D(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i=[],n,o=e==="mouseout"||e==="mouseover",s=t.target||t.srcElement,r=!1;s;){if(n=this._targets[P(s)],n&&(e==="click"||e==="preclick")&&this._draggableMoved(n)){r=!0;break}if(n&&n.listens(e,!0)&&(o&&!Re(s,t)||(i.push(n),o))||s===this._container)break;s=s.parentNode}return!i.length&&!r&&!o&&this.listens(e,!0)&&(i=[this]),i},_isClickDisabled:function(t){for(;t&&t!==this._container;){if(t._leaflet_disable_click)return!0;t=t.parentNode}},_handleDOMEvent:function(t){var e=t.target||t.srcElement;if(!(!this._loaded||e._leaflet_disable_events||t.type==="click"&&this._isClickDisabled(e))){var i=t.type;i==="mousedown"&&Ze(e),this._fireDOMEvent(t,i)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,e,i){if(t.type==="click"){var n=x({},t);n.type="preclick",this._fireDOMEvent(n,n.type,i)}var o=this._findEventTargets(t,e);if(i){for(var s=[],r=0;r0?Math.round(t-e)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(e))},_limitZoom:function(t){var e=this.getMinZoom(),i=this.getMaxZoom(),n=f.any3d?this.options.zoomSnap:1;return n&&(t=Math.round(t/n)*n),Math.max(e,Math.min(i,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){Z(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,e){var i=this._getCenterOffset(t)._trunc();return(e&&e.animate)!==!0&&!this.getSize().contains(i)?!1:(this.panBy(i,e),!0)},_createAnimProxy:function(){var t=this._proxy=T("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",function(e){var i=be,n=this._proxy.style[i];_t(this._proxy,this.project(e.center,e.zoom),this.getZoomScale(e.zoom,1)),n===this._proxy.style[i]&&this._animatingZoom&&this._onZoomTransitionEnd()},this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){k(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var t=this.getCenter(),e=this.getZoom();_t(this._proxy,this.project(t,e),this.getZoomScale(e,1))},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,e,i){if(this._animatingZoom)return!0;if(i=i||{},!this._zoomAnimated||i.animate===!1||this._nothingToAnimate()||Math.abs(e-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),o=this._getCenterOffset(t)._divideBy(1-1/n);return i.animate!==!0&&!this.getSize().contains(o)?!1:(D(function(){this._moveStart(!0,i.noMoveStart||!1)._animateZoom(t,e,!0)},this),!0)},_animateZoom:function(t,e,i,n){this._mapPane&&(i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,v(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:n}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(S(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&Z(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});function Qn(t,e){return new w(t,e)}var Y=nt.extend({options:{position:"topright"},initialize:function(t){C(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),n=t._controlCorners[i];return v(e,"leaflet-control"),i.indexOf("bottom")!==-1?n.insertBefore(e,n.firstChild):n.appendChild(e),this._map.on("unload",this.remove,this),this},remove:function(){return this._map?(k(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),Rt=function(t){return new Y(t)};w.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){var t=this._controlCorners={},e="leaflet-",i=this._controlContainer=T("div",e+"control-container",this._container);function n(o,s){var r=e+o+" "+e+s;t[o+s]=T("div",r,i)}n("top","left"),n("top","right"),n("bottom","left"),n("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)k(this._controlCorners[t]);k(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var Ai=Y.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,e,i,n){return i1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=e&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var e=this._getLayer(P(t.target)),i=e.overlay?t.type==="add"?"overlayadd":"overlayremove":t.type==="add"?"baselayerchange":null;i&&this._map.fire(i,e)},_createRadioElement:function(t,e){var i='",n=document.createElement("div");return n.innerHTML=i,n.firstChild},_addItem:function(t){var e=document.createElement("label"),i=this._map.hasLayer(t.layer),n;t.overlay?(n=document.createElement("input"),n.type="checkbox",n.className="leaflet-control-layers-selector",n.defaultChecked=i):n=this._createRadioElement("leaflet-base-layers_"+P(this),i),this._layerControlInputs.push(n),n.layerId=P(t.layer),p(n,"click",this._onInputClick,this);var o=document.createElement("span");o.innerHTML=" "+t.name;var s=document.createElement("span");e.appendChild(s),s.appendChild(n),s.appendChild(o);var r=t.overlay?this._overlaysList:this._baseLayersList;return r.appendChild(e),this._checkDisabledLayers(),e},_onInputClick:function(){if(!this._preventClick){var t=this._layerControlInputs,e,i,n=[],o=[];this._handlingClick=!0;for(var s=t.length-1;s>=0;s--)e=t[s],i=this._getLayer(e.layerId).layer,e.checked?n.push(i):e.checked||o.push(i);for(s=0;s=0;o--)e=t[o],i=this._getLayer(e.layerId).layer,e.disabled=i.options.minZoom!==void 0&&ni.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expandSafely:function(){var t=this._section;this._preventClick=!0,p(t,"click",N),this.expand();var e=this;setTimeout(function(){M(t,"click",N),e._preventClick=!1})}}),to=function(t,e,i){return new Ai(t,e,i)},De=Y.extend({options:{position:"topleft",zoomInText:'',zoomInTitle:"Zoom in",zoomOutText:'',zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=T("div",e+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,e+"-in",i,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,e+"-out",i,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,o){var s=T("a",i,n);return s.innerHTML=t,s.href="#",s.title=e,s.setAttribute("role","button"),s.setAttribute("aria-label",e),Nt(s),p(s,"click",vt),p(s,"click",o,this),p(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";Z(this._zoomInButton,e),Z(this._zoomOutButton,e),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),(this._disabled||t._zoom===t.getMinZoom())&&(v(this._zoomOutButton,e),this._zoomOutButton.setAttribute("aria-disabled","true")),(this._disabled||t._zoom===t.getMaxZoom())&&(v(this._zoomInButton,e),this._zoomInButton.setAttribute("aria-disabled","true"))}});w.mergeOptions({zoomControl:!0}),w.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new De,this.addControl(this.zoomControl))});var eo=function(t){return new De(t)},Bi=Y.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e="leaflet-control-scale",i=T("div",e),n=this.options;return this._addScales(n,e+"-line",i),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=T("div",e,i)),t.imperial&&(this._iScale=T("div",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,i=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(i)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t),i=e<1e3?e+" m":e/1e3+" km";this._updateScale(this._mScale,i,e/t)},_updateImperial:function(t){var e=t*3.2808399,i,n,o;e>5280?(i=e/5280,n=this._getRoundNum(i),this._updateScale(this._iScale,n+" mi",n/i)):(o=this._getRoundNum(e),this._updateScale(this._iScale,o+" ft",o/e))},_updateScale:function(t,e,i){t.style.width=Math.round(this.options.maxWidth*i)+"px",t.innerHTML=e},_getRoundNum:function(t){var e=Math.pow(10,(Math.floor(t)+"").length-1),i=t/e;return i=i>=10?10:i>=5?5:i>=3?3:i>=2?2:1,e*i}}),io=function(t){return new Bi(t)},no='',Fe=Y.extend({options:{position:"bottomright",prefix:''+(f.inlineSvg?no+" ":"")+"Leaflet"},initialize:function(t){C(this,t),this._attributions={}},onAdd:function(t){t.attributionControl=this,this._container=T("div","leaflet-control-attribution"),Nt(this._container);for(var e in t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),t.on("layeradd",this._addAttribution,this),this._container},onRemove:function(t){t.off("layeradd",this._addAttribution,this)},_addAttribution:function(t){t.layer.getAttribution&&(this.addAttribution(t.layer.getAttribution()),t.layer.once("remove",function(){this.removeAttribution(t.layer.getAttribution())},this))},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[];for(var e in this._attributions)this._attributions[e]&&t.push(e);var i=[];this.options.prefix&&i.push(this.options.prefix),t.length&&i.push(t.join(", ")),this._container.innerHTML=i.join(' ')}}});w.mergeOptions({attributionControl:!0}),w.addInitHook(function(){this.options.attributionControl&&new Fe().addTo(this)});var oo=function(t){return new Fe(t)};Y.Layers=Ai,Y.Zoom=De,Y.Scale=Bi,Y.Attribution=Fe,Rt.layers=to,Rt.zoom=eo,Rt.scale=io,Rt.attribution=oo;var tt=nt.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled?this:(this._enabled=!0,this.addHooks(),this)},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});tt.addTo=function(t,e){return t.addHandler(e,this),this};var so={Events:U},Ni=f.touch?"touchstart mousedown":"mousedown",ct=zt.extend({options:{clickTolerance:3},initialize:function(t,e,i,n){C(this,n),this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(p(this._dragStartTarget,Ni,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(ct._dragging===this&&this.finishDrag(!0),M(this._dragStartTarget,Ni,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(this._enabled&&(this._moved=!1,!Me(this._element,"leaflet-zoom-anim"))){if(t.touches&&t.touches.length!==1){ct._dragging===this&&this.finishDrag();return}if(!(ct._dragging||t.shiftKey||t.which!==1&&t.button!==1&&!t.touches)&&(ct._dragging=this,this._preventOutline&&Ze(this._element),ze(),It(),!this._moving)){this.fire("down");var e=t.touches?t.touches[0]:t,i=zi(this._element);this._startPoint=new m(e.clientX,e.clientY),this._startPos=mt(this._element),this._parentScale=Oe(i);var n=t.type==="mousedown";p(document,n?"mousemove":"touchmove",this._onMove,this),p(document,n?"mouseup":"touchend touchcancel",this._onUp,this)}}},_onMove:function(t){if(this._enabled){if(t.touches&&t.touches.length>1){this._moved=!0;return}var e=t.touches&&t.touches.length===1?t.touches[0]:t,i=new m(e.clientX,e.clientY)._subtract(this._startPoint);!i.x&&!i.y||Math.abs(i.x)+Math.abs(i.y)s&&(r=a,s=h);s>i&&(e[r]=1,We(t,e,i,n,r),We(t,e,i,r,o))}function uo(t,e){for(var i=[t[0]],n=1,o=0,s=t.length;ne&&(i.push(t[n]),o=n);return oe.max.x&&(i|=2),t.ye.max.y&&(i|=8),i}function lo(t,e){var i=e.x-t.x,n=e.y-t.y;return i*i+n*n}function Dt(t,e,i,n){var o=e.x,s=e.y,r=i.x-o,a=i.y-s,h=r*r+a*a,u;return h>0&&(u=((t.x-o)*r+(t.y-s)*a)/h,u>1?(o=i.x,s=i.y):u>0&&(o+=r*u,s+=a*u)),r=t.x-o,a=t.y-s,n?r*r+a*a:new m(o,s)}function q(t){return!K(t[0])||typeof t[0][0]!="object"&&typeof t[0][0]<"u"}function Gi(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),q(t)}function Vi(t,e){var i,n,o,s,r,a,h,u;if(!t||t.length===0)throw new Error("latlngs not passed");q(t)||(console.warn("latlngs are not flat! Only the first ring will be used"),t=t[0]);var c=y([0,0]),d=O(t),g=d.getNorthWest().distanceTo(d.getSouthWest())*d.getNorthEast().distanceTo(d.getNorthWest());g<1700&&(c=He(t));var R=t.length,B=[];for(i=0;in){h=(s-n)/o,u=[a.x-h*(a.x-r.x),a.y-h*(a.y-r.y)];break}var W=e.unproject(_(u));return y([W.lat+c.lat,W.lng+c.lng])}var co={__proto__:null,simplify:Fi,pointToSegmentDistance:Hi,closestPointOnSegment:ao,clipSegment:Ui,_getEdgeIntersection:te,_getBitCode:gt,_sqClosestPointOnSegment:Dt,isFlat:q,_flat:Gi,polylineCenter:Vi},Ue={project:function(t){return new m(t.lng,t.lat)},unproject:function(t){return new b(t.y,t.x)},bounds:new z([-180,-90],[180,90])},Ge={R:6378137,R_MINOR:6356752314245179e-9,bounds:new z([-2003750834279e-5,-1549657073972e-5],[2003750834279e-5,1876465623138e-5]),project:function(t){var e=Math.PI/180,i=this.R,n=t.lat*e,o=this.R_MINOR/i,s=Math.sqrt(1-o*o),r=s*Math.sin(n),a=Math.tan(Math.PI/4-n/2)/Math.pow((1-r)/(1+r),s/2);return n=-i*Math.log(Math.max(a,1e-10)),new m(t.lng*e*i,n)},unproject:function(t){for(var e=180/Math.PI,i=this.R,n=this.R_MINOR/i,o=Math.sqrt(1-n*n),s=Math.exp(-t.y/i),r=Math.PI/2-2*Math.atan(s),a=0,h=.1,u;a<15&&Math.abs(h)>1e-7;a++)u=o*Math.sin(r),u=Math.pow((1-u)/(1+u),o/2),h=Math.PI/2-2*Math.atan(s*u)-r,r+=h;return new b(r*e,t.x*e/i)}},fo={__proto__:null,LonLat:Ue,Mercator:Ge,SphericalMercator:pe},_o=x({},lt,{code:"EPSG:3395",projection:Ge,transformation:function(){var t=.5/(Math.PI*Ge.R);return kt(t,.5,-t,.5)}()}),qi=x({},lt,{code:"EPSG:4326",projection:Ue,transformation:kt(1/180,1,-1/180,.5)}),mo=x({},ot,{projection:Ue,transformation:kt(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,e){var i=e.lng-t.lng,n=e.lat-t.lat;return Math.sqrt(i*i+n*n)},infinite:!0});ot.Earth=lt,ot.EPSG3395=_o,ot.EPSG3857=ge,ot.EPSG900913=wn,ot.EPSG4326=qi,ot.Simple=mo;var X=zt.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[P(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[P(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var e=t.target;if(e.hasLayer(this)){if(this._map=e,this._zoomAnimated=e._zoomAnimated,this.getEvents){var i=this.getEvents();e.on(i,this),this.once("remove",function(){e.off(i,this)},this)}this.onAdd(e),this.fire("add"),e.fire("layeradd",{layer:this})}}});w.include({addLayer:function(t){if(!t._layerAdd)throw new Error("The provided object is not a Layer.");var e=P(t);return this._layers[e]?this:(this._layers[e]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t),this)},removeLayer:function(t){var e=P(t);return this._layers[e]?(this._loaded&&t.onRemove(this),delete this._layers[e],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return P(t)in this._layers},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},_addLayers:function(t){t=t?K(t)?t:[t]:[];for(var e=0,i=t.length;ethis._layersMaxZoom&&this.setZoom(this._layersMaxZoom),this.options.minZoom===void 0&&this._layersMinZoom&&this.getZoom()=2&&e[0]instanceof b&&e[0].equals(e[i-1])&&e.pop(),e},_setLatLngs:function(t){rt.prototype._setLatLngs.call(this,t),q(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return q(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,e=this.options.weight,i=new m(e,e);if(t=new z(t.min.subtract(i),t.max.add(i)),this._parts=[],!(!this._pxBounds||!this._pxBounds.intersects(t))){if(this.options.noClip){this._parts=this._rings;return}for(var n=0,o=this._rings.length,s;nt.y!=o.y>t.y&&t.x<(o.x-n.x)*(t.y-n.y)/(o.y-n.y)+n.x&&(e=!e);return e||rt.prototype._containsPoint.call(this,t,!0)}});function Lo(t,e){return new Tt(t,e)}var at=st.extend({initialize:function(t,e){C(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e=K(t)?t:t.features,i,n,o;if(e){for(i=0,n=e.length;i0&&o.push(o[0].slice()),o}function bt(t,e){return t.feature?x({},t.feature,{geometry:e}):re(e)}function re(t){return t.type==="Feature"||t.type==="FeatureCollection"?t:{type:"Feature",properties:{},geometry:t}}var Ke={toGeoJSON:function(t){return bt(this,{type:"Point",coordinates:je(this.getLatLng(),t)})}};ee.include(Ke),Ve.include(Ke),ie.include(Ke),rt.include({toGeoJSON:function(t){var e=!q(this._latlngs),i=se(this._latlngs,e?1:0,!1,t);return bt(this,{type:(e?"Multi":"")+"LineString",coordinates:i})}}),Tt.include({toGeoJSON:function(t){var e=!q(this._latlngs),i=e&&!q(this._latlngs[0]),n=se(this._latlngs,i?2:e?1:0,!0,t);return e||(n=[n]),bt(this,{type:(i?"Multi":"")+"Polygon",coordinates:n})}}),Pt.include({toMultiPoint:function(t){var e=[];return this.eachLayer(function(i){e.push(i.toGeoJSON(t).geometry.coordinates)}),bt(this,{type:"MultiPoint",coordinates:e})},toGeoJSON:function(t){var e=this.feature&&this.feature.geometry&&this.feature.geometry.type;if(e==="MultiPoint")return this.toMultiPoint(t);var i=e==="GeometryCollection",n=[];return this.eachLayer(function(o){if(o.toGeoJSON){var s=o.toGeoJSON(t);if(i)n.push(s.geometry);else{var r=re(s);r.type==="FeatureCollection"?n.push.apply(n,r.features):n.push(r)}}}),i?bt(this,{geometries:n,type:"GeometryCollection"}):{type:"FeatureCollection",features:n}}});function Yi(t,e){return new at(t,e)}var To=Yi,ae=X.extend({options:{opacity:1,alt:"",interactive:!1,crossOrigin:!1,errorOverlayUrl:"",zIndex:1,className:""},initialize:function(t,e,i){this._url=t,this._bounds=O(e),C(this,i)},onAdd:function(){this._image||(this._initImage(),this.options.opacity<1&&this._updateOpacity()),this.options.interactive&&(v(this._image,"leaflet-interactive"),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){k(this._image),this.options.interactive&&this.removeInteractiveTarget(this._image)},setOpacity:function(t){return this.options.opacity=t,this._image&&this._updateOpacity(),this},setStyle:function(t){return t.opacity&&this.setOpacity(t.opacity),this},bringToFront:function(){return this._map&&wt(this._image),this},bringToBack:function(){return this._map&&xt(this._image),this},setUrl:function(t){return this._url=t,this._image&&(this._image.src=t),this},setBounds:function(t){return this._bounds=O(t),this._map&&this._reset(),this},getEvents:function(){var t={zoom:this._reset,viewreset:this._reset};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},getBounds:function(){return this._bounds},getElement:function(){return this._image},_initImage:function(){var t=this._url.tagName==="IMG",e=this._image=t?this._url:T("img");if(v(e,"leaflet-image-layer"),this._zoomAnimated&&v(e,"leaflet-zoom-animated"),this.options.className&&v(e,this.options.className),e.onselectstart=E,e.onmousemove=E,e.onload=S(this.fire,this,"load"),e.onerror=S(this._overlayOnError,this,"error"),(this.options.crossOrigin||this.options.crossOrigin==="")&&(e.crossOrigin=this.options.crossOrigin===!0?"":this.options.crossOrigin),this.options.zIndex&&this._updateZIndex(),t){this._url=e.src;return}e.src=this._url,e.alt=this.options.alt},_animateZoom:function(t){var e=this._map.getZoomScale(t.zoom),i=this._map._latLngBoundsToNewLayerBounds(this._bounds,t.zoom,t.center).min;_t(this._image,i,e)},_reset:function(){var t=this._image,e=new z(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),i=e.getSize();I(t,e.min),t.style.width=i.x+"px",t.style.height=i.y+"px"},_updateOpacity:function(){V(this._image,this.options.opacity)},_updateZIndex:function(){this._image&&this.options.zIndex!==void 0&&this.options.zIndex!==null&&(this._image.style.zIndex=this.options.zIndex)},_overlayOnError:function(){this.fire("error");var t=this.options.errorOverlayUrl;t&&this._url!==t&&(this._url=t,this._image.src=t)},getCenter:function(){return this._bounds.getCenter()}}),bo=function(t,e,i){return new ae(t,e,i)},Xi=ae.extend({options:{autoplay:!0,loop:!0,keepAspectRatio:!0,muted:!1,playsInline:!0},_initImage:function(){var t=this._url.tagName==="VIDEO",e=this._image=t?this._url:T("video");if(v(e,"leaflet-image-layer"),this._zoomAnimated&&v(e,"leaflet-zoom-animated"),this.options.className&&v(e,this.options.className),e.onselectstart=E,e.onmousemove=E,e.onloadeddata=S(this.fire,this,"load"),t){for(var i=e.getElementsByTagName("source"),n=[],o=0;o0?n:[e.src];return}K(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(e.style,"objectFit")&&(e.style.objectFit="fill"),e.autoplay=!!this.options.autoplay,e.loop=!!this.options.loop,e.muted=!!this.options.muted,e.playsInline=!!this.options.playsInline;for(var s=0;so?(e.height=o+"px",v(t,s)):Z(t,s),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),i=this._getAnchor();I(this._container,e.add(i))},_adjustPan:function(){if(this.options.autoPan){if(this._map._panAnim&&this._map._panAnim.stop(),this._autopanning){this._autopanning=!1;return}var t=this._map,e=parseInt(Ot(this._container,"marginBottom"),10)||0,i=this._container.offsetHeight+e,n=this._containerWidth,o=new m(this._containerLeft,-i-this._containerBottom);o._add(mt(this._container));var s=t.layerPointToContainerPoint(o),r=_(this.options.autoPanPadding),a=_(this.options.autoPanPaddingTopLeft||r),h=_(this.options.autoPanPaddingBottomRight||r),u=t.getSize(),c=0,d=0;s.x+n+h.x>u.x&&(c=s.x+n-u.x+h.x),s.x-c-a.x<0&&(c=s.x-a.x),s.y+i+h.y>u.y&&(d=s.y+i-u.y+h.y),s.y-d-a.y<0&&(d=s.y-a.y),(c||d)&&(this.options.keepInView&&(this._autopanning=!0),t.fire("autopanstart").panBy([c,d]))}},_getAnchor:function(){return _(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}}),Co=function(t,e){return new he(t,e)};w.mergeOptions({closePopupOnClick:!0}),w.include({openPopup:function(t,e,i){return this._initOverlay(he,t,e,i).openOn(this),this},closePopup:function(t){return t=arguments.length?t:this._popup,t&&t.close(),this}}),X.include({bindPopup:function(t,e){return this._popup=this._initOverlay(he,this._popup,t,e),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t){return this._popup&&(this instanceof st||(this._popup._source=this),this._popup._prepareOpen(t||this._latlng)&&this._popup.openOn(this._map)),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return this._popup?this._popup.isOpen():!1},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){if(!(!this._popup||!this._map)){vt(t);var e=t.layer||t.target;if(this._popup._source===e&&!(e instanceof ft)){this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(t.latlng);return}this._popup._source=e,this.openPopup(t.latlng)}},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){t.originalEvent.keyCode===13&&this._openPopup(t)}});var ue=et.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(t){et.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(t){et.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var t=et.prototype.getEvents.call(this);return this.options.permanent||(t.preclick=this.close),t},_initLayout:function(){var t="leaflet-tooltip",e=t+" "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=T("div",e),this._container.setAttribute("role","tooltip"),this._container.setAttribute("id","leaflet-tooltip-"+P(this))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,i,n=this._map,o=this._container,s=n.latLngToContainerPoint(n.getCenter()),r=n.layerPointToContainerPoint(t),a=this.options.direction,h=o.offsetWidth,u=o.offsetHeight,c=_(this.options.offset),d=this._getAnchor();a==="top"?(e=h/2,i=u):a==="bottom"?(e=h/2,i=0):a==="center"?(e=h/2,i=u/2):a==="right"?(e=0,i=u/2):a==="left"?(e=h,i=u/2):r.xthis.options.maxZoom||in?this._retainParent(o,s,r,n):!1)},_retainChildren:function(t,e,i,n){for(var o=2*t;o<2*t+2;o++)for(var s=2*e;s<2*e+2;s++){var r=new m(o,s);r.z=i+1;var a=this._tileCoordsToKey(r),h=this._tiles[a];if(h&&h.active){h.retain=!0;continue}else h&&h.loaded&&(h.retain=!0);i+1this.options.maxZoom||this.options.minZoom!==void 0&&o1){this._setView(t,i);return}for(var d=o.min.y;d<=o.max.y;d++)for(var g=o.min.x;g<=o.max.x;g++){var R=new m(g,d);if(R.z=this._tileZoom,!!this._isValidTile(R)){var B=this._tiles[this._tileCoordsToKey(R)];B?B.current=!0:r.push(R)}}if(r.sort(function(W,St){return W.distanceTo(s)-St.distanceTo(s)}),r.length!==0){this._loading||(this._loading=!0,this.fire("loading"));var j=document.createDocumentFragment();for(g=0;gi.max.x)||!e.wrapLat&&(t.yi.max.y))return!1}if(!this.options.bounds)return!0;var n=this._tileCoordsToBounds(t);return O(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),o=n.add(i),s=e.unproject(n,t.z),r=e.unproject(o,t.z);return[s,r]},_tileCoordsToBounds:function(t){var e=this._tileCoordsToNwSe(t),i=new H(e[0],e[1]);return this.options.noWrap||(i=this._map.wrapLatLngBounds(i)),i},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var e=t.split(":"),i=new m(+e[0],+e[1]);return i.z=+e[2],i},_removeTile:function(t){var e=this._tiles[t];e&&(k(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){v(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=E,t.onmousemove=E,f.ielt9&&this.options.opacity<1&&V(t,this.options.opacity)},_addTile:function(t,e){var i=this._getTilePos(t),n=this._tileCoordsToKey(t),o=this.createTile(this._wrapCoords(t),S(this._tileReady,this,t));this._initTile(o),this.createTile.length<2&&D(S(this._tileReady,this,t,null,o)),I(o,i),this._tiles[n]={el:o,coords:t,current:!0},e.appendChild(o),this.fire("tileloadstart",{tile:o,coords:t})},_tileReady:function(t,e,i){e&&this.fire("tileerror",{error:e,tile:i,coords:t});var n=this._tileCoordsToKey(t);i=this._tiles[n],i&&(i.loaded=+new Date,this._map._fadeAnimated?(V(i.el,0),G(this._fadeFrame),this._fadeFrame=D(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(v(i.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),f.ielt9||!this._map._fadeAnimated?D(this._pruneTiles,this):setTimeout(S(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new m(this._wrapX?Ct(t.x,this._wrapX):t.x,this._wrapY?Ct(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new z(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});function Eo(t){return new Ht(t)}var Mt=Ht.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(t,e){this._url=t,e=C(this,e),e.detectRetina&&f.retina&&e.maxZoom>0?(e.tileSize=Math.floor(e.tileSize/2),e.zoomReverse?(e.zoomOffset--,e.minZoom=Math.min(e.maxZoom,e.minZoom+1)):(e.zoomOffset++,e.maxZoom=Math.max(e.minZoom,e.maxZoom-1)),e.minZoom=Math.max(0,e.minZoom)):e.zoomReverse?e.minZoom=Math.min(e.maxZoom,e.minZoom):e.maxZoom=Math.max(e.minZoom,e.maxZoom),typeof e.subdomains=="string"&&(e.subdomains=e.subdomains.split("")),this.on("tileunload",this._onTileRemove)},setUrl:function(t,e){return this._url===t&&e===void 0&&(e=!0),this._url=t,e||this.redraw(),this},createTile:function(t,e){var i=document.createElement("img");return p(i,"load",S(this._tileOnLoad,this,e,i)),p(i,"error",S(this._tileOnError,this,e,i)),(this.options.crossOrigin||this.options.crossOrigin==="")&&(i.crossOrigin=this.options.crossOrigin===!0?"":this.options.crossOrigin),typeof this.options.referrerPolicy=="string"&&(i.referrerPolicy=this.options.referrerPolicy),i.alt="",i.src=this.getTileUrl(t),i},getTileUrl:function(t){var e={r:f.retina?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var i=this._globalTileRange.max.y-t.y;this.options.tms&&(e.y=i),e["-y"]=i}return ti(this._url,x(e,this.options))},_tileOnLoad:function(t,e){f.ielt9?setTimeout(S(t,this,null,e),0):t(null,e)},_tileOnError:function(t,e,i){var n=this.options.errorTileUrl;n&&e.getAttribute("src")!==n&&(e.src=n),t(i,e)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,e=this.options.maxZoom,i=this.options.zoomReverse,n=this.options.zoomOffset;return i&&(t=e-t),t+n},_getSubdomain:function(t){var e=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[e]},_abortLoading:function(){var t,e;for(t in this._tiles)if(this._tiles[t].coords.z!==this._tileZoom&&(e=this._tiles[t].el,e.onload=E,e.onerror=E,!e.complete)){e.src=qt;var i=this._tiles[t].coords;k(e),delete this._tiles[t],this.fire("tileabort",{tile:e,coords:i})}},_removeTile:function(t){var e=this._tiles[t];if(e)return e.el.setAttribute("src",qt),Ht.prototype._removeTile.call(this,t)},_tileReady:function(t,e,i){if(!(!this._map||i&&i.getAttribute("src")===qt))return Ht.prototype._tileReady.call(this,t,e,i)}});function Qi(t,e){return new Mt(t,e)}var tn=Mt.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,e){this._url=t;var i=x({},this.defaultWmsParams);for(var n in e)n in this.options||(i[n]=e[n]);e=C(this,e);var o=e.detectRetina&&f.retina?2:1,s=this.getTileSize();i.width=s.x*o,i.height=s.y*o,this.wmsParams=i},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var e=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[e]=this._crs.code,Mt.prototype.onAdd.call(this,t)},getTileUrl:function(t){var e=this._tileCoordsToNwSe(t),i=this._crs,n=F(i.project(e[0]),i.project(e[1])),o=n.min,s=n.max,r=(this._wmsVersion>=1.3&&this._crs===qi?[o.y,o.x,s.y,s.x]:[o.x,o.y,s.x,s.y]).join(","),a=Mt.prototype.getTileUrl.call(this,t);return a+Qe(this.wmsParams,a,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+r},setParams:function(t,e){return x(this.wmsParams,t),e||this.redraw(),this}});function Zo(t,e){return new tn(t,e)}Mt.WMS=tn,Qi.wms=Zo;var ht=X.extend({options:{padding:.1},initialize:function(t){C(this,t),P(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),v(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,e){var i=this._map.getZoomScale(e,this._zoom),n=this._map.getSize().multiplyBy(.5+this.options.padding),o=this._map.project(this._center,e),s=n.multiplyBy(-i).add(o).subtract(this._map._getNewPixelOrigin(t,e));f.any3d?_t(this._container,s,i):I(this._container,s)},_reset:function(){this._update(),this._updateTransform(this._center,this._zoom);for(var t in this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,e=this._map.getSize(),i=this._map.containerPointToLayerPoint(e.multiplyBy(-t)).round();this._bounds=new z(i,i.add(e.multiplyBy(1+t*2)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),en=ht.extend({options:{tolerance:0},getEvents:function(){var t=ht.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){ht.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");p(t,"mousemove",this._onMouseMove,this),p(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),p(t,"mouseout",this._handleMouseOut,this),t._leaflet_disable_events=!0,this._ctx=t.getContext("2d")},_destroyContainer:function(){G(this._redrawRequest),delete this._ctx,k(this._container),M(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){var t;this._redrawBounds=null;for(var e in this._layers)t=this._layers[e],t._update();this._redraw()}},_update:function(){if(!(this._map._animatingZoom&&this._bounds)){ht.prototype._update.call(this);var t=this._bounds,e=this._container,i=t.getSize(),n=f.retina?2:1;I(e,t.min),e.width=n*i.x,e.height=n*i.y,e.style.width=i.x+"px",e.style.height=i.y+"px",f.retina&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){ht.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[P(t)]=t;var e=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=e),this._drawLast=e,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var e=t._order,i=e.next,n=e.prev;i?i.prev=n:this._drawLast=n,n?n.next=i:this._drawFirst=i,delete t._order,delete this._layers[P(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if(typeof t.options.dashArray=="string"){var e=t.options.dashArray.split(/[, ]+/),i=[],n,o;for(o=0;o')}}catch{}return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}(),Oo={_initContainer:function(){this._container=T("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(ht.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=Wt("shape");v(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=Wt("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[P(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;k(e),t.removeInteractiveTarget(e),delete this._layers[P(t)]},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(e||(e=t._stroke=Wt("stroke")),o.appendChild(e),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=K(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=n.lineCap.replace("butt","flat"),e.joinstyle=n.lineJoin):e&&(o.removeChild(e),t._stroke=null),n.fill?(i||(i=t._fill=Wt("fill")),o.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(o.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),n=Math.round(t._radiusY||i);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+i+","+n+" 0,"+65535*360)},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){wt(t._container)},_bringToBack:function(t){xt(t._container)}},le=f.vml?Wt:ri,Ut=ht.extend({_initContainer:function(){this._container=le("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=le("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){k(this._container),M(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){if(!(this._map._animatingZoom&&this._bounds)){ht.prototype._update.call(this);var t=this._bounds,e=t.getSize(),i=this._container;(!this._svgSize||!this._svgSize.equals(e))&&(this._svgSize=e,i.setAttribute("width",e.x),i.setAttribute("height",e.y)),I(i,t.min),i.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update")}},_initPath:function(t){var e=t._path=le("path");t.options.className&&v(e,t.options.className),t.options.interactive&&v(e,"leaflet-interactive"),this._updateStyle(t),this._layers[P(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){k(t._path),t.removeInteractiveTarget(t._path),delete this._layers[P(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,i=t.options;e&&(i.stroke?(e.setAttribute("stroke",i.color),e.setAttribute("stroke-opacity",i.opacity),e.setAttribute("stroke-width",i.weight),e.setAttribute("stroke-linecap",i.lineCap),e.setAttribute("stroke-linejoin",i.lineJoin),i.dashArray?e.setAttribute("stroke-dasharray",i.dashArray):e.removeAttribute("stroke-dasharray"),i.dashOffset?e.setAttribute("stroke-dashoffset",i.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),i.fill?(e.setAttribute("fill",i.fillColor||i.color),e.setAttribute("fill-opacity",i.fillOpacity),e.setAttribute("fill-rule",i.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,ai(t._parts,e))},_updateCircle:function(t){var e=t._point,i=Math.max(Math.round(t._radius),1),n=Math.max(Math.round(t._radiusY),1)||i,o="a"+i+","+n+" 0 1,0 ",s=t._empty()?"M0 0":"M"+(e.x-i)+","+e.y+o+i*2+",0 "+o+-i*2+",0 ";this._setPath(t,s)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){wt(t._path)},_bringToBack:function(t){xt(t._path)}});f.vml&&Ut.include(Oo);function on(t){return f.svg||f.vml?new Ut(t):null}w.include({getRenderer:function(t){var e=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return e||(e=this._renderer=this._createRenderer()),this.hasLayer(e)||this.addLayer(e),e},_getPaneRenderer:function(t){if(t==="overlayPane"||t===void 0)return!1;var e=this._paneRenderers[t];return e===void 0&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e},_createRenderer:function(t){return this.options.preferCanvas&&nn(t)||on(t)}});var sn=Tt.extend({initialize:function(t,e){Tt.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return t=O(t),[t.getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});function Io(t,e){return new sn(t,e)}Ut.create=le,Ut.pointsToPath=ai,at.geometryToLayer=ne,at.coordsToLatLng=qe,at.coordsToLatLngs=oe,at.latLngToCoords=je,at.latLngsToCoords=se,at.getFeature=bt,at.asFeature=re,w.mergeOptions({boxZoom:!0});var rn=tt.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){p(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){M(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){k(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){this._resetStateTimeout!==0&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||t.which!==1&&t.button!==1)return!1;this._clearDeferredResetState(),this._resetState(),It(),ze(),this._startPoint=this._map.mouseEventToContainerPoint(t),p(document,{contextmenu:vt,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=T("div","leaflet-zoom-box",this._container),v(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var e=new z(this._point,this._startPoint),i=e.getSize();I(this._box,e.min),this._box.style.width=i.x+"px",this._box.style.height=i.y+"px"},_finish:function(){this._moved&&(k(this._box),Z(this._container,"leaflet-crosshair")),At(),ke(),M(document,{contextmenu:vt,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if(!(t.which!==1&&t.button!==1)&&(this._finish(),!!this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(S(this._resetState,this),0);var e=new H(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(e).fire("boxzoomend",{boxZoomBounds:e})}},_onKeyDown:function(t){t.keyCode===27&&(this._finish(),this._clearDeferredResetState(),this._resetState())}});w.addInitHook("addHandler","boxZoom",rn),w.mergeOptions({doubleClickZoom:!0});var an=tt.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom(),n=e.options.zoomDelta,o=t.originalEvent.shiftKey?i-n:i+n;e.options.doubleClickZoom==="center"?e.setZoom(o):e.setZoomAround(t.containerPoint,o)}});w.addInitHook("addHandler","doubleClickZoom",an),w.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var hn=tt.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new ct(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))}v(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){Z(this._map._container,"leaflet-grab"),Z(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t=this._map;if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var e=O(this._map.options.maxBounds);this._offsetLimit=F(this._map.latLngToContainerPoint(e.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(e.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var e=this._lastTime=+new Date,i=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(i),this._times.push(e),this._prunePositions(e)}this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;this._positions.length>1&&t-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),e=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=e.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,e){return t-(t-e)*this._viscosity},_onPreDragLimit:function(){if(!(!this._viscosity||!this._offsetLimit)){var t=this._draggable._newPos.subtract(this._draggable._startPos),e=this._offsetLimit;t.xe.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,s=(n+e+i)%t-e-i,r=Math.abs(o+i)0?s:-s))-e;this._delta=0,this._startTime=null,r&&(t.options.scrollWheelZoom==="center"?t.setZoom(e+r):t.setZoomAround(this._lastMousePos,e+r))}});w.addInitHook("addHandler","scrollWheelZoom",ln);var Ao=600;w.mergeOptions({tapHold:f.touchNative&&f.safari&&f.mobile,tapTolerance:15});var cn=tt.extend({addHooks:function(){p(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){M(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(clearTimeout(this._holdTimeout),t.touches.length===1){var e=t.touches[0];this._startPos=this._newPos=new m(e.clientX,e.clientY),this._holdTimeout=setTimeout(S(function(){this._cancel(),this._isTapValid()&&(p(document,"touchend",N),p(document,"touchend touchcancel",this._cancelClickPrevent),this._simulateEvent("contextmenu",e))},this),Ao),p(document,"touchend touchcancel contextmenu",this._cancel,this),p(document,"touchmove",this._onMove,this)}},_cancelClickPrevent:function t(){M(document,"touchend",N),M(document,"touchend touchcancel",t)},_cancel:function(){clearTimeout(this._holdTimeout),M(document,"touchend touchcancel contextmenu",this._cancel,this),M(document,"touchmove",this._onMove,this)},_onMove:function(t){var e=t.touches[0];this._newPos=new m(e.clientX,e.clientY)},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_simulateEvent:function(t,e){var i=new MouseEvent(t,{bubbles:!0,cancelable:!0,view:window,screenX:e.screenX,screenY:e.screenY,clientX:e.clientX,clientY:e.clientY});i._simulated=!0,e.target.dispatchEvent(i)}});w.addInitHook("addHandler","tapHold",cn),w.mergeOptions({touchZoom:f.touch,bounceAtZoomLimits:!0});var fn=tt.extend({addHooks:function(){v(this._map._container,"leaflet-touch-zoom"),p(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){Z(this._map._container,"leaflet-touch-zoom"),M(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var e=this._map;if(!(!t.touches||t.touches.length!==2||e._animatingZoom||this._zooming)){var i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=e.getSize()._divideBy(2),this._startLatLng=e.containerPointToLatLng(this._centerPoint),e.options.touchZoom!=="center"&&(this._pinchStartLatLng=e.containerPointToLatLng(i.add(n)._divideBy(2))),this._startDist=i.distanceTo(n),this._startZoom=e.getZoom(),this._moved=!1,this._zooming=!0,e._stop(),p(document,"touchmove",this._onTouchMove,this),p(document,"touchend touchcancel",this._onTouchEnd,this),N(t)}},_onTouchMove:function(t){if(!(!t.touches||t.touches.length!==2||!this._zooming)){var e=this._map,i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]),o=i.distanceTo(n)/this._startDist;if(this._zoom=e.getScaleZoom(o,this._startZoom),!e.options.bounceAtZoomLimits&&(this._zoome.getMaxZoom()&&o>1)&&(this._zoom=e._limitZoom(this._zoom)),e.options.touchZoom==="center"){if(this._center=this._startLatLng,o===1)return}else{var s=i._add(n)._divideBy(2)._subtract(this._centerPoint);if(o===1&&s.x===0&&s.y===0)return;this._center=e.unproject(e.project(this._pinchStartLatLng,this._zoom).subtract(s),this._zoom)}this._moved||(e._moveStart(!0,!1),this._moved=!0),G(this._animRequest);var r=S(e._move,e,this._center,this._zoom,{pinch:!0,round:!1},void 0);this._animRequest=D(r,this,!0),N(t)}},_onTouchEnd:function(){if(!this._moved||!this._zooming){this._zooming=!1;return}this._zooming=!1,G(this._animRequest),M(document,"touchmove",this._onTouchMove,this),M(document,"touchend touchcancel",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))}});w.addInitHook("addHandler","touchZoom",fn),w.BoxZoom=rn,w.DoubleClickZoom=an,w.Drag=hn,w.Keyboard=un,w.ScrollWheelZoom=ln,w.TapHold=cn,w.TouchZoom=fn,l.Bounds=z,l.Browser=f,l.CRS=ot,l.Canvas=en,l.Circle=Ve,l.CircleMarker=ie,l.Class=nt,l.Control=Y,l.DivIcon=$i,l.DivOverlay=et,l.DomEvent=$n,l.DomUtil=Xn,l.Draggable=ct,l.Evented=zt,l.FeatureGroup=st,l.GeoJSON=at,l.GridLayer=Ht,l.Handler=tt,l.Icon=Lt,l.ImageOverlay=ae,l.LatLng=b,l.LatLngBounds=H,l.Layer=X,l.LayerGroup=Pt,l.LineUtil=co,l.Map=w,l.Marker=ee,l.Mixin=so,l.Path=ft,l.Point=m,l.PolyUtil=ro,l.Polygon=Tt,l.Polyline=rt,l.Popup=he,l.PosAnimation=Ii,l.Projection=fo,l.Rectangle=sn,l.Renderer=ht,l.SVG=Ut,l.SVGOverlay=Ji,l.TileLayer=Mt,l.Tooltip=ue,l.Transformation=ve,l.Util=gn,l.VideoOverlay=Xi,l.bind=S,l.bounds=F,l.canvas=nn,l.circle=xo,l.circleMarker=wo,l.control=Rt,l.divIcon=ko,l.extend=x,l.featureGroup=vo,l.geoJSON=Yi,l.geoJson=To,l.gridLayer=Eo,l.icon=go,l.imageOverlay=bo,l.latLng=y,l.latLngBounds=O,l.layerGroup=po,l.map=Qn,l.marker=yo,l.point=_,l.polygon=Lo,l.polyline=Po,l.popup=Co,l.rectangle=Io,l.setOptions=C,l.stamp=P,l.svg=on,l.svgOverlay=So,l.tileLayer=Qi,l.tooltip=zo,l.transformation=kt,l.version=it,l.videoOverlay=Mo;var Bo=window.L;l.noConflict=function(){return window.L=Bo,this},window.L=l})})(Xe,Xe.exports);var pn=Xe.exports;const Ko=Vo(pn),Xo=jo({__proto__:null,default:Ko},[pn]);export{Xo as l}; diff --git a/dist/assets/leaflet-src.esm-HdBnhJze.js b/dist/assets/leaflet-src.esm-HdBnhJze.js new file mode 100644 index 000000000..6f005d369 --- /dev/null +++ b/dist/assets/leaflet-src.esm-HdBnhJze.js @@ -0,0 +1,4 @@ +/* @preserve + * Leaflet 1.9.4, a JS library for interactive maps. https://leafletjs.com + * (c) 2010-2023 Vladimir Agafonkin, (c) 2010-2011 CloudMade + */var fo="1.9.4";function T(t){var e,i,n,o;for(i=1,n=arguments.length;i"u"||!L||!L.Mixin)){t=j(t)?t:[t];for(var e=0;e0?Math.floor(t):Math.ceil(t)};m.prototype={clone:function(){return new m(this.x,this.y)},add:function(t){return this.clone()._add(d(t))},_add:function(t){return this.x+=t.x,this.y+=t.y,this},subtract:function(t){return this.clone()._subtract(d(t))},_subtract:function(t){return this.x-=t.x,this.y-=t.y,this},divideBy:function(t){return this.clone()._divideBy(t)},_divideBy:function(t){return this.x/=t,this.y/=t,this},multiplyBy:function(t){return this.clone()._multiplyBy(t)},_multiplyBy:function(t){return this.x*=t,this.y*=t,this},scaleBy:function(t){return new m(this.x*t.x,this.y*t.y)},unscaleBy:function(t){return new m(this.x/t.x,this.y/t.y)},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.clone()._ceil()},_ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},trunc:function(){return this.clone()._trunc()},_trunc:function(){return this.x=Ke(this.x),this.y=Ke(this.y),this},distanceTo:function(t){t=d(t);var e=t.x-this.x,i=t.y-this.y;return Math.sqrt(e*e+i*i)},equals:function(t){return t=d(t),t.x===this.x&&t.y===this.y},contains:function(t){return t=d(t),Math.abs(t.x)<=Math.abs(this.x)&&Math.abs(t.y)<=Math.abs(this.y)},toString:function(){return"Point("+K(this.x)+", "+K(this.y)+")"}};function d(t,e,i){return t instanceof m?t:j(t)?new m(t[0],t[1]):t==null?t:typeof t=="object"&&"x"in t&&"y"in t?new m(t.x,t.y):new m(t,e,i)}function z(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;n=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=H(t);var e=this.min,i=this.max,n=t.min,o=t.max,s=o.x>=e.x&&n.x<=i.x,r=o.y>=e.y&&n.y<=i.y;return s&&r},overlaps:function(t){t=H(t);var e=this.min,i=this.max,n=t.min,o=t.max,s=o.x>e.x&&n.xe.y&&n.y=e.lat&&o.lat<=i.lat&&n.lng>=e.lng&&o.lng<=i.lng},intersects:function(t){t=I(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>=e.lat&&n.lat<=i.lat,r=o.lng>=e.lng&&n.lng<=i.lng;return s&&r},overlaps:function(t){t=I(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>e.lat&&n.late.lng&&n.lng1,Tn=function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("testPassiveEventSupport",k,e),window.removeEventListener("testPassiveEventSupport",k,e)}catch{}return t}(),bn=function(){return!!document.createElement("canvas").getContext}(),Pe=!!(document.createElementNS&&ci("svg").createSVGRect),Mn=!!Pe&&function(){var t=document.createElement("div");return t.innerHTML="",(t.firstChild&&t.firstChild.namespaceURI)==="http://www.w3.org/2000/svg"}(),Cn=!Pe&&function(){try{var t=document.createElement("div");t.innerHTML='';var e=t.firstChild;return e.style.behavior="url(#default#VML)",e&&typeof e.adj=="object"}catch{return!1}}(),Sn=navigator.platform.indexOf("Mac")===0,zn=navigator.platform.indexOf("Linux")===0;function X(t){return navigator.userAgent.toLowerCase().indexOf(t)>=0}var c={ie:Xt,ielt9:fn,edge:di,webkit:ye,android:_i,android23:mi,androidStock:_n,opera:xe,chrome:pi,gecko:vi,safari:mn,phantom:gi,opera12:yi,win:pn,ie3d:xi,webkit3d:we,gecko3d:wi,any3d:vn,mobile:Ot,mobileWebkit:gn,mobileWebkit3d:yn,msPointer:Pi,pointer:Li,touch:xn,touchNative:Ti,mobileOpera:wn,mobileGecko:Pn,retina:Ln,passiveEvents:Tn,canvas:bn,svg:Pe,vml:Cn,inlineSvg:Mn,mac:Sn,linux:zn},bi=c.msPointer?"MSPointerDown":"pointerdown",Mi=c.msPointer?"MSPointerMove":"pointermove",Ci=c.msPointer?"MSPointerUp":"pointerup",Si=c.msPointer?"MSPointerCancel":"pointercancel",he={touchstart:bi,touchmove:Mi,touchend:Ci,touchcancel:Si},Xe={touchstart:An,touchmove:Rt,touchend:Rt,touchcancel:Rt},vt={},Je=!1;function kn(t,e,i){return e==="touchstart"&&In(),Xe[e]?(i=Xe[e].bind(this,i),t.addEventListener(he[e],i,!1),i):(console.warn("wrong event specified:",e),k)}function En(t,e,i){if(!he[e]){console.warn("wrong event specified:",e);return}t.removeEventListener(he[e],i,!1)}function Zn(t){vt[t.pointerId]=t}function On(t){vt[t.pointerId]&&(vt[t.pointerId]=t)}function $e(t){delete vt[t.pointerId]}function In(){Je||(document.addEventListener(bi,Zn,!0),document.addEventListener(Mi,On,!0),document.addEventListener(Ci,$e,!0),document.addEventListener(Si,$e,!0),Je=!0)}function Rt(t,e){if(e.pointerType!==(e.MSPOINTER_TYPE_MOUSE||"mouse")){e.touches=[];for(var i in vt)e.touches.push(vt[i]);e.changedTouches=[e],t(e)}}function An(t,e){e.MSPOINTER_TYPE_TOUCH&&e.pointerType===e.MSPOINTER_TYPE_TOUCH&&B(e),Rt(t,e)}function Bn(t){var e={},i,n;for(n in t)i=t[n],e[n]=i&&i.bind?i.bind(t):i;return t=e,e.type="dblclick",e.detail=2,e.isTrusted=!1,e._simulated=!0,e}var Nn=200;function Rn(t,e){t.addEventListener("dblclick",e);var i=0,n;function o(s){if(s.detail!==1){n=s.detail;return}if(!(s.pointerType==="mouse"||s.sourceCapabilities&&!s.sourceCapabilities.firesTouchEvents)){var r=Zi(s);if(!(r.some(function(h){return h instanceof HTMLLabelElement&&h.attributes.for})&&!r.some(function(h){return h instanceof HTMLInputElement||h instanceof HTMLSelectElement}))){var a=Date.now();a-i<=Nn?(n++,n===2&&e(Bn(s))):n=1,i=a}}}return t.addEventListener("click",o),{dblclick:e,simDblclick:o}}function Dn(t,e){t.removeEventListener("dblclick",e.dblclick),t.removeEventListener("click",e.simDblclick)}var Le=$t(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),Lt=$t(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),zi=Lt==="webkitTransition"||Lt==="OTransition"?Lt+"End":"transitionend";function ki(t){return typeof t=="string"?document.getElementById(t):t}function St(t,e){var i=t.style[e]||t.currentStyle&&t.currentStyle[e];if((!i||i==="auto")&&document.defaultView){var n=document.defaultView.getComputedStyle(t,null);i=n?n[e]:null}return i==="auto"?null:i}function x(t,e,i){var n=document.createElement(t);return n.className=e||"",i&&i.appendChild(n),n}function C(t){var e=t.parentNode;e&&e.removeChild(t)}function Ut(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function yt(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}function xt(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function Te(t,e){if(t.classList!==void 0)return t.classList.contains(e);var i=Jt(t);return i.length>0&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(i)}function p(t,e){if(t.classList!==void 0)for(var i=ut(e),n=0,o=i.length;n0?2*window.devicePixelRatio:1;function Ii(t){return c.edge?t.wheelDeltaY/2:t.deltaY&&t.deltaMode===0?-t.deltaY/Fn:t.deltaY&&t.deltaMode===1?-t.deltaY*20:t.deltaY&&t.deltaMode===2?-t.deltaY*60:t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)/2:t.detail&&Math.abs(t.detail)<32765?-t.detail*20:t.detail?t.detail/-32765*60:0}function Ee(t,e){var i=e.relatedTarget;if(!i)return!0;try{for(;i&&i!==t;)i=i.parentNode}catch{return!1}return i!==t}var po={__proto__:null,on:_,off:b,stopPropagation:lt,disableScrollPropagation:ke,disableClickPropagation:It,preventDefault:B,stop:_t,getPropagationPath:Zi,getMousePosition:Oi,getWheelDelta:Ii,isExternalTarget:Ee,addListener:_,removeListener:b},Wn=Kt.extend({run:function(t,e,i,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=i||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=dt(t),this._offset=e.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=D(this._animate,this),this._step()},_step:function(t){var e=+new Date-this._startTime,i=this._duration*1e3;ethis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),n=this._limitCenter(i,this._zoom,I(t));return i.equals(n)||this.panTo(n,e),this._enforcingBounds=!1,this},panInside:function(t,e){e=e||{};var i=d(e.paddingTopLeft||e.padding||[0,0]),n=d(e.paddingBottomRight||e.padding||[0,0]),o=this.project(this.getCenter()),s=this.project(t),r=this.getPixelBounds(),a=H([r.min.add(i),r.max.subtract(n)]),h=a.getSize();if(!a.contains(s)){this._enforcingBounds=!0;var u=s.subtract(a.getCenter()),l=a.extend(s).getSize().subtract(h);o.x+=u.x<0?-l.x:l.x,o.y+=u.y<0?-l.y:l.y,this.panTo(this.unproject(o),e),this._enforcingBounds=!1}return this},invalidateSize:function(t){if(!this._loaded)return this;t=T({animate:!1,pan:!0},t===!0?{animate:!0}:t);var e=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var i=this.getSize(),n=e.divideBy(2).round(),o=i.divideBy(2).round(),s=n.subtract(o);return!s.x&&!s.y?this:(t.animate&&t.pan?this.panBy(s):(t.pan&&this._rawPanBy(s),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(M(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:e,newSize:i}))},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=T({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var e=M(this._handleGeolocationResponse,this),i=M(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(e,i,t):navigator.geolocation.getCurrentPosition(e,i,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){if(this._container._leaflet_id){var e=t.code,i=t.message||(e===1?"permission denied":e===2?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+i+"."})}},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var e=t.coords.latitude,i=t.coords.longitude,n=new P(e,i),o=n.toBounds(t.coords.accuracy*2),s=this._locateOptions;if(s.setView){var r=this.getBoundsZoom(o);this.setView(n,s.maxZoom?Math.min(r,s.maxZoom):r)}var a={latlng:n,bounds:o,timestamp:t.timestamp};for(var h in t.coords)typeof t.coords[h]=="number"&&(a[h]=t.coords[h]);this.fire("locationfound",a)}},addHandler:function(t,e){if(!e)return this;var i=this[t]=new e(this);return this._handlers.push(i),this.options[t]&&i.enable(),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch{this._container._leaflet_id=void 0,this._containerId=void 0}this._locationWatchId!==void 0&&this.stopLocate(),this._stop(),C(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(V(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload");var t;for(t in this._layers)this._layers[t].remove();for(t in this._panes)C(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){var i="leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),n=x("div",i,e||this._mapPane);return t&&(this._panes[t]=n),n},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter.clone():this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds(),e=this.unproject(t.getBottomLeft()),i=this.unproject(t.getTopRight());return new F(e,i)},getMinZoom:function(){return this.options.minZoom===void 0?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return this.options.maxZoom===void 0?this._layersMaxZoom===void 0?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=I(t),i=d(i||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),a=t.getSouthEast(),h=this.getSize().subtract(i),u=H(this.project(a,n),this.project(r,n)).getSize(),l=c.any3d?this.options.zoomSnap:1,f=h.x/u.x,v=h.y/u.y,N=e?Math.max(f,v):Math.min(f,v);return n=this.getScaleZoom(N,n),l&&(n=Math.round(n/(l/100))*(l/100),n=e?Math.ceil(n/l)*l:Math.floor(n/l)*l),Math.max(o,Math.min(s,n))},getSize:function(){return(!this._size||this._sizeChanged)&&(this._size=new m(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){var i=this._getTopLeftPoint(t,e);return new z(i,i.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(t===void 0?this.getZoom():t)},getPane:function(t){return typeof t=="string"?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var i=this.options.crs;return e=e===void 0?this._zoom:e,i.scale(t)/i.scale(e)},getScaleZoom:function(t,e){var i=this.options.crs;e=e===void 0?this._zoom:e;var n=i.zoom(t*i.scale(e));return isNaN(n)?1/0:n},project:function(t,e){return e=e===void 0?this._zoom:e,this.options.crs.latLngToPoint(g(t),e)},unproject:function(t,e){return e=e===void 0?this._zoom:e,this.options.crs.pointToLatLng(d(t),e)},layerPointToLatLng:function(t){var e=d(t).add(this.getPixelOrigin());return this.unproject(e)},latLngToLayerPoint:function(t){var e=this.project(g(t))._round();return e._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(g(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(I(t))},distance:function(t,e){return this.options.crs.distance(g(t),g(e))},containerPointToLayerPoint:function(t){return d(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return d(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var e=this.containerPointToLayerPoint(d(t));return this.layerPointToLatLng(e)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(g(t)))},mouseEventToContainerPoint:function(t){return Oi(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var e=this._container=ki(t);if(e){if(e._leaflet_id)throw new Error("Map container is already initialized.")}else throw new Error("Map container not found.");_(e,"scroll",this._onScroll,this),this._containerId=w(e)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&c.any3d,p(t,"leaflet-container"+(c.touch?" leaflet-touch":"")+(c.retina?" leaflet-retina":"")+(c.ielt9?" leaflet-oldie":"")+(c.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var e=St(t,"position");e!=="absolute"&&e!=="relative"&&e!=="fixed"&&e!=="sticky"&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),O(this._mapPane,new m(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(p(t.markerPane,"leaflet-zoom-hide"),p(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e,i){O(this._mapPane,new m(0,0));var n=!this._loaded;this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset");var o=this._zoom!==e;this._moveStart(o,i)._move(t,e)._moveEnd(o),this.fire("viewreset"),n&&this.fire("load")},_moveStart:function(t,e){return t&&this.fire("zoomstart"),e||this.fire("movestart"),this},_move:function(t,e,i,n){e===void 0&&(e=this._zoom);var o=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),n?i&&i.pinch&&this.fire("zoom",i):((o||i&&i.pinch)&&this.fire("zoom",i),this.fire("move",i)),this},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return V(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){O(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={},this._targets[w(this._container)]=this;var e=t?b:_;e(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&e(window,"resize",this._onResize,this),c.any3d&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){V(this._resizeRequest),this._resizeRequest=D(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i=[],n,o=e==="mouseout"||e==="mouseover",s=t.target||t.srcElement,r=!1;s;){if(n=this._targets[w(s)],n&&(e==="click"||e==="preclick")&&this._draggableMoved(n)){r=!0;break}if(n&&n.listens(e,!0)&&(o&&!Ee(s,t)||(i.push(n),o))||s===this._container)break;s=s.parentNode}return!i.length&&!r&&!o&&this.listens(e,!0)&&(i=[this]),i},_isClickDisabled:function(t){for(;t&&t!==this._container;){if(t._leaflet_disable_click)return!0;t=t.parentNode}},_handleDOMEvent:function(t){var e=t.target||t.srcElement;if(!(!this._loaded||e._leaflet_disable_events||t.type==="click"&&this._isClickDisabled(e))){var i=t.type;i==="mousedown"&&Se(e),this._fireDOMEvent(t,i)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,e,i){if(t.type==="click"){var n=T({},t);n.type="preclick",this._fireDOMEvent(n,n.type,i)}var o=this._findEventTargets(t,e);if(i){for(var s=[],r=0;r0?Math.round(t-e)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(e))},_limitZoom:function(t){var e=this.getMinZoom(),i=this.getMaxZoom(),n=c.any3d?this.options.zoomSnap:1;return n&&(t=Math.round(t/n)*n),Math.max(e,Math.min(i,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){E(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,e){var i=this._getCenterOffset(t)._trunc();return(e&&e.animate)!==!0&&!this.getSize().contains(i)?!1:(this.panBy(i,e),!0)},_createAnimProxy:function(){var t=this._proxy=x("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",function(e){var i=Le,n=this._proxy.style[i];ft(this._proxy,this.project(e.center,e.zoom),this.getZoomScale(e.zoom,1)),n===this._proxy.style[i]&&this._animatingZoom&&this._onZoomTransitionEnd()},this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){C(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var t=this.getCenter(),e=this.getZoom();ft(this._proxy,this.project(t,e),this.getZoomScale(e,1))},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,e,i){if(this._animatingZoom)return!0;if(i=i||{},!this._zoomAnimated||i.animate===!1||this._nothingToAnimate()||Math.abs(e-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),o=this._getCenterOffset(t)._divideBy(1-1/n);return i.animate!==!0&&!this.getSize().contains(o)?!1:(D(function(){this._moveStart(!0,i.noMoveStart||!1)._animateZoom(t,e,!0)},this),!0)},_animateZoom:function(t,e,i,n){this._mapPane&&(i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,p(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:n}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(M(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&E(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});function vo(t,e){return new y(t,e)}var J=st.extend({options:{position:"topright"},initialize:function(t){S(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),n=t._controlCorners[i];return p(e,"leaflet-control"),i.indexOf("bottom")!==-1?n.insertBefore(e,n.firstChild):n.appendChild(e),this._map.on("unload",this.remove,this),this},remove:function(){return this._map?(C(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),Qt=function(t){return new J(t)};y.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){var t=this._controlCorners={},e="leaflet-",i=this._controlContainer=x("div",e+"control-container",this._container);function n(o,s){var r=e+o+" "+e+s;t[o+s]=x("div",r,i)}n("top","left"),n("top","right"),n("bottom","left"),n("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)C(this._controlCorners[t]);C(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var Ai=J.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,e,i,n){return i1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=e&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var e=this._getLayer(w(t.target)),i=e.overlay?t.type==="add"?"overlayadd":"overlayremove":t.type==="add"?"baselayerchange":null;i&&this._map.fire(i,e)},_createRadioElement:function(t,e){var i='",n=document.createElement("div");return n.innerHTML=i,n.firstChild},_addItem:function(t){var e=document.createElement("label"),i=this._map.hasLayer(t.layer),n;t.overlay?(n=document.createElement("input"),n.type="checkbox",n.className="leaflet-control-layers-selector",n.defaultChecked=i):n=this._createRadioElement("leaflet-base-layers_"+w(this),i),this._layerControlInputs.push(n),n.layerId=w(t.layer),_(n,"click",this._onInputClick,this);var o=document.createElement("span");o.innerHTML=" "+t.name;var s=document.createElement("span");e.appendChild(s),s.appendChild(n),s.appendChild(o);var r=t.overlay?this._overlaysList:this._baseLayersList;return r.appendChild(e),this._checkDisabledLayers(),e},_onInputClick:function(){if(!this._preventClick){var t=this._layerControlInputs,e,i,n=[],o=[];this._handlingClick=!0;for(var s=t.length-1;s>=0;s--)e=t[s],i=this._getLayer(e.layerId).layer,e.checked?n.push(i):e.checked||o.push(i);for(s=0;s=0;o--)e=t[o],i=this._getLayer(e.layerId).layer,e.disabled=i.options.minZoom!==void 0&&ni.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expandSafely:function(){var t=this._section;this._preventClick=!0,_(t,"click",B),this.expand();var e=this;setTimeout(function(){b(t,"click",B),e._preventClick=!1})}}),Un=function(t,e,i){return new Ai(t,e,i)},Ze=J.extend({options:{position:"topleft",zoomInText:'',zoomInTitle:"Zoom in",zoomOutText:'',zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=x("div",e+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,e+"-in",i,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,e+"-out",i,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,o){var s=x("a",i,n);return s.innerHTML=t,s.href="#",s.title=e,s.setAttribute("role","button"),s.setAttribute("aria-label",e),It(s),_(s,"click",_t),_(s,"click",o,this),_(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";E(this._zoomInButton,e),E(this._zoomOutButton,e),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),(this._disabled||t._zoom===t.getMinZoom())&&(p(this._zoomOutButton,e),this._zoomOutButton.setAttribute("aria-disabled","true")),(this._disabled||t._zoom===t.getMaxZoom())&&(p(this._zoomInButton,e),this._zoomInButton.setAttribute("aria-disabled","true"))}});y.mergeOptions({zoomControl:!0});y.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new Ze,this.addControl(this.zoomControl))});var qn=function(t){return new Ze(t)},Bi=J.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e="leaflet-control-scale",i=x("div",e),n=this.options;return this._addScales(n,e+"-line",i),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=x("div",e,i)),t.imperial&&(this._iScale=x("div",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,i=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(i)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t),i=e<1e3?e+" m":e/1e3+" km";this._updateScale(this._mScale,i,e/t)},_updateImperial:function(t){var e=t*3.2808399,i,n,o;e>5280?(i=e/5280,n=this._getRoundNum(i),this._updateScale(this._iScale,n+" mi",n/i)):(o=this._getRoundNum(e),this._updateScale(this._iScale,o+" ft",o/e))},_updateScale:function(t,e,i){t.style.width=Math.round(this.options.maxWidth*i)+"px",t.innerHTML=e},_getRoundNum:function(t){var e=Math.pow(10,(Math.floor(t)+"").length-1),i=t/e;return i=i>=10?10:i>=5?5:i>=3?3:i>=2?2:1,e*i}}),Vn=function(t){return new Bi(t)},Gn='',Oe=J.extend({options:{position:"bottomright",prefix:''+(c.inlineSvg?Gn+" ":"")+"Leaflet"},initialize:function(t){S(this,t),this._attributions={}},onAdd:function(t){t.attributionControl=this,this._container=x("div","leaflet-control-attribution"),It(this._container);for(var e in t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),t.on("layeradd",this._addAttribution,this),this._container},onRemove:function(t){t.off("layeradd",this._addAttribution,this)},_addAttribution:function(t){t.layer.getAttribution&&(this.addAttribution(t.layer.getAttribution()),t.layer.once("remove",function(){this.removeAttribution(t.layer.getAttribution())},this))},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[];for(var e in this._attributions)this._attributions[e]&&t.push(e);var i=[];this.options.prefix&&i.push(this.options.prefix),t.length&&i.push(t.join(", ")),this._container.innerHTML=i.join(' ')}}});y.mergeOptions({attributionControl:!0});y.addInitHook(function(){this.options.attributionControl&&new Oe().addTo(this)});var jn=function(t){return new Oe(t)};J.Layers=Ai;J.Zoom=Ze;J.Scale=Bi;J.Attribution=Oe;Qt.layers=Un;Qt.zoom=qn;Qt.scale=Vn;Qt.attribution=jn;var tt=st.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled?this:(this._enabled=!0,this.addHooks(),this)},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});tt.addTo=function(t,e){return t.addHandler(e,this),this};var go={Events:W},ti=c.touch?"touchstart mousedown":"mousedown",ht=Kt.extend({options:{clickTolerance:3},initialize:function(t,e,i,n){S(this,n),this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(_(this._dragStartTarget,ti,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(ht._dragging===this&&this.finishDrag(!0),b(this._dragStartTarget,ti,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(this._enabled&&(this._moved=!1,!Te(this._element,"leaflet-zoom-anim"))){if(t.touches&&t.touches.length!==1){ht._dragging===this&&this.finishDrag();return}if(!(ht._dragging||t.shiftKey||t.which!==1&&t.button!==1&&!t.touches)&&(ht._dragging=this,this._preventOutline&&Se(this._element),Me(),zt(),!this._moving)){this.fire("down");var e=t.touches?t.touches[0]:t,i=Ei(this._element);this._startPoint=new m(e.clientX,e.clientY),this._startPos=dt(this._element),this._parentScale=ze(i);var n=t.type==="mousedown";_(document,n?"mousemove":"touchmove",this._onMove,this),_(document,n?"mouseup":"touchend touchcancel",this._onUp,this)}}},_onMove:function(t){if(this._enabled){if(t.touches&&t.touches.length>1){this._moved=!0;return}var e=t.touches&&t.touches.length===1?t.touches[0]:t,i=new m(e.clientX,e.clientY)._subtract(this._startPoint);!i.x&&!i.y||Math.abs(i.x)+Math.abs(i.y)s&&(r=a,s=h);s>i&&(e[r]=1,de(t,e,i,n,r),de(t,e,i,r,o))}function Xn(t,e){for(var i=[t[0]],n=1,o=0,s=t.length;ne&&(i.push(t[n]),o=n);return oe.max.x&&(i|=2),t.ye.max.y&&(i|=8),i}function Jn(t,e){var i=e.x-t.x,n=e.y-t.y;return i*i+n*n}function At(t,e,i,n){var o=e.x,s=e.y,r=i.x-o,a=i.y-s,h=r*r+a*a,u;return h>0&&(u=((t.x-o)*r+(t.y-s)*a)/h,u>1?(o=i.x,s=i.y):u>0&&(o+=r*u,s+=a*u)),r=t.x-o,a=t.y-s,n?r*r+a*a:new m(o,s)}function G(t){return!j(t[0])||typeof t[0][0]!="object"&&typeof t[0][0]<"u"}function Wi(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),G(t)}function Ui(t,e){var i,n,o,s,r,a,h,u;if(!t||t.length===0)throw new Error("latlngs not passed");G(t)||(console.warn("latlngs are not flat! Only the first ring will be used"),t=t[0]);var l=g([0,0]),f=I(t),v=f.getNorthWest().distanceTo(f.getSouthWest())*f.getNorthEast().distanceTo(f.getNorthWest());v<1700&&(l=Ie(t));var N=t.length,A=[];for(i=0;in){h=(s-n)/o,u=[a.x-h*(a.x-r.x),a.y-h*(a.y-r.y)];break}var R=e.unproject(d(u));return g([R.lat+l.lat,R.lng+l.lng])}var xo={__proto__:null,simplify:Di,pointToSegmentDistance:Hi,closestPointOnSegment:Kn,clipSegment:Fi,_getEdgeIntersection:Vt,_getBitCode:ct,_sqClosestPointOnSegment:At,isFlat:G,_flat:Wi,polylineCenter:Ui},Ae={project:function(t){return new m(t.lng,t.lat)},unproject:function(t){return new P(t.y,t.x)},bounds:new z([-180,-90],[180,90])},_e={R:6378137,R_MINOR:6356752314245179e-9,bounds:new z([-2003750834279e-5,-1549657073972e-5],[2003750834279e-5,1876465623138e-5]),project:function(t){var e=Math.PI/180,i=this.R,n=t.lat*e,o=this.R_MINOR/i,s=Math.sqrt(1-o*o),r=s*Math.sin(n),a=Math.tan(Math.PI/4-n/2)/Math.pow((1-r)/(1+r),s/2);return n=-i*Math.log(Math.max(a,1e-10)),new m(t.lng*e*i,n)},unproject:function(t){for(var e=180/Math.PI,i=this.R,n=this.R_MINOR/i,o=Math.sqrt(1-n*n),s=Math.exp(-t.y/i),r=Math.PI/2-2*Math.atan(s),a=0,h=.1,u;a<15&&Math.abs(h)>1e-7;a++)u=o*Math.sin(r),u=Math.pow((1-u)/(1+u),o/2),h=Math.PI/2-2*Math.atan(s*u)-r,r+=h;return new P(r*e,t.x*e/i)}},wo={__proto__:null,LonLat:Ae,Mercator:_e,SphericalMercator:ae},$n=T({},ot,{code:"EPSG:3395",projection:_e,transformation:function(){var t=.5/(Math.PI*_e.R);return Yt(t,.5,-t,.5)}()}),qi=T({},ot,{code:"EPSG:4326",projection:Ae,transformation:Yt(1/180,1,-1/180,.5)}),Qn=T({},rt,{projection:Ae,transformation:Yt(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,e){var i=e.lng-t.lng,n=e.lat-t.lat;return Math.sqrt(i*i+n*n)},infinite:!0});rt.Earth=ot;rt.EPSG3395=$n;rt.EPSG3857=ve;rt.EPSG900913=cn;rt.EPSG4326=qi;rt.Simple=Qn;var $=Kt.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[w(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[w(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var e=t.target;if(e.hasLayer(this)){if(this._map=e,this._zoomAnimated=e._zoomAnimated,this.getEvents){var i=this.getEvents();e.on(i,this),this.once("remove",function(){e.off(i,this)},this)}this.onAdd(e),this.fire("add"),e.fire("layeradd",{layer:this})}}});y.include({addLayer:function(t){if(!t._layerAdd)throw new Error("The provided object is not a Layer.");var e=w(t);return this._layers[e]?this:(this._layers[e]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t),this)},removeLayer:function(t){var e=w(t);return this._layers[e]?(this._loaded&&t.onRemove(this),delete this._layers[e],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return w(t)in this._layers},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},_addLayers:function(t){t=t?j(t)?t:[t]:[];for(var e=0,i=t.length;ethis._layersMaxZoom&&this.setZoom(this._layersMaxZoom),this.options.minZoom===void 0&&this._layersMinZoom&&this.getZoom()=2&&e[0]instanceof P&&e[0].equals(e[i-1])&&e.pop(),e},_setLatLngs:function(t){it.prototype._setLatLngs.call(this,t),G(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return G(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,e=this.options.weight,i=new m(e,e);if(t=new z(t.min.subtract(i),t.max.add(i)),this._parts=[],!(!this._pxBounds||!this._pxBounds.intersects(t))){if(this.options.noClip){this._parts=this._rings;return}for(var n=0,o=this._rings.length,s;nt.y!=o.y>t.y&&t.x<(o.x-n.x)*(t.y-n.y)/(o.y-n.y)+n.x&&(e=!e);return e||it.prototype._containsPoint.call(this,t,!0)}});function zo(t,e){return new Zt(t,e)}var at=nt.extend({initialize:function(t,e){S(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e=j(t)?t:t.features,i,n,o;if(e){for(i=0,n=e.length;i0&&o.push(o[0].slice()),o}function gt(t,e){return t.feature?T({},t.feature,{geometry:e}):ee(e)}function ee(t){return t.type==="Feature"||t.type==="FeatureCollection"?t:{type:"Feature",properties:{},geometry:t}}var He={toGeoJSON:function(t){return gt(this,{type:"Point",coordinates:De(this.getLatLng(),t)})}};Be.include(He);Vi.include(He);Ne.include(He);it.include({toGeoJSON:function(t){var e=!G(this._latlngs),i=te(this._latlngs,e?1:0,!1,t);return gt(this,{type:(e?"Multi":"")+"LineString",coordinates:i})}});Zt.include({toGeoJSON:function(t){var e=!G(this._latlngs),i=e&&!G(this._latlngs[0]),n=te(this._latlngs,i?2:e?1:0,!0,t);return e||(n=[n]),gt(this,{type:(i?"Multi":"")+"Polygon",coordinates:n})}});Tt.include({toMultiPoint:function(t){var e=[];return this.eachLayer(function(i){e.push(i.toGeoJSON(t).geometry.coordinates)}),gt(this,{type:"MultiPoint",coordinates:e})},toGeoJSON:function(t){var e=this.feature&&this.feature.geometry&&this.feature.geometry.type;if(e==="MultiPoint")return this.toMultiPoint(t);var i=e==="GeometryCollection",n=[];return this.eachLayer(function(o){if(o.toGeoJSON){var s=o.toGeoJSON(t);if(i)n.push(s.geometry);else{var r=ee(s);r.type==="FeatureCollection"?n.push.apply(n,r.features):n.push(r)}}}),i?gt(this,{geometries:n,type:"GeometryCollection"}):{type:"FeatureCollection",features:n}}});function to(t,e){return new at(t,e)}var ko=to,Fe=$.extend({options:{opacity:1,alt:"",interactive:!1,crossOrigin:!1,errorOverlayUrl:"",zIndex:1,className:""},initialize:function(t,e,i){this._url=t,this._bounds=I(e),S(this,i)},onAdd:function(){this._image||(this._initImage(),this.options.opacity<1&&this._updateOpacity()),this.options.interactive&&(p(this._image,"leaflet-interactive"),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){C(this._image),this.options.interactive&&this.removeInteractiveTarget(this._image)},setOpacity:function(t){return this.options.opacity=t,this._image&&this._updateOpacity(),this},setStyle:function(t){return t.opacity&&this.setOpacity(t.opacity),this},bringToFront:function(){return this._map&&yt(this._image),this},bringToBack:function(){return this._map&&xt(this._image),this},setUrl:function(t){return this._url=t,this._image&&(this._image.src=t),this},setBounds:function(t){return this._bounds=I(t),this._map&&this._reset(),this},getEvents:function(){var t={zoom:this._reset,viewreset:this._reset};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},getBounds:function(){return this._bounds},getElement:function(){return this._image},_initImage:function(){var t=this._url.tagName==="IMG",e=this._image=t?this._url:x("img");if(p(e,"leaflet-image-layer"),this._zoomAnimated&&p(e,"leaflet-zoom-animated"),this.options.className&&p(e,this.options.className),e.onselectstart=k,e.onmousemove=k,e.onload=M(this.fire,this,"load"),e.onerror=M(this._overlayOnError,this,"error"),(this.options.crossOrigin||this.options.crossOrigin==="")&&(e.crossOrigin=this.options.crossOrigin===!0?"":this.options.crossOrigin),this.options.zIndex&&this._updateZIndex(),t){this._url=e.src;return}e.src=this._url,e.alt=this.options.alt},_animateZoom:function(t){var e=this._map.getZoomScale(t.zoom),i=this._map._latLngBoundsToNewLayerBounds(this._bounds,t.zoom,t.center).min;ft(this._image,i,e)},_reset:function(){var t=this._image,e=new z(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),i=e.getSize();O(t,e.min),t.style.width=i.x+"px",t.style.height=i.y+"px"},_updateOpacity:function(){q(this._image,this.options.opacity)},_updateZIndex:function(){this._image&&this.options.zIndex!==void 0&&this.options.zIndex!==null&&(this._image.style.zIndex=this.options.zIndex)},_overlayOnError:function(){this.fire("error");var t=this.options.errorOverlayUrl;t&&this._url!==t&&(this._url=t,this._image.src=t)},getCenter:function(){return this._bounds.getCenter()}}),Eo=function(t,e,i){return new Fe(t,e,i)},eo=Fe.extend({options:{autoplay:!0,loop:!0,keepAspectRatio:!0,muted:!1,playsInline:!0},_initImage:function(){var t=this._url.tagName==="VIDEO",e=this._image=t?this._url:x("video");if(p(e,"leaflet-image-layer"),this._zoomAnimated&&p(e,"leaflet-zoom-animated"),this.options.className&&p(e,this.options.className),e.onselectstart=k,e.onmousemove=k,e.onloadeddata=M(this.fire,this,"load"),t){for(var i=e.getElementsByTagName("source"),n=[],o=0;o0?n:[e.src];return}j(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(e.style,"objectFit")&&(e.style.objectFit="fill"),e.autoplay=!!this.options.autoplay,e.loop=!!this.options.loop,e.muted=!!this.options.muted,e.playsInline=!!this.options.playsInline;for(var s=0;so?(e.height=o+"px",p(t,s)):E(t,s),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),i=this._getAnchor();O(this._container,e.add(i))},_adjustPan:function(){if(this.options.autoPan){if(this._map._panAnim&&this._map._panAnim.stop(),this._autopanning){this._autopanning=!1;return}var t=this._map,e=parseInt(St(this._container,"marginBottom"),10)||0,i=this._container.offsetHeight+e,n=this._containerWidth,o=new m(this._containerLeft,-i-this._containerBottom);o._add(dt(this._container));var s=t.layerPointToContainerPoint(o),r=d(this.options.autoPanPadding),a=d(this.options.autoPanPaddingTopLeft||r),h=d(this.options.autoPanPaddingBottomRight||r),u=t.getSize(),l=0,f=0;s.x+n+h.x>u.x&&(l=s.x+n-u.x+h.x),s.x-l-a.x<0&&(l=s.x-a.x),s.y+i+h.y>u.y&&(f=s.y+i-u.y+h.y),s.y-f-a.y<0&&(f=s.y-a.y),(l||f)&&(this.options.keepInView&&(this._autopanning=!0),t.fire("autopanstart").panBy([l,f]))}},_getAnchor:function(){return d(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}}),Io=function(t,e){return new We(t,e)};y.mergeOptions({closePopupOnClick:!0});y.include({openPopup:function(t,e,i){return this._initOverlay(We,t,e,i).openOn(this),this},closePopup:function(t){return t=arguments.length?t:this._popup,t&&t.close(),this}});$.include({bindPopup:function(t,e){return this._popup=this._initOverlay(We,this._popup,t,e),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t){return this._popup&&(this instanceof nt||(this._popup._source=this),this._popup._prepareOpen(t||this._latlng)&&this._popup.openOn(this._map)),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return this._popup?this._popup.isOpen():!1},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){if(!(!this._popup||!this._map)){_t(t);var e=t.layer||t.target;if(this._popup._source===e&&!(e instanceof mt)){this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(t.latlng);return}this._popup._source=e,this.openPopup(t.latlng)}},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){t.originalEvent.keyCode===13&&this._openPopup(t)}});var Ue=Q.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(t){Q.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(t){Q.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var t=Q.prototype.getEvents.call(this);return this.options.permanent||(t.preclick=this.close),t},_initLayout:function(){var t="leaflet-tooltip",e=t+" "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=x("div",e),this._container.setAttribute("role","tooltip"),this._container.setAttribute("id","leaflet-tooltip-"+w(this))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,i,n=this._map,o=this._container,s=n.latLngToContainerPoint(n.getCenter()),r=n.layerPointToContainerPoint(t),a=this.options.direction,h=o.offsetWidth,u=o.offsetHeight,l=d(this.options.offset),f=this._getAnchor();a==="top"?(e=h/2,i=u):a==="bottom"?(e=h/2,i=0):a==="center"?(e=h/2,i=u/2):a==="right"?(e=0,i=u/2):a==="left"?(e=h,i=u/2):r.xthis.options.maxZoom||in?this._retainParent(o,s,r,n):!1)},_retainChildren:function(t,e,i,n){for(var o=2*t;o<2*t+2;o++)for(var s=2*e;s<2*e+2;s++){var r=new m(o,s);r.z=i+1;var a=this._tileCoordsToKey(r),h=this._tiles[a];if(h&&h.active){h.retain=!0;continue}else h&&h.loaded&&(h.retain=!0);i+1this.options.maxZoom||this.options.minZoom!==void 0&&o1){this._setView(t,i);return}for(var f=o.min.y;f<=o.max.y;f++)for(var v=o.min.x;v<=o.max.x;v++){var N=new m(v,f);if(N.z=this._tileZoom,!!this._isValidTile(N)){var A=this._tiles[this._tileCoordsToKey(N)];A?A.current=!0:r.push(N)}}if(r.sort(function(R,pt){return R.distanceTo(s)-pt.distanceTo(s)}),r.length!==0){this._loading||(this._loading=!0,this.fire("loading"));var U=document.createDocumentFragment();for(v=0;vi.max.x)||!e.wrapLat&&(t.yi.max.y))return!1}if(!this.options.bounds)return!0;var n=this._tileCoordsToBounds(t);return I(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),o=n.add(i),s=e.unproject(n,t.z),r=e.unproject(o,t.z);return[s,r]},_tileCoordsToBounds:function(t){var e=this._tileCoordsToNwSe(t),i=new F(e[0],e[1]);return this.options.noWrap||(i=this._map.wrapLatLngBounds(i)),i},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var e=t.split(":"),i=new m(+e[0],+e[1]);return i.z=+e[2],i},_removeTile:function(t){var e=this._tiles[t];e&&(C(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){p(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=k,t.onmousemove=k,c.ielt9&&this.options.opacity<1&&q(t,this.options.opacity)},_addTile:function(t,e){var i=this._getTilePos(t),n=this._tileCoordsToKey(t),o=this.createTile(this._wrapCoords(t),M(this._tileReady,this,t));this._initTile(o),this.createTile.length<2&&D(M(this._tileReady,this,t,null,o)),O(o,i),this._tiles[n]={el:o,coords:t,current:!0},e.appendChild(o),this.fire("tileloadstart",{tile:o,coords:t})},_tileReady:function(t,e,i){e&&this.fire("tileerror",{error:e,tile:i,coords:t});var n=this._tileCoordsToKey(t);i=this._tiles[n],i&&(i.loaded=+new Date,this._map._fadeAnimated?(q(i.el,0),V(this._fadeFrame),this._fadeFrame=D(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(p(i.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),c.ielt9||!this._map._fadeAnimated?D(this._pruneTiles,this):setTimeout(M(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new m(this._wrapX?Ct(t.x,this._wrapX):t.x,this._wrapY?Ct(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new z(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});function No(t){return new Ht(t)}var Mt=Ht.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(t,e){this._url=t,e=S(this,e),e.detectRetina&&c.retina&&e.maxZoom>0?(e.tileSize=Math.floor(e.tileSize/2),e.zoomReverse?(e.zoomOffset--,e.minZoom=Math.min(e.maxZoom,e.minZoom+1)):(e.zoomOffset++,e.maxZoom=Math.max(e.minZoom,e.maxZoom-1)),e.minZoom=Math.max(0,e.minZoom)):e.zoomReverse?e.minZoom=Math.min(e.maxZoom,e.minZoom):e.maxZoom=Math.max(e.minZoom,e.maxZoom),typeof e.subdomains=="string"&&(e.subdomains=e.subdomains.split("")),this.on("tileunload",this._onTileRemove)},setUrl:function(t,e){return this._url===t&&e===void 0&&(e=!0),this._url=t,e||this.redraw(),this},createTile:function(t,e){var i=document.createElement("img");return _(i,"load",M(this._tileOnLoad,this,e,i)),_(i,"error",M(this._tileOnError,this,e,i)),(this.options.crossOrigin||this.options.crossOrigin==="")&&(i.crossOrigin=this.options.crossOrigin===!0?"":this.options.crossOrigin),typeof this.options.referrerPolicy=="string"&&(i.referrerPolicy=this.options.referrerPolicy),i.alt="",i.src=this.getTileUrl(t),i},getTileUrl:function(t){var e={r:c.retina?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var i=this._globalTileRange.max.y-t.y;this.options.tms&&(e.y=i),e["-y"]=i}return ai(this._url,T(e,this.options))},_tileOnLoad:function(t,e){c.ielt9?setTimeout(M(t,this,null,e),0):t(null,e)},_tileOnError:function(t,e,i){var n=this.options.errorTileUrl;n&&e.getAttribute("src")!==n&&(e.src=n),t(i,e)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,e=this.options.maxZoom,i=this.options.zoomReverse,n=this.options.zoomOffset;return i&&(t=e-t),t+n},_getSubdomain:function(t){var e=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[e]},_abortLoading:function(){var t,e;for(t in this._tiles)if(this._tiles[t].coords.z!==this._tileZoom&&(e=this._tiles[t].el,e.onload=k,e.onerror=k,!e.complete)){e.src=Nt;var i=this._tiles[t].coords;C(e),delete this._tiles[t],this.fire("tileabort",{tile:e,coords:i})}},_removeTile:function(t){var e=this._tiles[t];if(e)return e.el.setAttribute("src",Nt),Ht.prototype._removeTile.call(this,t)},_tileReady:function(t,e,i){if(!(!this._map||i&&i.getAttribute("src")===Nt))return Ht.prototype._tileReady.call(this,t,e,i)}});function oo(t,e){return new Mt(t,e)}var Gi=Mt.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,e){this._url=t;var i=T({},this.defaultWmsParams);for(var n in e)n in this.options||(i[n]=e[n]);e=S(this,e);var o=e.detectRetina&&c.retina?2:1,s=this.getTileSize();i.width=s.x*o,i.height=s.y*o,this.wmsParams=i},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var e=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[e]=this._crs.code,Mt.prototype.onAdd.call(this,t)},getTileUrl:function(t){var e=this._tileCoordsToNwSe(t),i=this._crs,n=H(i.project(e[0]),i.project(e[1])),o=n.min,s=n.max,r=(this._wmsVersion>=1.3&&this._crs===qi?[o.y,o.x,s.y,s.x]:[o.x,o.y,s.x,s.y]).join(","),a=Mt.prototype.getTileUrl.call(this,t);return a+ri(this.wmsParams,a,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+r},setParams:function(t,e){return T(this.wmsParams,t),e||this.redraw(),this}});function so(t,e){return new Gi(t,e)}Mt.WMS=Gi;oo.wms=so;var et=$.extend({options:{padding:.1},initialize:function(t){S(this,t),w(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),p(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,e){var i=this._map.getZoomScale(e,this._zoom),n=this._map.getSize().multiplyBy(.5+this.options.padding),o=this._map.project(this._center,e),s=n.multiplyBy(-i).add(o).subtract(this._map._getNewPixelOrigin(t,e));c.any3d?ft(this._container,s,i):O(this._container,s)},_reset:function(){this._update(),this._updateTransform(this._center,this._zoom);for(var t in this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,e=this._map.getSize(),i=this._map.containerPointToLayerPoint(e.multiplyBy(-t)).round();this._bounds=new z(i,i.add(e.multiplyBy(1+t*2)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),ro=et.extend({options:{tolerance:0},getEvents:function(){var t=et.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){et.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");_(t,"mousemove",this._onMouseMove,this),_(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),_(t,"mouseout",this._handleMouseOut,this),t._leaflet_disable_events=!0,this._ctx=t.getContext("2d")},_destroyContainer:function(){V(this._redrawRequest),delete this._ctx,C(this._container),b(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){var t;this._redrawBounds=null;for(var e in this._layers)t=this._layers[e],t._update();this._redraw()}},_update:function(){if(!(this._map._animatingZoom&&this._bounds)){et.prototype._update.call(this);var t=this._bounds,e=this._container,i=t.getSize(),n=c.retina?2:1;O(e,t.min),e.width=n*i.x,e.height=n*i.y,e.style.width=i.x+"px",e.style.height=i.y+"px",c.retina&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){et.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[w(t)]=t;var e=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=e),this._drawLast=e,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var e=t._order,i=e.next,n=e.prev;i?i.prev=n:this._drawLast=n,n?n.next=i:this._drawFirst=i,delete t._order,delete this._layers[w(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if(typeof t.options.dashArray=="string"){var e=t.options.dashArray.split(/[, ]+/),i=[],n,o;for(o=0;o')}}catch{}return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}(),ho={_initContainer:function(){this._container=x("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(et.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=Pt("shape");p(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=Pt("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[w(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;C(e),t.removeInteractiveTarget(e),delete this._layers[w(t)]},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(e||(e=t._stroke=Pt("stroke")),o.appendChild(e),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=j(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=n.lineCap.replace("butt","flat"),e.joinstyle=n.lineJoin):e&&(o.removeChild(e),t._stroke=null),n.fill?(i||(i=t._fill=Pt("fill")),o.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(o.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),n=Math.round(t._radiusY||i);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+i+","+n+" 0,"+65535*360)},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){yt(t._container)},_bringToBack:function(t){xt(t._container)}},Ft=c.vml?Pt:ci,ie=et.extend({_initContainer:function(){this._container=Ft("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=Ft("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){C(this._container),b(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){if(!(this._map._animatingZoom&&this._bounds)){et.prototype._update.call(this);var t=this._bounds,e=t.getSize(),i=this._container;(!this._svgSize||!this._svgSize.equals(e))&&(this._svgSize=e,i.setAttribute("width",e.x),i.setAttribute("height",e.y)),O(i,t.min),i.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update")}},_initPath:function(t){var e=t._path=Ft("path");t.options.className&&p(e,t.options.className),t.options.interactive&&p(e,"leaflet-interactive"),this._updateStyle(t),this._layers[w(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){C(t._path),t.removeInteractiveTarget(t._path),delete this._layers[w(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,i=t.options;e&&(i.stroke?(e.setAttribute("stroke",i.color),e.setAttribute("stroke-opacity",i.opacity),e.setAttribute("stroke-width",i.weight),e.setAttribute("stroke-linecap",i.lineCap),e.setAttribute("stroke-linejoin",i.lineJoin),i.dashArray?e.setAttribute("stroke-dasharray",i.dashArray):e.removeAttribute("stroke-dasharray"),i.dashOffset?e.setAttribute("stroke-dashoffset",i.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),i.fill?(e.setAttribute("fill",i.fillColor||i.color),e.setAttribute("fill-opacity",i.fillOpacity),e.setAttribute("fill-rule",i.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,fi(t._parts,e))},_updateCircle:function(t){var e=t._point,i=Math.max(Math.round(t._radius),1),n=Math.max(Math.round(t._radiusY),1)||i,o="a"+i+","+n+" 0 1,0 ",s=t._empty()?"M0 0":"M"+(e.x-i)+","+e.y+o+i*2+",0 "+o+-i*2+",0 ";this._setPath(t,s)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){yt(t._path)},_bringToBack:function(t){xt(t._path)}});c.vml&&ie.include(ho);function uo(t){return c.svg||c.vml?new ie(t):null}y.include({getRenderer:function(t){var e=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return e||(e=this._renderer=this._createRenderer()),this.hasLayer(e)||this.addLayer(e),e},_getPaneRenderer:function(t){if(t==="overlayPane"||t===void 0)return!1;var e=this._paneRenderers[t];return e===void 0&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e},_createRenderer:function(t){return this.options.preferCanvas&&ao(t)||uo(t)}});var lo=Zt.extend({initialize:function(t,e){Zt.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return t=I(t),[t.getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});function Ro(t,e){return new lo(t,e)}ie.create=Ft;ie.pointsToPath=fi;at.geometryToLayer=Gt;at.coordsToLatLng=Re;at.coordsToLatLngs=jt;at.latLngToCoords=De;at.latLngsToCoords=te;at.getFeature=gt;at.asFeature=ee;y.mergeOptions({boxZoom:!0});var ji=tt.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){_(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){b(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){C(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){this._resetStateTimeout!==0&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||t.which!==1&&t.button!==1)return!1;this._clearDeferredResetState(),this._resetState(),zt(),Me(),this._startPoint=this._map.mouseEventToContainerPoint(t),_(document,{contextmenu:_t,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=x("div","leaflet-zoom-box",this._container),p(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var e=new z(this._point,this._startPoint),i=e.getSize();O(this._box,e.min),this._box.style.width=i.x+"px",this._box.style.height=i.y+"px"},_finish:function(){this._moved&&(C(this._box),E(this._container,"leaflet-crosshair")),kt(),Ce(),b(document,{contextmenu:_t,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if(!(t.which!==1&&t.button!==1)&&(this._finish(),!!this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(M(this._resetState,this),0);var e=new F(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(e).fire("boxzoomend",{boxZoomBounds:e})}},_onKeyDown:function(t){t.keyCode===27&&(this._finish(),this._clearDeferredResetState(),this._resetState())}});y.addInitHook("addHandler","boxZoom",ji);y.mergeOptions({doubleClickZoom:!0});var Ki=tt.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom(),n=e.options.zoomDelta,o=t.originalEvent.shiftKey?i-n:i+n;e.options.doubleClickZoom==="center"?e.setZoom(o):e.setZoomAround(t.containerPoint,o)}});y.addInitHook("addHandler","doubleClickZoom",Ki);y.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var Yi=tt.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new ht(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))}p(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){E(this._map._container,"leaflet-grab"),E(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t=this._map;if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var e=I(this._map.options.maxBounds);this._offsetLimit=H(this._map.latLngToContainerPoint(e.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(e.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var e=this._lastTime=+new Date,i=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(i),this._times.push(e),this._prunePositions(e)}this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;this._positions.length>1&&t-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),e=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=e.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,e){return t-(t-e)*this._viscosity},_onPreDragLimit:function(){if(!(!this._viscosity||!this._offsetLimit)){var t=this._draggable._newPos.subtract(this._draggable._startPos),e=this._offsetLimit;t.xe.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,s=(n+e+i)%t-e-i,r=Math.abs(o+i)0?s:-s))-e;this._delta=0,this._startTime=null,r&&(t.options.scrollWheelZoom==="center"?t.setZoom(e+r):t.setZoomAround(this._lastMousePos,e+r))}});y.addInitHook("addHandler","scrollWheelZoom",Ji);var co=600;y.mergeOptions({tapHold:c.touchNative&&c.safari&&c.mobile,tapTolerance:15});var $i=tt.extend({addHooks:function(){_(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){b(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(clearTimeout(this._holdTimeout),t.touches.length===1){var e=t.touches[0];this._startPos=this._newPos=new m(e.clientX,e.clientY),this._holdTimeout=setTimeout(M(function(){this._cancel(),this._isTapValid()&&(_(document,"touchend",B),_(document,"touchend touchcancel",this._cancelClickPrevent),this._simulateEvent("contextmenu",e))},this),co),_(document,"touchend touchcancel contextmenu",this._cancel,this),_(document,"touchmove",this._onMove,this)}},_cancelClickPrevent:function t(){b(document,"touchend",B),b(document,"touchend touchcancel",t)},_cancel:function(){clearTimeout(this._holdTimeout),b(document,"touchend touchcancel contextmenu",this._cancel,this),b(document,"touchmove",this._onMove,this)},_onMove:function(t){var e=t.touches[0];this._newPos=new m(e.clientX,e.clientY)},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_simulateEvent:function(t,e){var i=new MouseEvent(t,{bubbles:!0,cancelable:!0,view:window,screenX:e.screenX,screenY:e.screenY,clientX:e.clientX,clientY:e.clientY});i._simulated=!0,e.target.dispatchEvent(i)}});y.addInitHook("addHandler","tapHold",$i);y.mergeOptions({touchZoom:c.touch,bounceAtZoomLimits:!0});var Qi=tt.extend({addHooks:function(){p(this._map._container,"leaflet-touch-zoom"),_(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){E(this._map._container,"leaflet-touch-zoom"),b(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var e=this._map;if(!(!t.touches||t.touches.length!==2||e._animatingZoom||this._zooming)){var i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=e.getSize()._divideBy(2),this._startLatLng=e.containerPointToLatLng(this._centerPoint),e.options.touchZoom!=="center"&&(this._pinchStartLatLng=e.containerPointToLatLng(i.add(n)._divideBy(2))),this._startDist=i.distanceTo(n),this._startZoom=e.getZoom(),this._moved=!1,this._zooming=!0,e._stop(),_(document,"touchmove",this._onTouchMove,this),_(document,"touchend touchcancel",this._onTouchEnd,this),B(t)}},_onTouchMove:function(t){if(!(!t.touches||t.touches.length!==2||!this._zooming)){var e=this._map,i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]),o=i.distanceTo(n)/this._startDist;if(this._zoom=e.getScaleZoom(o,this._startZoom),!e.options.bounceAtZoomLimits&&(this._zoome.getMaxZoom()&&o>1)&&(this._zoom=e._limitZoom(this._zoom)),e.options.touchZoom==="center"){if(this._center=this._startLatLng,o===1)return}else{var s=i._add(n)._divideBy(2)._subtract(this._centerPoint);if(o===1&&s.x===0&&s.y===0)return;this._center=e.unproject(e.project(this._pinchStartLatLng,this._zoom).subtract(s),this._zoom)}this._moved||(e._moveStart(!0,!1),this._moved=!0),V(this._animRequest);var r=M(e._move,e,this._center,this._zoom,{pinch:!0,round:!1},void 0);this._animRequest=D(r,this,!0),B(t)}},_onTouchEnd:function(){if(!this._moved||!this._zooming){this._zooming=!1;return}this._zooming=!1,V(this._animRequest),b(document,"touchmove",this._onTouchMove,this),b(document,"touchend touchcancel",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))}});y.addInitHook("addHandler","touchZoom",Qi);y.BoxZoom=ji;y.DoubleClickZoom=Ki;y.Drag=Yi;y.Keyboard=Xi;y.ScrollWheelZoom=Ji;y.TapHold=$i;y.TouchZoom=Qi;export{z as Bounds,c as Browser,rt as CRS,ro as Canvas,Vi as Circle,Ne as CircleMarker,st as Class,J as Control,no as DivIcon,Q as DivOverlay,po as DomEvent,mo as DomUtil,ht as Draggable,Kt as Evented,nt as FeatureGroup,at as GeoJSON,Ht as GridLayer,tt as Handler,Et as Icon,Fe as ImageOverlay,P as LatLng,F as LatLngBounds,$ as Layer,Tt as LayerGroup,xo as LineUtil,y as Map,Be as Marker,go as Mixin,mt as Path,m as Point,yo as PolyUtil,Zt as Polygon,it as Polyline,We as Popup,Wn as PosAnimation,wo as Projection,lo as Rectangle,et as Renderer,ie as SVG,io as SVGOverlay,Mt as TileLayer,Ue as Tooltip,li as Transformation,_o as Util,eo as VideoOverlay,M as bind,H as bounds,ao as canvas,Co as circle,Mo as circleMarker,Qt as control,Bo as divIcon,T as extend,Lo as featureGroup,to as geoJSON,ko as geoJson,No as gridLayer,To as icon,Eo as imageOverlay,g as latLng,I as latLngBounds,Po as layerGroup,vo as map,bo as marker,d as point,zo as polygon,So as polyline,Io as popup,Ro as rectangle,S as setOptions,w as stamp,uo as svg,Oo as svgOverlay,oo as tileLayer,Ao as tooltip,Yt as transformation,fo as version,Zo as videoOverlay}; diff --git a/resources/assets/dist/assets/marker-icon-2x-00179c4c.png b/dist/assets/marker-icon-2x-_ZA0WGCc.png similarity index 100% rename from resources/assets/dist/assets/marker-icon-2x-00179c4c.png rename to dist/assets/marker-icon-2x-_ZA0WGCc.png diff --git a/resources/assets/dist/assets/marker-icon-574c3a5c.png b/dist/assets/marker-icon-hN30_KVU.png similarity index 100% rename from resources/assets/dist/assets/marker-icon-574c3a5c.png rename to dist/assets/marker-icon-hN30_KVU.png diff --git a/resources/assets/dist/assets/marker-shadow-264f5c64.png b/dist/assets/marker-shadow-f7SaPCxT.png similarity index 100% rename from resources/assets/dist/assets/marker-shadow-264f5c64.png rename to dist/assets/marker-shadow-f7SaPCxT.png diff --git a/dist/assets/polyfills-Dkl0kecj.js b/dist/assets/polyfills-Dkl0kecj.js new file mode 100644 index 000000000..c332256d9 --- /dev/null +++ b/dist/assets/polyfills-Dkl0kecj.js @@ -0,0 +1 @@ +var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},e=function(t){return t&&t.Math===Math&&t},n=e("object"==typeof globalThis&&globalThis)||e("object"==typeof window&&window)||e("object"==typeof self&&self)||e("object"==typeof t&&t)||e("object"==typeof t&&t)||function(){return this}()||Function("return this")(),r={},o=function(t){try{return!!t()}catch(e){return!0}},i=!o((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]})),u=!o((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})),c=u,a=Function.prototype.call,f=c?a.bind(a):function(){return a.apply(a,arguments)},l={},p={}.propertyIsEnumerable,s=Object.getOwnPropertyDescriptor,y=s&&!p.call({1:2},1);l.f=y?function(t){var e=s(this,t);return!!e&&e.enumerable}:p;var b,v,d=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},g=u,h=Function.prototype,m=h.call,w=g&&h.bind.bind(m,m),O=g?w:function(t){return function(){return m.apply(t,arguments)}},S=O,j=S({}.toString),P=S("".slice),E=o,T=function(t){return P(j(t),8,-1)},M=Object,x=O("".split),F=E((function(){return!M("z").propertyIsEnumerable(0)}))?function(t){return"String"===T(t)?x(t,""):M(t)}:M,_=function(t){return null==t},C=_,I=TypeError,A=function(t){if(C(t))throw new I("Can't call method on "+t);return t},k=F,L=A,z=function(t){return k(L(t))},D="object"==typeof document&&document.all,N=void 0===D&&void 0!==D?function(t){return"function"==typeof t||t===D}:function(t){return"function"==typeof t},R=N,W=function(t){return"object"==typeof t?null!==t:R(t)},G=n,B=N,U=function(t){return B(t)?t:void 0},X=function(t,e){return arguments.length<2?U(G[t]):G[t]&&G[t][e]},$=O({}.isPrototypeOf),q=n,K="undefined"!=typeof navigator&&String(navigator.userAgent)||"",V=q.process,Y=q.Deno,H=V&&V.versions||Y&&Y.version,J=H&&H.v8;J&&(v=(b=J.split("."))[0]>0&&b[0]<4?1:+(b[0]+b[1])),!v&&K&&(!(b=K.match(/Edge\/(\d+)/))||b[1]>=74)&&(b=K.match(/Chrome\/(\d+)/))&&(v=+b[1]);var Q=v,Z=o,tt=n.String,et=!!Object.getOwnPropertySymbols&&!Z((function(){var t=Symbol("symbol detection");return!tt(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&Q&&Q<41})),nt=et&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,rt=X,ot=N,it=$,ut=Object,ct=nt?function(t){return"symbol"==typeof t}:function(t){var e=rt("Symbol");return ot(e)&&it(e.prototype,ut(t))},at=String,ft=N,lt=function(t){try{return at(t)}catch(e){return"Object"}},pt=TypeError,st=function(t){if(ft(t))return t;throw new pt(lt(t)+" is not a function")},yt=_,bt=f,vt=N,dt=W,gt=TypeError,ht={exports:{}},mt=n,wt=Object.defineProperty,Ot=function(t,e){try{wt(mt,t,{value:e,configurable:!0,writable:!0})}catch(n){mt[t]=e}return e},St=n,jt=Ot,Pt=ht.exports=St["__core-js_shared__"]||jt("__core-js_shared__",{});(Pt.versions||(Pt.versions=[])).push({version:"3.36.0",mode:"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.36.0/LICENSE",source:"https://github.com/zloirock/core-js"});var Et=ht.exports,Tt=Et,Mt=function(t,e){return Tt[t]||(Tt[t]=e||{})},xt=A,Ft=Object,_t=function(t){return Ft(xt(t))},Ct=O({}.hasOwnProperty),It=Object.hasOwn||function(t,e){return Ct(_t(t),e)},At=O,kt=0,Lt=Math.random(),zt=At(1..toString),Dt=function(t){return"Symbol("+(void 0===t?"":t)+")_"+zt(++kt+Lt,36)},Nt=Mt,Rt=It,Wt=Dt,Gt=et,Bt=nt,Ut=n.Symbol,Xt=Nt("wks"),$t=Bt?Ut.for||Ut:Ut&&Ut.withoutSetter||Wt,qt=function(t){return Rt(Xt,t)||(Xt[t]=Gt&&Rt(Ut,t)?Ut[t]:$t("Symbol."+t)),Xt[t]},Kt=f,Vt=W,Yt=ct,Ht=function(t,e){var n=t[e];return yt(n)?void 0:st(n)},Jt=function(t,e){var n,r;if("string"===e&&vt(n=t.toString)&&!dt(r=bt(n,t)))return r;if(vt(n=t.valueOf)&&!dt(r=bt(n,t)))return r;if("string"!==e&&vt(n=t.toString)&&!dt(r=bt(n,t)))return r;throw new gt("Can't convert object to primitive value")},Qt=TypeError,Zt=qt("toPrimitive"),te=function(t,e){if(!Vt(t)||Yt(t))return t;var n,r=Ht(t,Zt);if(r){if(void 0===e&&(e="default"),n=Kt(r,t,e),!Vt(n)||Yt(n))return n;throw new Qt("Can't convert object to primitive value")}return void 0===e&&(e="number"),Jt(t,e)},ee=ct,ne=function(t){var e=te(t,"string");return ee(e)?e:e+""},re=W,oe=n.document,ie=re(oe)&&re(oe.createElement),ue=function(t){return ie?oe.createElement(t):{}},ce=ue,ae=!i&&!o((function(){return 7!==Object.defineProperty(ce("div"),"a",{get:function(){return 7}}).a})),fe=i,le=f,pe=l,se=d,ye=z,be=ne,ve=It,de=ae,ge=Object.getOwnPropertyDescriptor;r.f=fe?ge:function(t,e){if(t=ye(t),e=be(e),de)try{return ge(t,e)}catch(n){}if(ve(t,e))return se(!le(pe.f,t,e),t[e])};var he={},me=i&&o((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),we=W,Oe=String,Se=TypeError,je=function(t){if(we(t))return t;throw new Se(Oe(t)+" is not an object")},Pe=i,Ee=ae,Te=me,Me=je,xe=ne,Fe=TypeError,_e=Object.defineProperty,Ce=Object.getOwnPropertyDescriptor;he.f=Pe?Te?function(t,e,n){if(Me(t),e=xe(e),Me(n),"function"==typeof t&&"prototype"===e&&"value"in n&&"writable"in n&&!n.writable){var r=Ce(t,e);r&&r.writable&&(t[e]=n.value,n={configurable:"configurable"in n?n.configurable:r.configurable,enumerable:"enumerable"in n?n.enumerable:r.enumerable,writable:!1})}return _e(t,e,n)}:_e:function(t,e,n){if(Me(t),e=xe(e),Me(n),Ee)try{return _e(t,e,n)}catch(r){}if("get"in n||"set"in n)throw new Fe("Accessors not supported");return"value"in n&&(t[e]=n.value),t};var Ie=he,Ae=d,ke=i?function(t,e,n){return Ie.f(t,e,Ae(1,n))}:function(t,e,n){return t[e]=n,t},Le={exports:{}},ze=i,De=It,Ne=Function.prototype,Re=ze&&Object.getOwnPropertyDescriptor,We=De(Ne,"name"),Ge={EXISTS:We,PROPER:We&&"something"===function(){}.name,CONFIGURABLE:We&&(!ze||ze&&Re(Ne,"name").configurable)},Be=N,Ue=Et,Xe=O(Function.toString);Be(Ue.inspectSource)||(Ue.inspectSource=function(t){return Xe(t)});var $e,qe,Ke,Ve=Ue.inspectSource,Ye=N,He=n.WeakMap,Je=Ye(He)&&/native code/.test(String(He)),Qe=Dt,Ze=Mt("keys"),tn=function(t){return Ze[t]||(Ze[t]=Qe(t))},en={},nn=Je,rn=n,on=W,un=ke,cn=It,an=Et,fn=tn,ln=en,pn=rn.TypeError,sn=rn.WeakMap;if(nn||an.state){var yn=an.state||(an.state=new sn);yn.get=yn.get,yn.has=yn.has,yn.set=yn.set,$e=function(t,e){if(yn.has(t))throw new pn("Object already initialized");return e.facade=t,yn.set(t,e),e},qe=function(t){return yn.get(t)||{}},Ke=function(t){return yn.has(t)}}else{var bn=fn("state");ln[bn]=!0,$e=function(t,e){if(cn(t,bn))throw new pn("Object already initialized");return e.facade=t,un(t,bn,e),e},qe=function(t){return cn(t,bn)?t[bn]:{}},Ke=function(t){return cn(t,bn)}}var vn={set:$e,get:qe,has:Ke,enforce:function(t){return Ke(t)?qe(t):$e(t,{})},getterFor:function(t){return function(e){var n;if(!on(e)||(n=qe(e)).type!==t)throw new pn("Incompatible receiver, "+t+" required");return n}}},dn=O,gn=o,hn=N,mn=It,wn=i,On=Ge.CONFIGURABLE,Sn=Ve,jn=vn.enforce,Pn=vn.get,En=String,Tn=Object.defineProperty,Mn=dn("".slice),xn=dn("".replace),Fn=dn([].join),_n=wn&&!gn((function(){return 8!==Tn((function(){}),"length",{value:8}).length})),Cn=String(String).split("String"),In=Le.exports=function(t,e,n){"Symbol("===Mn(En(e),0,7)&&(e="["+xn(En(e),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),n&&n.getter&&(e="get "+e),n&&n.setter&&(e="set "+e),(!mn(t,"name")||On&&t.name!==e)&&(wn?Tn(t,"name",{value:e,configurable:!0}):t.name=e),_n&&n&&mn(n,"arity")&&t.length!==n.arity&&Tn(t,"length",{value:n.arity});try{n&&mn(n,"constructor")&&n.constructor?wn&&Tn(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(o){}var r=jn(t);return mn(r,"source")||(r.source=Fn(Cn,"string"==typeof e?e:"")),t};Function.prototype.toString=In((function(){return hn(this)&&Pn(this).source||Sn(this)}),"toString");var An=Le.exports,kn=N,Ln=he,zn=An,Dn=Ot,Nn={},Rn=Math.ceil,Wn=Math.floor,Gn=Math.trunc||function(t){var e=+t;return(e>0?Wn:Rn)(e)},Bn=function(t){var e=+t;return e!=e||0===e?0:Gn(e)},Un=Bn,Xn=Math.max,$n=Math.min,qn=function(t,e){var n=Un(t);return n<0?Xn(n+e,0):$n(n,e)},Kn=Bn,Vn=Math.min,Yn=function(t){var e=Kn(t);return e>0?Vn(e,9007199254740991):0},Hn=function(t){return Yn(t.length)},Jn=z,Qn=qn,Zn=Hn,tr=function(t){return function(e,n,r){var o=Jn(e),i=Zn(o);if(0===i)return!t&&-1;var u,c=Qn(r,i);if(t&&n!=n){for(;i>c;)if((u=o[c++])!=u)return!0}else for(;i>c;c++)if((t||c in o)&&o[c]===n)return t||c||0;return!t&&-1}},er={includes:tr(!0),indexOf:tr(!1)},nr=It,rr=z,or=er.indexOf,ir=en,ur=O([].push),cr=function(t,e){var n,r=rr(t),o=0,i=[];for(n in r)!nr(ir,n)&&nr(r,n)&&ur(i,n);for(;e.length>o;)nr(r,n=e[o++])&&(~or(i,n)||ur(i,n));return i},ar=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],fr=cr,lr=ar.concat("length","prototype");Nn.f=Object.getOwnPropertyNames||function(t){return fr(t,lr)};var pr={};pr.f=Object.getOwnPropertySymbols;var sr=X,yr=Nn,br=pr,vr=je,dr=O([].concat),gr=sr("Reflect","ownKeys")||function(t){var e=yr.f(vr(t)),n=br.f;return n?dr(e,n(t)):e},hr=It,mr=gr,wr=r,Or=he,Sr=o,jr=N,Pr=/#|\.prototype\./,Er=function(t,e){var n=Mr[Tr(t)];return n===Fr||n!==xr&&(jr(e)?Sr(e):!!e)},Tr=Er.normalize=function(t){return String(t).replace(Pr,".").toLowerCase()},Mr=Er.data={},xr=Er.NATIVE="N",Fr=Er.POLYFILL="P",_r=Er,Cr=n,Ir=r.f,Ar=ke,kr=function(t,e,n,r){r||(r={});var o=r.enumerable,i=void 0!==r.name?r.name:e;if(kn(n)&&zn(n,i,r),r.global)o?t[e]=n:Dn(e,n);else{try{r.unsafe?t[e]&&(o=!0):delete t[e]}catch(u){}o?t[e]=n:Ln.f(t,e,{value:n,enumerable:!1,configurable:!r.nonConfigurable,writable:!r.nonWritable})}return t},Lr=Ot,zr=function(t,e,n){for(var r=mr(e),o=Or.f,i=wr.f,u=0;uu;)Xr.f(t,n=o[u++],r[n]);return t};var Vr,Yr=X("document","documentElement"),Hr=je,Jr=Nr,Qr=ar,Zr=en,to=Yr,eo=ue,no=tn("IE_PROTO"),ro=function(){},oo=function(t){return" @@ -90,7 +89,7 @@ You can `.version()` this JS file if you want to. Publish views with: ```bash -php artisan vendor:publish --provider=Code16\\Sharp\\SharpServiceProvider --tag=views +php artisan vendor:publish --tag=sharp-views ``` Add your `.js` file to `resources/views/vendor/sharp/partials/plugin-scripts.blade.php`: diff --git a/docs/guide/dashboard-widgets/panel.md b/docs/guide/dashboard-widgets/panel.md index c49d66352..2c8088857 100644 --- a/docs/guide/dashboard-widgets/panel.md +++ b/docs/guide/dashboard-widgets/panel.md @@ -1,53 +1,51 @@ # Panel widget -This widget is based on the HTML Form field, and is intended to display any useful information to the user. +This widget is intended to display any useful information to the user, based on a custom blade template. ## Attributes (setters) ```php $widgetsContainer->addWidget( SharpPanelWidget::make('messages') - ->setInlineTemplate('{{count}} unread messages') - ->setLink(LinkToEntityList::make('messages')->addFilter(MessageStateFilter::class, 'unread')) + ->setTemplate('my/blade/template') ``` -Note that the `setLink()` method is expecting a [LinkTo... instance](../link-to.md). +The Panel needs a blade template to be rendered: -The Panel needs a view template, that you can provide in two ways: - -### `setInlineTemplate(string $template)` -Just write the template as a string, using placeholders for data like this: `{{var}}`. - -Example: - -```php -$panel->setInlineTemplate('{{count}} unread messages') -``` - -### `setTemplatePath(string $templatePath)` - -Use this if you need more control: give the path of a full template, in its own file. - -The template will be [interpreted by Vue.js](https://vuejs.org/v2/guide/syntax.html), meaning you can add data placeholders, DOM structure but also directives, and anything that Vue will parse. For instance: - -```vue -
result is {{value}}
-
result is unknown
-``` +### `setTemplate(View|string $template)` +Pass a blade view path, or a blade content. ## Data valuation -Valuation is handled by a dedicated `$this->setPanelData(string $panelWidgetKey, array $data)` in the Dashboard class: +Valuation is handled by a dedicated `$this->setPanelData(string $panelWidgetKey, array $data)` in the Dashboard class. + +Example: ```php -function buildWidgetsData(): void +class MyDashboard extends SharpDashboard { - $count = 36; // [...]; - - $this->setPanelData( - 'messages', ['count' => $count] - ); + // ... + + protected function buildWidgets(WidgetsContainer $widgetsContainer): void + { + $widgetsContainer + ->addWidget( + SharpPanelWidget::make('my_panel') + ->setTitle('My custom panel') + ->setTemplate(view('sharp.templates.dashboard_panel')) // Must be an existing blade view + ); + } + + public function buildWidgetsData(): void + { + // ... + + $this->setPanelData('my_panel', [ + // Add here every data required by the blade template + 'author' => $author, + 'post_count' => $count, + ]); + } } ``` -Pass there the widget `key` and an array with the data required by your template. diff --git a/docs/guide/data-localization.md b/docs/guide/data-localization.md index ef71d6b0a..0a8e891b7 100644 --- a/docs/guide/data-localization.md +++ b/docs/guide/data-localization.md @@ -39,11 +39,7 @@ class BookForm extends SharpForm } ``` -Once one field at least is localized, here's what appears on the front side: - -![Form field localization](./img/form-localization-v8.png)) - -A global locale selector is added, as well as individual ones on each localized field. +Once one field at least is localized, the form will present a global locale selector, and additionaly each localized field will have his own locale selector. ## Transform the data accordingly @@ -130,7 +126,7 @@ class BookForm extends SharpForm Validation allows differentiating rules between locales: ```php -class BookValidator extends FormRequest +class BookForm extends SharpForm { // [...] diff --git a/docs/guide/entity-authorizations.md b/docs/guide/entity-authorizations.md index 77d6c2a45..d9749194f 100644 --- a/docs/guide/entity-authorizations.md +++ b/docs/guide/entity-authorizations.md @@ -4,12 +4,13 @@ You can check documentation of authorizations for [Commands](commands.md) or [En ## Available permissions -Entities have five permission keys: +Entities have six permission keys: - `entity`: to see the entity in the side-menu, and to display its Entity List or single Show Page. Without this, the entity is hidden to the user. - `view`: without this, the user can access the Entity list, but not the Show Page nor the Form. - `update`: without this, the user can't access the Form. - `create`: without this, the user can't display the create Form. +- `reorder`: without this, the user can't reorder instances in the Entity List (if a [reorder handler](reordering-instances.md) is configured). - `delete`: without this, the user can't delete an instance. ## Globally prohibited actions @@ -21,7 +22,7 @@ For this add the permission keys in the `$prohibitedActions` attribute og the En ```php class UserEntity extends SharpEntity { - // [...] + // ... protected ?string $list = UserSharpList::class; protected array $prohibitedActions = [ @@ -42,31 +43,36 @@ For user-based rules, create a `Policy` class which is just a plain class defini It must extend `Code16\Sharp\Auth\SharpEntityPolicy`: ```php -class SpaceshipPolicy extends SharpEntityPolicy +class PostPolicy extends SharpEntityPolicy { public function entity($user): bool { - return sharp_user()->hasGroup('admin'); + return $user->hasGroup('admin'); } public function view($user, $instanceId): bool { - return sharp_user()->owner_id == $user->id; + return Post::find($instanceId)?->owner_id == $user->id; } public function update($user, $instanceId): bool { - // [...] + // ... } public function delete($user, $instanceId): bool { - // [...] + // ... } public function create($user): bool { - // [...] + // ... + } + + public function reorder($user): bool + { + // ... } } ``` @@ -78,13 +84,24 @@ Only write methods which don't return true, as this is the default behaviour. The policy must be declared in the [Entity class](entity-class.md): ```php -class SpaceshipEntity extends SharpEntity +class PostEntity extends SharpEntity { - // [...] - protected ?string $policy = SpaceshipSharpPolicy::class; + // ... + protected ?string $policy = PostSharpPolicy::class; } ``` ### Policies for Dashboards -It's all the same, except Dashboards have only one method: `public function entity($user): bool`. \ No newline at end of file +The only useful method in case of a Dashboard is `function entity($user)`; apart from this, they work the same. + +```php +class SalesDashboardPolicy extends SharpEntityPolicy +{ + public function entity($user): bool + { + return $user->hasGroup('admin'); + } +} +``` + diff --git a/docs/guide/entity-class.md b/docs/guide/entity-class.md index ab1ea3485..3d567c8dc 100644 --- a/docs/guide/entity-class.md +++ b/docs/guide/entity-class.md @@ -8,6 +8,12 @@ An `entity` is simply a data structure which has a meaning in the application co The `entity class` is the place where you can declare the entity configuration: its Entity List, Form, Show Page... +## Generator + +```bash +php artisan sharp:make:entity [--label,--dashboard,--show,--form,--policy,--single] +``` + ## Write the class The class must extend `Code16\Sharp\Entities\SharpEntity`. The easiest way to declare your attached classes is to simply override a bunch of protected attributes: diff --git a/docs/guide/entity-states.md b/docs/guide/entity-states.md index 928657ef5..b61e8bbe2 100644 --- a/docs/guide/entity-states.md +++ b/docs/guide/entity-states.md @@ -21,7 +21,7 @@ The goal is to declare the available states for the entity, using `$this->addSta ```php class ProductEntityState extends EntityState { - // [...] + // ... protected function buildStates() { @@ -46,7 +46,7 @@ When the user clicks on a state to update it, the `updateState()` method is call ```php class ProductEntityState extends EntityState { - // [...] + // ... public function updateState($instanceId, $stateId): array { @@ -67,7 +67,7 @@ Once the Entity state class is defined, we have to add it in the Entity List or ```php class ProductEntityList extends SharpEntityList { - // [...] + // ... function buildListConfig(): void { @@ -78,6 +78,27 @@ class ProductEntityList extends SharpEntityList The first parameter is a key which should be the name of the attribute. +## Display the state + +The state will be displayed in the top section of the Show Page (if you have one). + +In the Entity List, it will be displayed in a new column at the end of the list, unless you have declared a specific column (in this case, you can choose where to place it): + +```php +class ProductEntityList extends SharpEntityList +{ + protected function buildList(EntityListFieldsContainer $fields): void + { + $fields + ->addField(EntityListField::make('title')->setLabel('Title')) + ->addField(EntityListStateField::make()->setLabel('State')) + ->addField(/* ... */); + } + + // ... +} +``` + ## Authorizations Entity states can declare an authorization check very much like Instance Commands: @@ -85,7 +106,7 @@ Entity states can declare an authorization check very much like Instance Command ```php class ProductEntityState extends EntityState { - // [...] + // ... public function authorizeFor($instanceId): bool { diff --git a/docs/guide/filters.md b/docs/guide/filters.md index 47b47eb3a..f9ae0d137 100644 --- a/docs/guide/filters.md +++ b/docs/guide/filters.md @@ -33,7 +33,7 @@ You can implement the optional `buildFilterConfig()` method to configure the fil ```php class ProductCategoryFilter extends EntityListSelectFilter { - // [...] + // ... public function buildFilterConfig(): void { @@ -55,7 +55,7 @@ Next, in the Entity List, we must declare the filter: ```php class ProductEntityList extends SharpEntityList { - // [...] + // ... function getFilters(): ?array { @@ -77,7 +77,7 @@ Example: ```php class ProductEntityList extends SharpEntityList { - // [...] + // ... function getListData() { @@ -87,7 +87,7 @@ class ProductEntityList extends SharpEntityList $products->where('category_id', $cat); } - // [...] + // ... } } ``` @@ -101,7 +101,7 @@ In this case, with Eloquent for instance, your might have to modify your code to ```php class ProductEntityList extends SharpEntityList { - // [...] + // ... function getListData() { @@ -111,7 +111,7 @@ class ProductEntityList extends SharpEntityList $products->whereIn('category_id', $categories); } - // [...] + // ... } } ``` @@ -122,41 +122,41 @@ Note that a filter can't be required AND multiple. You might find useful to filter list elements on a specific date range. Date range filters enable you to show only data that meets a given time period. To implement such a filter, your filter class must extend `Code16\Sharp\EntityList\Filters\EntityListDateRangeFilter`. -Then you need to adjust the query with selected range (Sharp will return an associative array of two Carbon date objects). In this case, with Eloquent for instance, you might add a condition like: +Then you need to adjust the query with selected range; in this case, with Eloquent for instance, you might add a condition like: ```php class ProductEntityList extends SharpEntityList { - // [...] + // ... - function getListData() + public function getListData(): array|Arrayable; { $products = Product::query(); if ($range = $this->queryParams->filterFor(ProductCreationDateFilter::class)) { - $products->whereBetween( - 'created_at', [$range['start'], $range['end']] - ); + $products->whereBetween('created_at', [$range->getStart(), $range->getEnd()]); } - // [...] + // ... } } ``` ### Configuration -You can define the date display format (default is `MM-DD-YYYY`, using [the Moment.js parser syntax](https://momentjs.com/docs/#/parsing/string-format/)) and choose if the week should start on monday (default is sunday) implementing those two optional methods in your filter implementation: +You can define the date display format (default is `MM-DD-YYYY`, using [Carbon isoFormat() syntax](https://carbon.nesbot.com/docs/#iso-format-available-replacements)) and choose if the week should start on monday (default is sunday). +With `configureShowPresets()`, a list of buttons is displayed allowing the user to quickly select a date range. ```php class ProductCreationDateFilter extends EntityListDateRangeFilter { - // [...] + // ... public function buildFilterConfig(): void { $this->configureDateFormat("YYYY-MM-DD") - ->configureMondayFirst(false); + ->configureMondayFirst(false) + ->configureShowPresets(); } } ``` @@ -207,50 +207,6 @@ public function buildFilterConfig(): void } ``` -## Filter template - -Sometimes you need your select filter results to be a little more than a label. For this, configure a template (similar to form fields with templates): - -```php -public function buildFilterConfig(): void -{ - $this->configureTemplate('
{{label}}
{{detail}}
'); -} -``` - -You can also, for more control, return a view here. - -The template will be [interpreted by Vue.js](https://vuejs.org/v2/guide/syntax.html), meaning you can add data placeholders, DOM structure but also directives, and anything that Vue will parse. It's the same as [Autocomplete's templates](form-fields/autocomplete.md). - -You'll need also to change your `values()` function, returning more than an `[{id}=>{value}]` array. For instance: - -```php -public function values() -{ - return ProductCategory::orderBy('label') - ->get() - ->map(function ($category) { - return [ - 'id' => $category->id, - 'label' => $category->label, - 'detail' => $category->detail_text - ]; - }); -} -``` - -Note that **the label attribute is mandatory**: it is used for the result display of the filter. - -Finally, if your filter is also searchable, you'll need to configure attributes which should be searched in the template: - -```php -public function buildFilterConfig(): void -{ - $this->configureSearchable() - ->configureSearchKeys(['label', 'detail']); -} -``` - ## Check filter In case of a filter that is just a matter on true / false ("only show admins" for example), just make your filter class extend `Code16\Sharp\EntityList\Filters\EntityListCheckFilter`. @@ -283,15 +239,42 @@ And with that Sharp will keep the filter value in session and ensure it is value In order to make this feature work, since filters are generalized, you'll need to have unique filters key (the filter class name by default). ::: +## Drop filters depending on functional data + +Sometimes you may want to hide a filter to the user depending on the actual data, or on other filters values. This can be achieved by using the `useFilter()` method in your EntityList class, typically in the `getListData()` method. + +```php +class OrderEntityList extends SharpEntityList +{ + // ... + + protected function getFilters(): ?array + { + return [ + PaymentMethodFilter::class, + OnlinePaymentProviderFilter::class, + ]; + } + + public function getListData(): array|Arrayable + { + if ($this->queryParams->filterFor(PaymentMethodFilter::class) !== 'online') { + // No need to show the OnlinePaymentProviderFilter + $this->hideFilter(OnlinePaymentProviderFilter::class); + } + + // ... + } +} +``` + ## Filters for Dashboards [Dashboards](building-dashboard.md) also can take advantage of filters; the API the same, but base classes are specific: `Code16\Sharp\Dashboard\Filters\DashboardSelectFilter`, `Code16\Sharp\Dashboard\Filters\DashboardDateRangeFilter`,`Code16\Sharp\Dashboard\DashboardCheckFilter` and so on. ## Global menu Filters -You may want to "scope" the entire data set: an example of this could be a user which can manage several organizations. Instead of adding a filter on almost every Entity List, in this case, you can define a global filter, which will appear like this (on the left menu): - -![](./img/global-filters.png) +You may want to "scope" the entire data set: an example of this could be a user which can manage several organizations. Instead of adding a filter on almost every Entity List, in this case, you can define a global filter, which will appear on top of the global menu. To achieve this, first write the filter class, like any filter, except it must extend `\Code16\Sharp\Utils\Filters\GlobalRequiredFilter` — meaning it must be a required filter. @@ -310,27 +293,33 @@ class OrganizationGlobalFilter extends GlobalRequiredFilter { return Corporation::first()->id; } + + public function authorize(): bool + { + // Optional: you can define an authorization logic here + return true; + } } ``` -And then, we declare it in Sharp's config file: +And then, we declare it: ```php -// in config/sharp.php - -return [ - // [...] - - 'global_filters' => [ - OrganizationGlobalFilter::class - ], -]; +class SharpServiceProvider extends SharpAppServiceProvider +{ + protected function configureSharp(SharpConfigBuilder $config): void + { + $config + ->addGlobalFilter(OrganizationGlobalFilter::class) + // ... + } +} ``` Finally, to get the actual value of the filter on your Entity List, Show Page or Form classes, you must use the context: ```php -currentSharpRequest()->globalFilterFor(OrganizationGlobalFilter::class) +sharp()->context()->globalFilterValue(OrganizationGlobalFilter::class) ``` The usage of Sharp Context is [detailed here](context.md). diff --git a/docs/guide/form-editor-embeds.md b/docs/guide/form-editor-embeds.md index 1a1ee4017..886d2a51a 100644 --- a/docs/guide/form-editor-embeds.md +++ b/docs/guide/form-editor-embeds.md @@ -1,20 +1,16 @@ # Write an Embed for the Editor field -Form's [Editor field](form-fields/editor.md) is a full-featured wysiwyg / markdown field which can contain images, -files, and user defined embeds; tou should first look at the Editor field documentation to understand the concept, since -here's the details on how to write an Embed class. +Form's [Editor field](form-fields/editor.md) is a full-featured wysiwyg / markdown field which can contain images, files, and user defined embeds; tou should first look at the Editor field documentation to understand the concept, since here's the details on how to write an Embed class. ## How does an Embed work? -First a quick presentation: an embed is not a structured data, meant to be stored in a database or to be represented by -a Model. I will be stored in the content of an Editor text, as a custom HTML tag, with attributes. Here's an example of -how a `RelatedPostEmbed` can be presented in the Editor field: +First a quick presentation: an embed is not a structured data, meant to be stored in a database or to be represented by a Model. I will be stored in the content of an Editor text, as a custom HTML tag, with attributes. Here's an example of how a `RelatedPostEmbed` can be presented in the Editor field: - + Here's how it can be edited, in Sharp: - + And here's how it could be stored, as a reference: @@ -28,14 +24,11 @@ The purpose of this class is to define all this: how to present, edit and store ### Required methods -The class must extend `Code16\Sharp\Form\Fields\Embeds\SharpFormEditorEmbed`; you'll have to implement at least these -two methods: +The class must extend `Code16\Sharp\Form\Fields\Embeds\SharpFormEditorEmbed`; you'll have to implement at least these two methods: ### `buildFormFields(FieldsContainer $formFields): void` -Here you can declare the form fields of the embed; the API is the same as building a standard Form ( -see [Building an Entity Form](building-form.md)). This form will appear in a modal when the use creates a new embed, or -clicks in the edit button of an existing one. +Here you can declare the form fields of the embed; the API is the same as building a standard Form (see [Building an Entity Form](building-form.md)). This form will appear in a modal when the use creates a new embed, or clicks in the edit button of an existing one. ::: tip You can choose to name one (and only one) field `slot`: it will be stored as the component content, rather than in an attribute. This could be easier to handle complex data (an Editor HTML text for instance) this way, in the public site, where you can use the standard `{{ $slot }}` attribute to display it. @@ -65,10 +58,10 @@ This is not required, but you should implement `buildEmbedConfig(): void`, where - `configureLabel(string $label): self`: to define the name of the embed (should be short) - `configureTagName(string $tagName): self`: to define the tag name (typically starting with `x-`) -- `configureFormInlineTemplate(string $template): self` and `configureFormTemplatePath(string $templatePath): self`: to - define the .vue template for displaying the embed in the Editor field in the form -- `configureShowInlineTemplate(string $template): self` and `configureShowTemplatePath(string $templatePath): self`: - same, but for the show page, only you need to have a different version for it. +- `configureTemplate(string|View $template): self`: to define the blade as inline string or as a `view('my-template')` for both show & form. If you want to specify different templates between show & form you can use following methods : + - `configureShowTemplate(string|View $template): self` + - `configureFormTemplate(string|View $template): self` +- `configureIcon(string $icon): self` define icon, place it in toolbar... Here's a complete example: @@ -78,23 +71,27 @@ public function buildEmbedConfig(): void $this ->configureLabel('Related Post') ->configureTagName('x-related-post') - ->configureFormInlineTemplate('
{{ title }}
'); + ->configureTemplate(<<<'HTML' +
+ @if($online) + + @else + + @endif + + {{ $title }} +
+ HTML); } ``` -Templates are vue-based, and work the same as for autocompletes or html form fields. We chose to write it inline here, -but we could refer to a `.vue` file, with `configureFormTemplatePath` instead. The same template will be used in Show -page, if the editor text should be displayed there, since we didn't configure anything ( -via `configureShowInlineTemplate` or `configureShowTemplatePath`). - ### Additional useful methods Two more methods can be implemented, in case you need more control of data transformation: ### `transformDataForTemplate(array $data, bool $isForm): array` -This method is called before the template rendering. This is where you have a chance to format data for the template, -which could even mean to make a DB query, in some cases. +This method is called before the template rendering. This is where you have a chance to format data for the template, which could even mean to make a DB query, in some cases. Here's an example, matching the template seen above: @@ -114,24 +111,17 @@ public function transformDataForTemplate(array $data, bool $isForm): array } ``` -The embed data is simply `post`, which is an id. So we find the related post, and return attributes needed by the -template, leveraging Sharp's transformation API (see [how to transform data](how-to-transform-data.md)) — but we could -instead directly build and return an array, as always. +The embed data is simply `post`, which is an id. So we find the related post, and return attributes needed by the template, leveraging Sharp's transformation API (see [how to transform data](how-to-transform-data.md)) — but we could instead directly build and return an array, as always. ::: warning -There is a catch on transformation: instead of simply using `->transform()`, we -used `->transformForTemplate()`: although this is not needed in all cases, this will ensure that field formatters are -not called, since this could lead to unwanted transformation of the templates. +There is a catch on transformation: instead of simply using `->transform()`, we used `->transformForTemplate()`: although this is not needed in all cases, this will ensure that field formatters are not called, since this could lead to unwanted transformation of the templates. ::: Notice the `$isForm` param, which allows differentiating data depending on the context (Form or Show). ### `transformDataForFormFields(array $data): array` -Similarly, this method is called to transform the data before displaying the form. This can be required in case your -form includes fields like autocompletes, or uploads. You can refer once again to the documentation -on [how to transform data](how-to-transform-data.md), and this time be sure to use the regular `->transform()` method, -since data needs to be formatted for fields. +Similarly, this method is called to transform the data before displaying the form. This can be required in case your form includes fields like autocompletes, or uploads. You can refer once again to the documentation on [how to transform data](how-to-transform-data.md), and this time be sure to use the regular `->transform()` method, since data needs to be formatted for fields. ## Configure the fields in Form and Show diff --git a/docs/guide/form-fields/autocomplete-list.md b/docs/guide/form-fields/autocomplete-list.md index 4283c6977..9b2dd1eab 100644 --- a/docs/guide/form-fields/autocomplete-list.md +++ b/docs/guide/form-fields/autocomplete-list.md @@ -12,7 +12,7 @@ You can in fact define the list as this: SharpFormAutocompleteListField::make('winners') ->setLabel('Winners') ->setItemField( - SharpFormAutocompleteField::make('item', 'remote') + SharpFormAutocompleteRemoteField::make('item') ->setRemoteEndpoint('/players') // [...] ) @@ -30,7 +30,7 @@ But why can't we use a classic List for this? Well, the `model->winners` relatio Configuration is the same as the classic [List](list.md), except for: -### `setItemField(SharpFormAutocompleteField $field)` +### `setItemField(SharpFormAutocompleteRemoteField $field)` You can use this function instead of `addItemField`, since items of AutocompleteList have only one field. diff --git a/docs/guide/form-fields/autocomplete.md b/docs/guide/form-fields/autocomplete.md index 32d70e45d..ed782ccc7 100644 --- a/docs/guide/form-fields/autocomplete.md +++ b/docs/guide/form-fields/autocomplete.md @@ -1,12 +1,8 @@ # Autocomplete -Class: `Code16\Sharp\Form\Fields\SharpFormAutocompleteField` +Classes: `Code16\Sharp\Form\Fields\SharpFormAutocompleteLocalField` and `Code16\Sharp\Form\Fields\SharpFormAutocompleteRemoteField` -## Configuration - -### `self::make(string $key, string $mode)` - -`$mode` must be either "local" (dictionary is defined locally with `setLocalValues()`) or "remote" (a endpoint must be provided). +## Configuration for local autocomplete ### `setLocalValues($localValues)` @@ -17,109 +13,94 @@ Set the values of the dictionary on mode=local, as an object array with at least Set the names of the attributes used in the search (mode=local). Default: `['value']` -### `setSearchMinChars(int $searchMinChars)` +### `setLocalValuesLinkedTo(string ...$fieldKeys)` -Set a minimum number of character to type before performing the search. -Default: `1` +This method is useful to link the dataset of a local autocomplete (aka: the `localValues`) to another form field. Please refer to [the documentation of the select field's `setOptionsLinkedTo()` method](select.md), which is identical. -### `setRemoteEndpoint(string $remoteEndpoint)` +## Configuration for remote autocomplete -The endpoint to hit with mode=remote. +### `setRemoteEndpoint(string $remoteEndpoint)` -If this endpoint is yours (`remote` mode here is useful to avoid loading a lot of data in the view), you can add the `sharp_auth` middleware to the API route to handle authentication and prevent this API endpoint to be called by non-sharp users: +The remote endpoint which should return JSON-formatted results. Note that you can add the `sharp_auth` middleware to this route to handle authentication and prevent this API endpoint to be called by non-sharp users: ```php -Route::get('/api/sharp/clients') - ->middleware('sharp_auth') - ->uses('MySharpApiClientController@index') -``` - -### `setRemoteSearchAttribute(string $remoteSearchAttribute)` - -The attribute name sent to the remote endpoint as search key. -Default: `'query'` - -### `setDataWrapper($dataWrapper)` - -Configure an optional dataWrapper to handle results sent in a wrapper, typically "data". -Default: empty string. - -### `setDebounceDelayInMilliseconds($debounceDelay)` - -Configure the debounce delay between each endpoint call -Default: 300. +// in a route file -### `setRemoteMethodGET()` -### `setRemoteMethodPOST()` - -Set the remote method to GET (default) or POST. +Route::get('/api/sharp/clients', [MySharpApiClientController::class, 'index']) + ->middleware('sharp_auth'); +``` -### `setItemIdAttribute(string $itemIdAttribute)` +::: tip +This endpoint MUST be part of your application. If you need to hit an external endpoint, you should create a custom endpoint in your application that will call the external endpoint (be sure to check the alternative `setRemoteCallback` method). +::: -Set the name of the id attribute for items. This is useful : -- if you pass an object as the data for the autocomplete (meaning: in the formatter's `toFront`). -- to designate the id attribute in the remote API call return. -Default: `"id"` +### `setRemoteCallback(Closure $closure, ?array $linkedFields = null)` -### `setListItemInlineTemplate(string $template)` -### `setResultItemInlineTemplate(string $template)` -Just write the template as a string, using placeholders for data like this: `{{var}}`. +To avoid the pain of writing a new dedicated endpoint, and for simple cases, you can use this method to provide a callback that will be called when the autocomplete field needs to fetch data. The callback will receive the search string as a parameter and should return an array of objects. Example: ```php -$panel->setInlineTemplate( - 'Foreground: {{color}}' -) +SharpFormAutocompleteRemoteField::make('customer') + ->setRemoteCallback(function ($search) { + return Customer::select('id', 'name', 'email') + ->where('name', 'like', "%$search%") + ->get(); + }); ``` -The template will be used, depending on the function, to display either the list item (in the result dropdown) or the result item (meaning the valuated form input). +The second argument, `$linkedFields`, allows you to provide a list of fields that will be sent with their values to the callback, so you can filter the results based on the values of other fields. -Be aware that you'll need for this to work to pass a valuated object to the Autocomplete, as data. +Example: -### `setListItemTemplatePath(string $listItemTemplatePath)` -### `setResultItemTemplatePath(string $resultItemTemplate)` +```php +SharpFormAutocompleteRemoteField::make('customer') + ->setRemoteCallback(function ($search, $linkedFields) { + return Customer::select('id', 'name', 'email') + ->when( + $linkedFields['country'], + fn ($query) => $query->where('country_id', $linkedFields['country']) + ) + ->where('name', 'like', "%$search%") + ->get(); + }, linkedFields: ['country']); +``` -Use this if you need more control: give the path of a full template, in its own file. +### `allowEmptySearch()` -The template will be [interpreted by Vue.js](https://vuejs.org/v2/guide/syntax.html), meaning you can add data placeholders, DOM structure but also directives, and anything that Vue will parse. For instance: +This method allows to call the endpoint / callback with empty search (on first click on the field for example). It's equivalent to `setSearchMinChars(0)`. -```vue -
result is {{value}}
-
result is unknown
-``` +### `setSearchMinChars(int $searchMinChars)` -The template will be use, depending on the function, to display either the list item (in the result dropdown) or the result item (meaning the valuated form input). +Set a minimum number of character to type before performing the search. +Default: `1` -Be aware that you'll need for this to work to pass a valuated object to the Autocomplete, as data. +### `setRemoteSearchAttribute(string $remoteSearchAttribute)` -### `setAdditionalTemplateData(array $data)` +The attribute name sent to the remote endpoint as search key. +Default: `'query'` -Useful to add some static (or at least not instance-dependant) data to the template. For instance: +### `setDataWrapper($dataWrapper)` -```php -SharpFormAutocompleteField::make('brand', 'remote') - ->setAdditionalTemplateData([ - 'years' => [2020, 1018, 2017] - ]); -``` +Configure an optional dataWrapper to handle results sent in a wrapper, typically "data". +Default: empty string. -In the template, the provided data can be used as normal: +### `setDebounceDelayInMilliseconds($debounceDelay)` -```vue -
{{ year }}
-``` +Configure the debounce delay between each endpoint call +Default: 300. -### `setLocalValuesLinkedTo(string ...$fieldKeys)` +### `setRemoteMethodGET()` +### `setRemoteMethodPOST()` -This method is useful to link the dataset of a local autocomplete (aka: the `localValues`) to another form field. Please refer to [the documentation of the select field's `setOptionsLinkedTo()` method](select.md), which is identical. +Set the remote method to GET (default) or POST. ### `setDynamicRemoteEndpoint(string $dynamicRemoteEndpoint, array $defaultValues)` In a remote autocomplete case, you can use this method instead of `setRemoteEndpoint` to handle a dynamic URL, based on another form field. Here's how, for example: ```php -SharpFormAutocompleteField::make('brand', 'remote') +SharpFormAutocompleteRemoteField::make('brand') ->setDynamicRemoteEndpoint('/brands/{{country}}'); ``` @@ -129,7 +110,7 @@ You may need to provide a default value for the endpoint, used when `country` (i fill the second argument: ```php -SharpFormAutocompleteField::make('model', 'remote') +SharpFormAutocompleteRemoteField::make('model') ->setDynamicRemoteEndpoint(''/models/{{country}}/{{brand}}'', [ 'country' => 'france', 'brand' => 'renault' @@ -138,6 +119,34 @@ SharpFormAutocompleteField::make('model', 'remote') The default endpoint would be `/brands/france/renault`. + +## Common configuration for both modes + +### `setItemIdAttribute(string $itemIdAttribute)` + +Set the name of the id attribute for items. This is useful : +- if you pass an object as the data for the autocomplete (meaning: in the formatter's `toFront`). +- to designate the id attribute in the remote API call return. +Default: `"id"` + +### `setListItemTemplate(View|string $template)` +### `setResultItemTemplate(View|string $template)` + +The templates for the list and result items can be set in two ways: either by passing a string, or by passing a Laravel view. + +Examples: + +```php +SharpFormAutocompleteRemoteField::make('customer') + ->setRemoteCallback(function ($search) { + return Customer::select('id', 'name', 'email') + ->where('name', 'like', "%$search%") + ->get(); + }) + ->setListItemTemplate('
{{$name}}
{{$email}}
') + ->setResultItemTemplate(view('my/customer/blade/view')); +``` + ## Formatter ### `toFront` diff --git a/docs/guide/form-fields/date.md b/docs/guide/form-fields/date.md index e79d644f2..630ab9d56 100644 --- a/docs/guide/form-fields/date.md +++ b/docs/guide/form-fields/date.md @@ -2,8 +2,6 @@ Class: `Code16\Sharp\Form\Fields\SharpFormDateField` - - ## Configuration ### `setHasDate($hasDate = true)` @@ -31,10 +29,6 @@ If set, the time-chooser will be constraint as defined. Set a time step (in minutes) for the time-chooser. Default is 30. -### `setDisplayFormat(string $displayFormat)` - -Set the date / time display format in the field, as defined by [moment.js](https://momentjs.com/docs/#/parsing/string-format/). Default is `YYYY-MM-DD`. - ## Formatter diff --git a/docs/guide/form-fields/editor.md b/docs/guide/form-fields/editor.md index c767059ae..768b447a8 100644 --- a/docs/guide/form-fields/editor.md +++ b/docs/guide/form-fields/editor.md @@ -4,9 +4,6 @@ This form field is a rich text editor, with formatting and an optional toolbar. Class: `Code16\Sharp\Form\Fields\SharpFormEditorField` - - - ## Configuration ### `setHeight(int $height, int|null $maxHeight = null)` @@ -36,8 +33,6 @@ const A = 'link'; const H1 = 'heading-1'; const H2 = 'heading-2'; const H3 = 'heading-3'; -const UPLOAD_IMAGE = 'upload-image'; -const UPLOAD = 'upload'; const TABLE = 'table'; const IFRAME = 'iframe'; const RAW_HTML = 'html'; @@ -53,9 +48,8 @@ Example: ```php SharpFormEditorField::make("description") ->setToolbar([ - SharpFormEditorField::B, SharpFormEditorField::I, - SharpFormEditorField::SEPARATOR, - SharpFormEditorField::UPLOAD_IMAGE, + SharpFormEditorField::B, + SharpFormEditorField::I, SharpFormEditorField::SEPARATOR, SharpFormEditorField::A, ]); @@ -83,55 +77,44 @@ Display a character count in the status bar. Default is false. ## Embed images and files in content -The Editor field can directly embed images or regular files. This works with `UPLOAD_IMAGE` and `UPLOAD` tools from the toolbar. To use this feature, add the tool in the toolbar and configure the environment: +The Editor field can embed images or regular files. To use this feature, you must first allow the field to handle uploads: -### `setMaxFileSize(float $sizeInMB)` +### `allowUploads(SharpFormEditorEmbedUpload $formEditorUpload)` -Max file size allowed. +This method allows the user to upload files and images in the editor: + +```php +$formFields->addField( + SharpFormEditorField::make('bio') + ->allowUploads( + SharpFormEditorEmbedUpload::make() + ->setStorageBasePath('posts/embeds') + ->setStorageDisk('local') + ) +); +``` -### `setTransformable(bool $transformable = true, bool $transformKeepOriginal = true)` +The `SharpFormEditorEmbedUpload` can be configured with the same API as the `SharpFormUploadField`: `setMaxFileSize()`, `setImageOnly()`, `setAllowedExtensions()`, ... ([see full documentation](../form-fields/upload.md)) -Allow the user to crop or rotate a visual, after the upload. +### A note on `setImageTransformable(bool $transformable = true, bool $transformKeepOriginal = true)` + +As for a regular upload field, you can allow the user to crop or rotate the visual, after the upload. With `$transformKeepOriginal` set to true, the original file will remain unchanged, meaning the transformations will be stored directly in the `` tag. For instance: ```blade +{{-- (attribute JSON formatted for readability) --}} + file='{ + "name":"image.jpg", + "path": "data/Posts/1/image.jpg", + "disk": "local", + "filters": { "crop": { "x":0, "y":0, "width":.5, "height":.5 } } } + '> ``` Then at render Sharp will take care of that for the thumbnail (see *Display embedded files in the public site* below). -### `setCropRatio(string $ratio, array $croppableFileTypes = null)` - -Set a ratio constraint to uploaded images, formatted like this: `width:height`. For instance: `16:9`, or `1:1`. - -When a crop ratio is set, any uploaded picture will be auto-cropped (centered). - -The second argument, `$croppableFileTypes`, provide a way to limit the crop configuration to a list of image files extensions. For instance, it can be useful to define a crop for jpg and png, but not for gif because it would break animation. - -### `setStorageDisk(string $storageDisk)` - -Set the destination storage disk (as configured in Laravel's `config/filesystem.php` config file). - -### `setStorageBasePath(string $storageBasePath)` - -Set the destination base storage path. You can use the `{id}` special placeholder to add the instance id in the path. - -For instance: -`$field->setStorageBasePath('/users/{id}/markdown')` - -### `setFileFilter($fileFilter)` - -Set the allowed file extensions. You can pass either an array, or a comma-separated list. - -### `setFileFilterImages()` - -Just a `setFileFilter(['.jpg','.jpeg','.gif','.png'])` shorthand. - ### Store images and files Sharp takes care of copying the file at the right place (after image transformation, if wanted), based on the configuration. @@ -139,19 +122,25 @@ Sharp takes care of copying the file at the right place (after image transformat When inserting a file, the following tag is added in field text value: ```blade +{{-- (attribute JSON formatted for readability) --}} + file='{ + "name": "doc.pdf", + "path": "data/Posts/1/doc.pdf", + "disk": "local" + '> ``` In case of an image the inserted tag is: ```blade +{{-- (attribute JSON formatted for readability) --}} + file='{ + "name":"image.jpg", + "path": "data/Posts/1/image.jpg", + "disk": "local", + '> ``` @@ -205,7 +194,7 @@ To add custom attributes to `` component you can use the followin You can extend `` and `` components by publishing them: ``` -php artisan vendor:publish --provider=Code16\\Sharp\\SharpServiceProvider --tag=views +php artisan vendor:publish --tag=sharp-views ``` Here are the parameters passed to the components: @@ -230,19 +219,13 @@ Example: ## Custom embeds -This feature allows to embed any structured data in the content. A common use case is to embed a reference to another -instance, like for example: in a blog post, you want to insert a reference to another post, that would be rendered as -a "read also" block / link in the public section. - - +This feature allows to embed any structured data in the content. A common use case is to embed a reference to another instance, like for example: in a blog post, you want to insert a reference to another post, that would be rendered as a “read also” block / link in the public section. -In practice, the Editor field can allow custom embeds, which defines how the data is stored in the field (as HTML -attributes), and how it is edited in the UI, via a full-featured form. +In practice, the Editor field can allow custom embeds, which defines how the data is stored in the field (as HTML attributes), and how it is edited in the UI, via a full-featured form. ### `allowEmbeds(array $embeds)` -This method expects an array of embeds that could be inserted in the content, declared as full class names. An embed -class must extend `Code16\Sharp\Form\Fields\Embeds\SharpFormEditorEmbed`. +This method expects an array of embeds that could be inserted in the content, declared as full class names. An embed class must extend `Code16\Sharp\Form\Fields\Embeds\SharpFormEditorEmbed`. The [documentation on how to write an Embed class is available here](../form-editor-embeds.md). diff --git a/docs/guide/form-fields/geolocation.md b/docs/guide/form-fields/geolocation.md index 8e98e029c..c21569a78 100644 --- a/docs/guide/form-fields/geolocation.md +++ b/docs/guide/form-fields/geolocation.md @@ -4,23 +4,6 @@ A map-based field to pick a precise location and return its coordinates (latitud Class: `Code16\Sharp\Form\Fields\SharpFormGeolocationField` - - - - - - - -
- -![](./geolocation-modale.png) - - - -![](./geolocation-field.png) - -
- ## Configuration ### `setDisplayUnitDegreesMinutesSeconds()` @@ -77,6 +60,9 @@ This method will set the API key for geocoding only. This method will set the API key for maps only. +### `setGoogleMapsMapId(string $mapId)` + +Google Maps API now requires a [Map ID](https://developers.google.com/maps/documentation/get-map-id) to use markers. It must be defined if maps provider is set to "gmaps". ## Formatter diff --git a/docs/guide/form-fields/html.md b/docs/guide/form-fields/html.md index 0e8c4a21d..9899fb551 100644 --- a/docs/guide/form-fields/html.md +++ b/docs/guide/form-fields/html.md @@ -6,43 +6,33 @@ This field is read-only, and is meant to display some dynamic information in the ## Configuration -### `setInlineTemplate(string $template)` +### `setTemplate(string|View $template)` -Write the template as a string, using placeholders for data like this: `{{var}}` where "var" is some key to data sent to the front - -Example: +Write the blade template as a string. Example: ```php SharpFormHtmlField::make('panel') - ->setInlineTemplate('This product is offline since {{date}}') + ->setTemplate('This product is offline since {{ $date }}') ``` -Like other fields, this example would mean that your transformed data has an object named `panel` containing a `date` attribute. Here more than elsewhere you may need to use a custom transformer, like this is this piece of code: +This example would mean that your transformed data has an object named `panel` containing a `date` attribute. Here a custom transformer example for this particular case: ```php function find($id): array - { - return $this - ->setCustomTransformer('panel', function($product) { - return [ - 'date' => $product->deprecated_at->isoFormat() - ]; - }) - ->transform( - Product::findOrFail($id) - ); - } +{ + return $this + ->setCustomTransformer('panel', fn ($value, $instance) => [ + 'date' => $instance->deprecated_at->isoFormat() + ]) + ->transform(Product::find($id)); +} ``` -### `setTemplatePath(string $templatePath)` - -Use this if you need more control: give the path of a full template, in its own file. - -The template will be [interpreted by Vue.js](https://vuejs.org/v2/guide/syntax.html), meaning you can add data placeholders, DOM structure but also directives, and anything that Vue will parse. For instance: +You can also pass a view (blade) : -```vue -
result is {{value}}
-
result is unknown
+```php +SharpFormHtmlField::make('panel') + ->setTemplate(view('sharp.form-htm-field')) ``` ## Formatter diff --git a/docs/guide/form-fields/list.md b/docs/guide/form-fields/list.md index 7b4ac45a0..b22c4d44c 100644 --- a/docs/guide/form-fields/list.md +++ b/docs/guide/form-fields/list.md @@ -12,21 +12,21 @@ Here's how we can build this: function buildFormFields() { $this->addField( - SharpFormListField::make("pieces") - ->setLabel("Art pieces") + SharpFormListField::make('pieces') + ->setLabel('Art pieces') ->setAddable() ->setRemovable() ->addItemField( - SharpFormDateField::make("acquisition_date") - ->setLabel("Acquisition") + SharpFormDateField::make('acquisition_date') + ->setLabel('Acquisition') ) ->addItemField( - SharpFormTextField::make("title") - ->setLabel("Title") + SharpFormTextField::make('title') + ->setLabel('Title') ) ->addItemField( - SharpFormSelectField::make("artist_id", [...]) - ->setLabel("Artist") + SharpFormSelectField::make('artist_id', /*[...]*/) + ->setLabel('Artist') ) ); } @@ -63,29 +63,6 @@ Default: false. This is only useful when using the `WithSharpFormEloquentUpdater` trait. You can define here the name of an numerical order attribute (typically: `order`), and it will be automatically updated in the `save()` process. -### `setCollapsedItemInlineTemplate(string $template)` -### `setCollapsedItemTemplatePath(string $template)` - -The UI for a `sortable` List is to add a "reorder" button, which swaps the list in a readonly state. But for big List items it can be useful to define a special template for this reordering state. -For inline template, just write the template as a string, using placeholders for data like this: `{{var}}`. - - -Example: - -```php -$list->setCollapsedItemInlineTemplate( - "Foreground: {{color}}" -) -``` - -For template path, give the relative path of a template file (stating in the views Laravel folder). -The template will be [interpreted by Vue.js](https://vuejs.org/v2/guide/syntax.html), meaning you can add data placeholders, DOM structure but also directives, and anything that Vue will parse. For instance: - -```vue -
result is {{value}}
-
result is unknown
-``` - ### `setRemovable(bool $removable = true)` Defines if items can be removed by the user. @@ -110,18 +87,26 @@ Default: 10 ## Layout -The List item layout must be defined like the form itself, in the `buildFormLayout()` function. The item layout is managed as a Form column, with a `FormLayoutColumn` object. To link the column and the item, use the classic `withSingleField()` function with a second argument, a Closure accepting a `FormLayoutColumn`. +The List item layout must be defined like the form itself, in the `buildFormLayout()` function. The item layout is managed as a Form column, with a `FormLayoutColumn` object. To link the column and the item, use the classic `withField()` function with a second argument, a Closure accepting a `FormLayoutColumn`. Here's an example for the Museum List defined above: ```php -$this->addColumn(6, function(FormLayoutColumn $column) { - $column->withSingleField("pieces", function(FormLayoutColumn $listItem) { - $listItem->withSingleField("acquisition_date") - ->withSingleField("title") - ->withSingleField("artist_id"); - }); - }); +class MyForm extends SharpForm +{ + // [...] + + function buildFormLayout(FormLayout $formLayout) + { + $this->addColumn(6, function (FormLayoutColumn $column) { + $column->withSingleField('pieces', function (FormLayoutColumn $listItem) { + $listItem->withField('acquisition_date') + ->withField('title') + ->withField('artist_id'); + }); + }); + } +} ``` ## Formatter diff --git a/docs/guide/form-fields/select.md b/docs/guide/form-fields/select.md index 918a3f91f..cbba056ca 100644 --- a/docs/guide/form-fields/select.md +++ b/docs/guide/form-fields/select.md @@ -2,8 +2,6 @@ Class: `Code16\Sharp\Form\Fields\SharpFormSelectField` -![Example](./select-dropdown-v8.png) - ## Configuration ### `self::make(string $key, array $options)` @@ -42,9 +40,6 @@ SharpFormSelectField::make( Allow multi-selection (default: false) -![Example](./select-checkboxes-v8.png) - - ### `setClearable(bool $clearable = true)` Allow null value in non-multiple selection (default: false) @@ -56,14 +51,10 @@ Display as a list (the default value): - radio if multiple=false - checkboxes if multiple=true -![Example](./select-radios-v8.png) - ### `setDisplayAsDropdown()` Display as a classic dropdown. -![Example](./select-dropdown-v8.png) - ### `setMaxSelected(int $maxSelected)` Set a maximum item selection (multiple only). diff --git a/docs/guide/form-fields/text.md b/docs/guide/form-fields/text.md index a76625dff..d8ede24e8 100644 --- a/docs/guide/form-fields/text.md +++ b/docs/guide/form-fields/text.md @@ -10,7 +10,19 @@ Used to set the type to regular `text` (the default). ### `setInputTypePassword()` -Used to set the type to `password`. +Used to set the type to `password`. An "eye button" is displayed to show / hide the input value. + +### `setInputTypeEmail()` + +Used to set the type to `email`. + +### `setInputTypeTel()` + +Used to set the type to `tel`. + +### `setInputTypeUrl()` + +Used to set the type to `url`. ### `setMaxLength(int $maxLength)` @@ -24,4 +36,4 @@ Unset the max character count. ## Formatter - `toFront`: expect a string. -- `fromFront`: returns a string. \ No newline at end of file +- `fromFront`: returns a string. diff --git a/docs/guide/form-fields/upload.md b/docs/guide/form-fields/upload.md index 331264c62..ddfb7c13a 100644 --- a/docs/guide/form-fields/upload.md +++ b/docs/guide/form-fields/upload.md @@ -2,76 +2,78 @@ Class: `Code16\Sharp\Form\Fields\SharpFormUploadField` - - ## General configuration -First, in order to get the upload part working, you have to define a "tmp" path where files will be stored until they are moved to the final folder. Here's the default: +You can define the temp disk and directory where files will be stored until they are moved to the final folder, as well as a global max file size (which can be overriden by each field). Here are the default values: ```php -// in config/sharp.php - -'uploads' => [ - 'tmp_disk' => env('SHARP_UPLOADS_TMP_DISK', 'local'), - 'tmp_dir' => env('SHARP_UPLOADS_TMP_DIR', 'tmp'), -] +class SharpServiceProvider extends SharpAppServiceProvider +{ + protected function configureSharp(SharpConfigBuilder $config): void + { + $config + ->configureUploads( + uploadDisk: 'local', + uploadDirectory: 'tmp', + globalMaxFileSize: 5, + keepOriginalImageOnTransform: true + ) + // [...] + } +} ``` -This `tmp_dir` path is relative to the `uploads.tmp_disk` filesystem defined. +The fourth argument, `keepOriginalImageOnTransform`, is a boolean that defines if the original image should be kept when a transformation is applied on it (meaning that transformations are stored and applied on-the-fly: this is transparent when using Sharp’s [built-in way to handle uploads](../sharp-uploads.md). It can be overriden by each field (see below). ## Field Configuration -### `setMaxFileSize(float $sizeInMB)` - -Max file size allowed. +### `setStorageDisk(string $storageDisk)` -### `setTransformable(bool $transformable = true, ?bool $transformKeepOriginal = null)` +Set the destination storage disk (as configured in Laravel’s `config/filesystem.php` config file). -Allow the user to crop or rotate the visual, after the upload. -The argument `$transformKeepOriginal` overrides the following config which is `true` by default. -```php -// config/sharp.php +### `setStorageBasePath(string|Closure $storageBasePath)` -'uploads' => [ - 'transform_keep_original_image' => true, -] -``` -With `$transformKeepOriginal` set to true, the original file will remain unchanged, meaning the transformations will be stored apart: using the [built-in way to handle uploads](../sharp-uploads.md), it's transparent. Otherwise, see the Formatter part below. +Set the destination base storage path. -### `setCropRatio(string $ratio, array $croppableFileTypes = null)` +::: warning +If you want to use a `{id}` special placeholder to add the instance id in the path (for instance: `$field->setStorageBasePath('/users/{id}/avatar')`), you must be the Eloquent case, leveraging `Code16\Sharp\Form\Eloquent\WithSharpFormEloquentUpdater` (see [Eloquent form](../building-form#eloquent-case-where-the-magic-happens)) +::: -Set a ratio constraint to uploaded images, formatted like this: `width:height`. For instance: `16:9`, or `1:1`. +### `setAllowedExtensions(string|array $allowedExtensions)` -When a crop ratio is set, any uploaded picture will be auto-cropped (centered). +Define the allowed file extensions. -The second argument, `$croppableFileTypes`, provide a way to limit the crop configuration to a list of image files extensions. For instance, it can be useful to define a crop for jpg and png, but not for gif because it will destroy animation. +For instance: `$field->setAllowedExtensions(['pdf', 'zip'])` -### `setStorageDisk(string $storageDisk)` +## Field Configuration in image case -Set the destination storage disk (as configured in Laravel's `config/filesystem.php` config file). +### `setImageOnly(bool $imageOnly = true)` -### `setStorageBasePath(string|Closure $storageBasePath)` +When an upload field is configured to accept only images: +- the field will be forced to accept only images (allowed extensions set to "jpg, png, gif, svg, webp, bmp" by default), +- the uploaded file will be validated as an image (see below for more options), +- a thumbnail will be generated for the uploaded image. -Set the destination base storage path. +### `setImageTransformable(bool $transformable = true, ?bool $transformKeepOriginal = null)` -You can use the `{id}` special placeholder to add the instance id in the path, which can be useful sometimes; **be sure to read the “Delayed creation” section, at the end of this page if you do.** +Allow the user to crop or rotate the visual, after the upload. +The argument `$transformKeepOriginal` overrides the global config (which is `true` by default). -For instance: -`$field->setStorageBasePath('/users/{id}/avatar')` +With `$transformKeepOriginal` set to true, the original file will remain unchanged, meaning the transformations will be stored apart: using the [built-in way to handle uploads](../sharp-uploads.md), it's transparent. Otherwise, see the Formatter part below. -### `setFileFilter($fileFilter)` +### `setImageCropRatio(string $ratio, array $croppableFileTypes = null)` -Set the allowed file extensions. You can pass either an array or a comma-separated list. +Set a ratio constraint to uploaded images, formatted like this: `width:height`. For instance: `16:9`, or `1:1`. -### `setFileFilterImages()` +When a crop ratio is set, any uploaded picture will be auto-cropped (centered). -Just a `setFileFilter(['.jpg','.jpeg','.gif','.png'])` shorthand. +The second argument, `$croppableFileTypes`, provide a way to limit the crop configuration to a list of image files extensions. For instance, it can be useful to define a crop for jpg and png, but not for gif because it will destroy animation. -### `setCompactThumbnail(bool $compactThumbnail = true)` +### `setImageCompactThumbnail(bool $compactThumbnail = true)` If true and if the upload has a thumbnail, it is limited to 60px high (to compact in a list item, for instance). -### `shouldOptimizeImage(bool $shouldOptimizeImage = true)` +### `setImageOptimizeImage(bool $imageOptimize = true)` If true, some optimization will be applied on the uploaded images (in order to reduce files weight). It relies on spatie's [image-optimizer](https://github.com/spatie/image-optimizer). Please note that you will need some of these packages on your system: - [JpegOptim](http://freecode.com/projects/jpegoptim) @@ -83,6 +85,20 @@ If true, some optimization will be applied on the uploaded images (in order to r Check their documentation for [more instructions](https://github.com/spatie/image-optimizer#optimization-tools) on how to install. +## Validation + +Notice that `setAllowedExtensions()` and `setImageOnly()` already are basic validation rules that Sharp will use both on the front-end and in the back-end. + +But there are a few more rules available: + +### `setMaxFileSize(int $maxFileSizeInMB)` and `setMinFileSize(int $minFileSizeInMB)` + +Set the maximum and minimum (even if this is a rare use-case) file size in MB. + +### `setImageDimensionConstraints(Illuminate\Validation\Rules\Dimensions $dimensions)` + +Set image dimension constraints, leveraging the dedicated Laravel validation rule (see [the documentation](https://laravel.com/docs/validation#rule-dimensions)). + ## Formatter First, let's mention that Sharp provides an Eloquent built-in solution for uploads with the `SharpUploadModel` class, as [detailed here](../sharp-uploads.md), which greatly simplify the work (to be clear: it will handle everything from storage to image transformations). @@ -126,15 +142,13 @@ function find($id): array 'name' => basename($product->picture->name), 'path' => $product->picture->name, 'disk' => 's3', - 'thumbnail' => [...], + 'thumbnail' => /* thumbnail URL */, 'size' => $product->picture->size, 'filters' => $product->picture->filters ]; } ) - ->transform( - Product::findOrFail($id) - ); + ->transform(Product::find($id)); } ``` @@ -146,14 +160,14 @@ There are four cases: #### newly uploaded file -The formatter will store the file on the configured location, and return an array like this: +The formatter must return an array like this: ```php [ - 'file_name' => '', // Relative file path + 'file_name' => '', // Target file path (relative) 'size' => x, // File size in bytes 'mime_type' => '', // File mime type - 'disk' => '', // Storage disk name + 'disk' => '', // Target storage disk name 'filters' => [ // Transformations applied to the (image) file 'crop' => [ 'x' => x, @@ -183,9 +197,9 @@ function update($id, array $data) } ``` -#### existing transformed file +#### existing transformed image -In this case, the file was already stored in a previous post, and was then transformed (cropped, or rotated). The formatter will simply return and array with one `filters` key: +In this case, the image was already handled in a previous post, and was then transformed (cropped, or rotated). The formatter will simply return and array with one `filters` key: ```php [ @@ -213,54 +227,23 @@ The formatter will return `null` (note that the file **will not** be deleted fro The formatter will return **an empty array**. -## Delayed creation - -As described in the `setStorageBasePath()` section of this document, you can configure the file storage path with an `{id}` placeholder, meaning that `/users/{id}/avatar` will be converted (by the field formatter) in `/users/1/avatar` for instance. - -But in order to do this in a creation case, when there is no id yet, Sharp will need your instance to be stored first. To do so, the `update()` method of your Form will be called twice: - -- one first time without any upload which needs the `{id}`, -- and one second time only with these fields, using the new id returned by `update()`. +## Configure files jobs -This is usually OK, but in some cases this could lead to unexpected errors. Consider this code where we handle `Products` with a `picture` configured with an `{id}` placeholder in its path: +Sharp handle files in jobs (copy / move and transformation). You can configure how these job should be dispatched: ```php -class ProductForm extends SharpForm +class SharpServiceProvider extends SharpAppServiceProvider { - // [...] - - public function buildFormFields(FieldsContainer $formFields): void + protected function configureSharp(SharpConfigBuilder $config): void { - // [...] - - $formFields - ->addField( - SharpFormUploadField::make('picture') - ->setLabel('Picture') - ->setFileFilterImages() - ->setStorageDisk('local') - ->setStorageBasePath('data/products/{id}'), - ); - } - - function update($id, array $data) - { - $instance = $id ? Product::findOrFail($id) : new Product(); - - $this->save($instance, $data); - - if(($data['price']) >= 1000) { - $this->notify('Yay, this is an expensive product...'); - } - - return $instance->id; + $config + ->configureUploads( + fileHandingQueue: 'default', + fileHandlingQueueConnection: 'sync', + ) + // [...] } } ``` -Here we're using the `notify()` feature to display a message back to the user, and it's working, excepted in one case: on a Product creation with a picture, Sharp will delay the upload handling and call this method twice, because the picture field needs the product {id} it the storage base path. On the second pass (for the upload), This code will crash on the `if(($data['price']) ...)` condition, because `$data['price']` is not set (only the `picture` upload field would be set on this second pass). This has to be addressed, and a working solution (among others) could be to replace this line with: -```php -if(($data['price'] ?? 0) >= 1000) { - [...] -} -``` +Queue and connection should be [properly configured](https://laravel.com/docs/queues). \ No newline at end of file diff --git a/docs/guide/global-search.md b/docs/guide/global-search.md index 889a29696..9b354e7e1 100644 --- a/docs/guide/global-search.md +++ b/docs/guide/global-search.md @@ -2,20 +2,20 @@ This feature allows the user to globally search across a selected set of entities of your application. -![The global search in action](./img/global-search.png) +![The global search in action](./img/v9/global-search.png) ## Configuration ```php -// In config/sharp.php -return [ - // ... - 'search' => [ - 'enabled' => true, - 'placeholder' => 'Search for anything...', - 'engine' => \App\Sharp\MySearchEngine::class, - ], -]; +class SharpServiceProvider extends SharpAppServiceProvider +{ + protected function configureSharp(SharpConfigBuilder $config): void + { + $config + ->enableGlobalSearch(\App\Sharp\MySearchEngine::class, 'Search for anything...') + // [...] + } +} ``` ## Write the class @@ -28,10 +28,7 @@ class MySearchEngine extends SharpSearchEngine public function searchFor(array $terms): void { $resultSet = $this - ->addResultSet( - label: 'Posts', - icon: 'fa-file-o', - ); + ->addResultSet('Posts'); $builder = Post::query(); @@ -74,10 +71,7 @@ class MySearchEngine extends SharpSearchEngine public function searchFor(array $terms): void { $resultSet = $this - ->addResultSet( - label: 'Posts', - icon: 'fa-file-o', - ); + ->addResultSet('Posts'); if (! $resultSet->validateSearch( ['string', 'min:3'], @@ -97,4 +91,4 @@ As you can see in this example, the `validateSearch()` method accepts an array o ## Use the search field -The search field is available in the top bar of Sharp, and can be called with these pretty standard keyboard shortcuts: `Ctrl+K`, `Cmd+K` (Mac) or simply `/`. \ No newline at end of file +The search field is available in the top bar of Sharp, and can be called with these pretty standard keyboard shortcuts: `Ctrl+K`, `Cmd+K` (Mac) or simply `/`. diff --git a/docs/guide/how-to-transform-data.md b/docs/guide/how-to-transform-data.md index 3a994f6cd..34f31d5e9 100644 --- a/docs/guide/how-to-transform-data.md +++ b/docs/guide/how-to-transform-data.md @@ -11,7 +11,7 @@ Note that transformers need your data models to allow direct access to their att In an Entity List, a Show Page or a Form, you can use the `transform()` function which will: - apply all custom transformers on your list (see below), -- transform the given model(s) into an array, handling pagination if a `LengthAwarePaginator` is provided. +- transform the given model(s) into an array, handling pagination if a `Paginator` is provided. Eloquent example in an Entity List: @@ -105,7 +105,7 @@ class ProductEntityList extends SharpEntityList function buildList(EntityListFieldsContainer $fields): void { - $fieldsContainer->addField( + $fields->addField( EntityListDataContainer::make('author:name') ->setLabel('Author') ); diff --git a/docs/guide/img/breadcrumb-v8.png b/docs/guide/img/breadcrumb-v8.png deleted file mode 100644 index e05ebf6a3..000000000 Binary files a/docs/guide/img/breadcrumb-v8.png and /dev/null differ diff --git a/docs/guide/img/embed-editor.png b/docs/guide/img/embed-editor.png deleted file mode 100644 index b3e44616f..000000000 Binary files a/docs/guide/img/embed-editor.png and /dev/null differ diff --git a/docs/guide/img/embed-form.png b/docs/guide/img/embed-form.png deleted file mode 100644 index 8c6fc3f18..000000000 Binary files a/docs/guide/img/embed-form.png and /dev/null differ diff --git a/docs/guide/img/form-localization-v8.png b/docs/guide/img/form-localization-v8.png deleted file mode 100644 index c5b169681..000000000 Binary files a/docs/guide/img/form-localization-v8.png and /dev/null differ diff --git a/docs/guide/img/global-filters.png b/docs/guide/img/global-filters.png deleted file mode 100644 index dada7ebee..000000000 Binary files a/docs/guide/img/global-filters.png and /dev/null differ diff --git a/docs/guide/img/global-search.png b/docs/guide/img/global-search.png deleted file mode 100644 index e37bf8a7e..000000000 Binary files a/docs/guide/img/global-search.png and /dev/null differ diff --git a/docs/guide/img/menu-v8.png b/docs/guide/img/menu-v8.png deleted file mode 100644 index e5690e48a..000000000 Binary files a/docs/guide/img/menu-v8.png and /dev/null differ diff --git a/docs/guide/img/page-alert-v8.png b/docs/guide/img/page-alert-v8.png deleted file mode 100644 index 2a07bcb5e..000000000 Binary files a/docs/guide/img/page-alert-v8.png and /dev/null differ diff --git a/docs/guide/img/v9/embed-editor.png b/docs/guide/img/v9/embed-editor.png new file mode 100644 index 000000000..d95197eb4 Binary files /dev/null and b/docs/guide/img/v9/embed-editor.png differ diff --git a/docs/guide/img/v9/embed-form.png b/docs/guide/img/v9/embed-form.png new file mode 100644 index 000000000..b0c619f28 Binary files /dev/null and b/docs/guide/img/v9/embed-form.png differ diff --git a/docs/guide/img/v9/global-search.png b/docs/guide/img/v9/global-search.png new file mode 100644 index 000000000..e2c67c324 Binary files /dev/null and b/docs/guide/img/v9/global-search.png differ diff --git a/docs/guide/img/v9/page-alert.png b/docs/guide/img/v9/page-alert.png new file mode 100644 index 000000000..c948f4cab Binary files /dev/null and b/docs/guide/img/v9/page-alert.png differ diff --git a/docs/guide/img/v9/wizard-command.gif b/docs/guide/img/v9/wizard-command.gif new file mode 100644 index 000000000..0939fbfbd Binary files /dev/null and b/docs/guide/img/v9/wizard-command.gif differ diff --git a/docs/guide/img/wizard-command.gif b/docs/guide/img/wizard-command.gif deleted file mode 100644 index b664b7111..000000000 Binary files a/docs/guide/img/wizard-command.gif and /dev/null differ diff --git a/docs/guide/index.md b/docs/guide/index.md index 6e9cece95..eebaead21 100644 --- a/docs/guide/index.md +++ b/docs/guide/index.md @@ -1,13 +1,13 @@ -# Getting started +# Getting started and installation ## Terminology, general concept In Sharp, we handle `entities`; an `entity` is simply a data structure which has a meaning in the application context. For instance, a `Person`, a `Post` or an `Order`. In the Eloquent world, for which Sharp is optimized, it's typically a Model — but it's not necessarily a 1-1 relationship, a Sharp `entity` can represent a portion of a Model, or several Models. -Each instance of an `entity` is called... an `instance`. +An instance of an `entity` is simply called an `instance`. Each `entity` in Sharp can be displayed: -- in an `Entity List`, which is the list of all the `instances` for this `entity`: with some configuration and code, the user can sort the data, add filters, pagination, and perform searches. From there we also gain access to applicative `commands` applied either to an `instance` or to the whole (filtered) list, and to a simple `state` changer (the published state of an Article, for instance). All of that is described below. +- in an `Entity List`, which is the list of all the `instances` for this `entity`: with some configuration and code, the user can sort the data, add filters, pagination, and perform searches. From there we also gain access to applicative `commands` applied either to any particular `instance` or to the whole (filtered) list, and to a simple `state` changer (the published state of an Article, for instance). All of that is described below. - In a `Show Page`, optionally, to display an `instance` details. - And in a `Form`, either to update or create a new `instance`. @@ -35,45 +35,39 @@ Finally, **orders**, must be listed, detailed and updatable, and we also need to
-Maybe we can add an `Entity Cmmand` to export orders in a CSV file in the `Entity List`, and an `Instance command` on the order `Show Page` to declare the order as shipped. +Maybe we can add an `Entity Command` to export orders in a CSV file in the `Entity List`, and an `Instance command` on the order `Show Page` to declare the order as shipped. This is a simple example to illustrate the main concepts of Sharp: we'll see in this guide how to build such structures but also more complexe ones, and how to manage states, commands, dashboards, authorizations, errors, validation... in the process. ## Installation -Sharp 8 needs Laravel 10+ and PHP 8.2+. +Sharp 9 needs Laravel 11+ and PHP 8.2+. - Add the package with composer: `composer require code16/sharp` -- And then publish assets: `php artisan vendor:publish --provider="Code16\Sharp\SharpServiceProvider" --tag=assets` - -A tip on this last command: you'll need fresh assets each time Sharp is updated, so a good practice is to add the command in the `scripts.post-autoload-dump` section of your `composer.json` file: - -```json -"scripts": { - [...] - "post-autoload-dump": [ - "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", - "@php artisan vendor:publish --provider=Code16\\Sharp\\SharpServiceProvider --tag=assets --force", - "@php artisan package:discover" - ] -}, -``` - -## Configuration +- Then run: `php artisan sharp:install` -Sharp needs a `config/sharp.php` config file, mainly to declare `entities`. +This last script will publish required assets, create a `SharpServiceProvider` in the `App\Providers` namespace, and a `SharpMenu` class in the `App\Sharp` namespace. -You can initialize this file with `php artisan vendor:publish --provider="Code16\Sharp\SharpServiceProvider" --tag=config` +## Configuration via a new Service Provider -Here's an example: +All Sharp behavior is configured in the `App\Providers\SharpServiceProvider` class created by the `sharp:install` command; you can declare your entities in the `configureSharp()` method: ```php -return [ - 'entities' => [ - 'products' => \App\Sharp\Entities\ProductEntity::class, - // Other entities... - ] -]; +use Code16\Sharp\SharpAppServiceProvider; +use Code16\Sharp\Config\SharpConfigBuilder; +use App\Sharp\SharpMenu; + +class SharpServiceProvider extends SharpAppServiceProvider +{ + protected function configureSharp(SharpConfigBuilder $config): void + { + $config + ->setName('My new project') + ->setSharpMenu(SharpMenu::class) + ->addEntity('product', ProductEntity::class); + // ... + } +} ``` This `ProductEntity` class could be written like this: @@ -101,19 +95,22 @@ Almost each one is optional, in fact: we could skip the `show` and go straight t We'll get into all those classes in this guide. The important thing to notice is that Sharp provides base classes to handle all the wiring (and more), but as we'll see, the applicative code is totally up to you. ::: tip -Instead of directly declaring an array of entities in the config file, you can type the full path of a class that implements the `Code16\Sharp\Utils\Entities\SharpEntityResolver` interface, and define here a `public function entityClassName(string $entityKey): ?string` method. +Use the artisan command `php artisan sharp:make:entity` to generate a new entity with all the required classes, or the global one (prompt based) `php artisan sharp:generator`. ::: ## Access to Sharp -Once installed, Sharp is accessible via the url `/sharp`, by default. If you wish to change this default value, you'll need to define the `custom_url_segment` config value, in `config/sharp.php`: +Once installed, Sharp is accessible via the url `/sharp`, by default. If you wish to change this default value, you'll need to configure a custom segment path: ```php -// config/sharp.php - -return [ - 'name' => 'My Sharp app', - 'custom_url_segment' => 'admin', - // ... -] +class SharpServiceProvider extends SharpAppServiceProvider +{ + protected function configureSharp(SharpConfigBuilder $config): void + { + $config + ->setCustomUrlSegment('admin') + ->addEntity('product', ProductEntity::class) + // ... + } +} ``` diff --git a/docs/guide/link-to.md b/docs/guide/link-to.md index bfd75a82d..c92b07c1d 100644 --- a/docs/guide/link-to.md +++ b/docs/guide/link-to.md @@ -10,10 +10,11 @@ Depending on your target, you'll want to use either: - `Code16\Sharp\Utils\Links\LinkToShowPage` - `Code16\Sharp\Utils\Links\LinkToSingleShowPage` - `Code16\Sharp\Utils\Links\LinkToSingleForm` +- `Code16\Sharp\Utils\Links\LinkToDashboard` To create an instance, use the static `make` method, which may take one or two arguments: -- For `LinkToEntityList`, `LinkToSingleShowPage` and `LinkToSingleForm`: `::make($entityKey)` +- For `LinkToEntityList`, `LinkToSingleShowPage`, `LinkToSingleForm` and `LinkToDashboard`: `::make($entityKey)` - For `LinkToForm` and `LinkToShowPage`: `::make($entityKey, $instanceId)` ## Link use case diff --git a/docs/guide/page-alerts.md b/docs/guide/page-alerts.md index cd2cb9abb..134a89394 100644 --- a/docs/guide/page-alerts.md +++ b/docs/guide/page-alerts.md @@ -1,132 +1,56 @@ # Add global page alert -This feature makes it possible to add a message (with an alert or not) at the top of an Entity List, a Form (including a Command Form), a Show Page or a Dashboard. +This feature makes it possible to add a message (with an alert or not) at the top of an Entity List, a Form (including a Command Form), a Show Page, a Dashboard or an Embed. -![](./img/page-alert-v8.png) +![](./img/v9/page-alert.png) A global page alert can be great to provide feedback to the user, to remind him of a particular state, to warn him of potential consequences of a Command... ## Declaration -Use the `configurePageAlert()` method, in the `buildXXXConfig()` method of your Entity List, Show Page, Command, Form or Dashboard: +Create a `buildPageAlert()` method: ```php -class PostShow extends SharpShow +class MyShow extends SharpShow { // [...] - function buildShowConfig(): void - { - $this - ->configurePageAlert( - 'Warning: this post is still in draft.', - ); + protected function buildPageAlert(PageAlert $pageAlert): void + { + $pageAlert + ->setLevelInfo() + ->setMessage('This post is planned for publication'); } } ``` -This method accepts one to 4 arguments: `configurePageAlert(string $template, string $alertLevel = null, string $fieldKey = null, bool $declareTemplateAsPath = false)` - -- `$template` is the only one required: you must provide here a Vue.js template, just like for Autocompletes fields or Dashboard panels -- `$alertLevel` formats the message as an alert, with the following possibilities: - - `static::$pageAlertLevelNone` - - `static::$pageAlertLevelInfo` - - `static::$pageAlertLevelWarning` - - `static::$pageAlertLevelDanger` - - `static::$pageAlertLevelPrimary` - - `static::$pageAlertLevelSecondary` -- `$fieldKey` allows to declare the key of a data to allow dynamic messages (see below) -- finally, if `$declareTemplateAsPath` is set to true then `$template` should be passed as a path to a template file. +You can use several styles: `setLevelInfo()`, `setLevelWarning()`, `setLevelDanger()`, `setLevelPrimary()` or `setLevelSecondary()`. ## Dynamic messages -Page alerts can be dynamic, using the power of a regular Vue.js template. - -### Show Page, Form and Command cases - -To this end, we can define a `$fieldKey` to work with in the config, and reference it in the data part; here's an example in a Show Page (it is very similar in Form and Command case): +To provide a dynamic message, depending on the actual data of the Show, Entity List and so on, you can pass a closure to the `setMessage()` method: ```php -class PostShow extends SharpShow +class MyShow extends SharpShow { // [...] - function buildShowConfig(): void + protected function buildPageAlert(PageAlert $pageAlert): void { - $this - ->configurePageAlert( - 'Warning: this post is still in {{state}} state.', - static::$pageAlertLevelWarning, - 'globalMessage' - ); - } - - function find($id): array - { - return $this - ->setCustomTransformer('globalMessage', function($value, Post $post) { - return [ - 'is_draft' => in_array($post->state, ['draft', 'pending']), - 'state' => $post->state - ]; - }) - ->transform(Post::findOrFail($id)); + $pageAlert + ->setLevelInfo() + ->setMessage(function (array $data) { + return $data['is_planned'] + ? 'This post is planned for publication, on ' . $data['published_at'] + : null; + }); } } ``` -Note that we use the dynamic data in two ways, in this example: - -- the page alert will appear only if the post state is "draft" or "pending" -- and the actual state will be injected in the text message. - -### The Entity List case - -In an Entity List, for dynamic messages, you can use the `getGlobalMessageData()` method: - -```php -class PostList extends SharpEntityList -{ - // [...] - - public function buildListConfig(): void - { - $this - ->configurePageAlert('Hey there, please not that {{ text }}.'); - } - - public function getGlobalMessageData(): ?array - { - if($this->getQueryParams()->filterFor('draft')) { - return ['text' => 'draft posts are not visible']; - } - - return ['text' => 'everything is OK']; - } -``` - -### The Dashboard case +The `$data` array passed to the closure is the result of your `find()` (Show, Form), `getListData()` (Entity List), `buildWidgetsData()` (Dashboard) or `initialData()` (Command) method. -For the Dashboard, the API is slightly different: first the 3rd argument of `configurePageAlert()`, `$fieldKey`, is not really used, since there is no field in a Dashboard. - -Second, and more importantly, here's how you can handle data binding for dynamic messages: - -```php -class CompanyDashboard extends SharpDashboard -{ - // [...] - - public function buildDashboardConfig(): void - { - $this->configurePageAlert('Graphs below are delimited by period {{period}}.'); - } - - protected function buildWidgetsData(): void - { - $period = $this->getQueryParams()->filterFor(PeriodFilter::class); - $this->setPageAlertData([ - 'period' => sprintf('%s - %s', $period['start'], $period['end']), - ]); - } -} -``` \ No newline at end of file +::: tip +If your message is complex to build, you can defer to a blade template to encapsulate the logic, eg: +`return view('sharp._post-planned-info', ['data' => $data])->render();` +::: \ No newline at end of file diff --git a/docs/guide/quick-creation-form.md b/docs/guide/quick-creation-form.md new file mode 100644 index 000000000..e94d3fbd2 --- /dev/null +++ b/docs/guide/quick-creation-form.md @@ -0,0 +1,41 @@ +# Quick creation form + +Sometimes you may want to allow the creation of a new instance directly from the list page, without having to navigate to a dedicated creation page. It's especially useful when the create form does not require a lot of fields, to keep the user in the list context — and since Sharp will display a "submit and reopen" button in the modal, the user can quickly create multiple instances. + +## Prerequisites + +This feature will only work if a Form is defined for the entity (since Sharp will entirely rely on it). + +## Configuration + +The configuration is done in the Entity List: + +```php +class MyList extends SharpEntityList +{ + public function buildListConfig(): void + { + $this->configureQuickCreationForm(); + } + // ... +} +``` + +With this, when the user clicks on the "New..." button, a modal will open with the form fields defined in the Form. One common practice is to limit the fields to the strict minimum: this can be achieved by passing an array of field keys to the `configureQuickCreationForm` method: + +```php +class MyList extends SharpEntityList +{ + public function buildListConfig(): void + { + $this->configureQuickCreationForm(['name', 'price']); + } + // ... +} +``` + +Of course, ensure that these fields are defined in the Form and that all the required fields are present. + +## Redirect to the Show Page + +When the Form is configured with `configureDisplayShowPageAfterCreation()`, and if the user does not choose to stay in creation (with the "submit and reopen" button), Sharp will redirect to the Show Page after the creation. \ No newline at end of file diff --git a/docs/guide/reordering-instances.md b/docs/guide/reordering-instances.md index b75938402..0227e1de3 100644 --- a/docs/guide/reordering-instances.md +++ b/docs/guide/reordering-instances.md @@ -1,6 +1,6 @@ # Reordering instances -It's sometimes useful to allow the user to rearrange instances right from the Entity List. +Allow the user to rearrange instances in the Entity List. ## Generator Command @@ -36,7 +36,7 @@ Then, in your Entity List you have to configure your reorder handler: ```php class PageEntityList extends SharpEntityList { - // [...] + // ... public function buildListConfig() { @@ -47,6 +47,36 @@ class PageEntityList extends SharpEntityList And that’s it, the list now presents a "Reorder" button, and your code will be called when needed. +::: tip +Note that you can also pass a ReorderHandler classname, or an anonymous class that extends ReorderHandler, to the `configureReorderable()` method. +::: + +## Authorizations + +The reorder action depends on the `reorder` permission. You can define it in the [Entity Policy](entity-authorizations.md): + +Sometimes you may need to restrict the reorder action depending on the actual data, or on some filters values. This can be achieved by using the `disableReorder()` method in your EntityList class, typically in the `getListData()` method. + +```php +class PostEntityList extends SharpEntityList +{ + // ... + + public function buildListConfig() + { + $this->configureReorderable(new PostReorderHandler()); + } + + public function getListData(): array|Arrayable + { + // We can’t reorder if there is a search + $this->disableReorder($this->queryParams->hasSearch()); + + // ... + } +} +``` + ## Handle exceptions If you need to abort the process, for any reason, you can raise a `Code16\Sharp\Exceptions\SharpException\SharpApplicativeException` in the `reorder(array $ids)` function. @@ -56,21 +86,31 @@ If you need to abort the process, for any reason, you can raise a `Code16\Sharp\ A common pattern with an Eloquent model is to simply define an `order` attribute. In this simple case, you can leverage a default implementation built in Sharp: ```php -public function buildListConfig() +class PageEntityList extends SharpEntityList { - $this->configureReorderable(new SimpleEloquentReorderHandler(MyModel::class)); + // [...] + + public function buildListConfig() + { + $this->configureReorderable(new SimpleEloquentReorderHandler(MyModel::class)); + } } ``` The `Code16\Sharp\EntityList\Eloquent\SimpleEloquentReorderHandler` class expects the full classname of the Eloquent Model to reorder, and will use the `id` and `order` attribute by default. You can change this default behavior with the dedicated methods: ```php -public function buildListConfig() +class PageEntityList extends SharpEntityList { - $this->configureReorderable( - new SimpleEloquentReorderHandler(MyModel::class) - ->setIdAttribute('uuid') - ->setOrderAttribute('position') - ); + // [...] + + public function buildListConfig() + { + $this->configureReorderable( + new SimpleEloquentReorderHandler(MyModel::class) + ->setIdAttribute('uuid') + ->setOrderAttribute('position') + ); + } } ``` diff --git a/docs/guide/sharp-breadcrumb.md b/docs/guide/sharp-breadcrumb.md index 788b8d174..0ec393b56 100644 --- a/docs/guide/sharp-breadcrumb.md +++ b/docs/guide/sharp-breadcrumb.md @@ -4,17 +4,18 @@ Under the hood Sharp manages a breadcrumb to keep track of stacked pages. ## Display the breadcrumb -![A breadcrumb example](./img/breadcrumb-v8.png) - You can activate the breadcrumb display in sharp's configuration: ```php -// config/sharp.php -return [ - // [...] - - "display_breadcrumb" => true, -]; +class SharpServiceProvider extends SharpAppServiceProvider +{ + protected function configureSharp(SharpConfigBuilder $config): void + { + $config + ->displayBreadcrumb() + // [...] + } +} ``` ## Configure entity label @@ -71,4 +72,8 @@ class PostShow extends \Code16\Sharp\Show\SharpShow ::: tip In the Form, the breadcrumb label is only used in one particular case: when coming from an embedded Entity List inside a Show Page. In this case, the Show Page and the Form entity are different, and the breadcrumb helps to keep track of the current edited entity. -::: \ No newline at end of file +::: + +## Interact with Sharp's Breadcrumb + +Refer to [the Context documentation](context.md) to find out how to interact with Sharp's breadcrumb. \ No newline at end of file diff --git a/docs/guide/sharp-uploads.md b/docs/guide/sharp-uploads.md index a167c3293..1f55ee8fd 100644 --- a/docs/guide/sharp-uploads.md +++ b/docs/guide/sharp-uploads.md @@ -4,13 +4,13 @@ Uploads are painful. Sharp provide a very opinionated and totally optional solution to handle if you are using Eloquent and the `WithSharpFormEloquentUpdater` trait (see [related documentation](building-form.md)). -The proposal is to use a special Sharp Model for all your uploads, and to link them to your Models with Eloquent's Morph relationships. +The proposal is to use a special Sharp Model for all your uploads, and to link them to your Models with Eloquent’s Morph relationships. ## Use `SharpUploadModel` The base Model class is `Code16\Sharp\Form\Eloquent\Uploads\SharpUploadModel`. Just create your own Model class and make it extends this base class. -You'll have to define the Eloquent `$table` attribute to indicate the table name. So for instance, let's say your Model name choice is `Media`, here's the class code: +You’ll have to define the Eloquent `$table` attribute to indicate the table name. So for instance, let’s say your Model name choice is `Media`, here’s the class code: ```php use Code16\Sharp\Form\Eloquent\Uploads\SharpUploadModel; @@ -85,13 +85,10 @@ class Book extends Model ## Use it! -Let's pretend you already have data in this new table, here how to handle it. - ### Properties By default, you can get the `file_name`, but also `mime_type` and file's `size`. - ### Custom properties You can add whatever property you need through custom properties, by setting it: @@ -100,7 +97,7 @@ You can add whatever property you need through custom properties, by setting it: $book->cover->author = 'Tomi Ungerer'; ``` -Custom properties will be stored in the `custom_properties` column, as JSON. +Custom properties are stored in the `custom_properties` column, as JSON. You can retrieve the value the same way: @@ -110,50 +107,85 @@ $author = $book->cover->author; ### Thumbnails -Thumbnail creation, for image, is built-in, with this function: +Thumbnail creation is built-in, you can configure thumbnail disk and base directory: ```php -thumbnail($width=null, $height=null, $filters=[]); +class SharpServiceProvider extends SharpAppServiceProvider +{ + protected function configureSharp(SharpConfigBuilder $config): void + { + $config + ->configureUploadsThumbnailCreation( + // NB: all these values are the default ones + thumbnailsDisk: 'public', + thumbnailsDir: 'thumbnails', + ) + // [...] + } +} ``` -You must first define the thumbnail directory, in Sharp's config: +Then you can create a thumbnail using the `thumbnail` method directly on the upload model: ```php -// config/sharp.php - -'uploads' => [ - 'thumbnails_dir' => 'thumbnails', -], +thumbnail(int $width = null, int $height = null, array $modifiers = []); ``` -This path is relative to the `public` directory. +For instance, you can display a 150px width thumbnail in a view like this: -Then you can call `$thumb = $book->cover->thumbnail(150)` to have a full URL to a 150px (width) thumbnail. +```php +My picture +``` -#### Filters +Another option is to use the fluent API, calling `thumbnail()` without parameters: -The third argument is for Filters. For now, only two are available: +```php +$thumb = $book->cover->thumbnail()->setQuality(60)->toJpeg()->make(150); +``` -- **greyscale** -`->thumbnail(150, null, ['greyscale' => []])` +Available methods are: +- `setQuality(int $quality)`: set the quality of the thumbnail used by some encoders (default to 90). +- `toWebp()`, `toPng()`, `toJpeg()`, `toGif()`, `toAvif()`: force the use of a specific encoder for the thumbnail. +- `setAppendTimestamp(bool $appendTimestamp = true)`: append a timestamp to the thumbnail URL (useful for browser cache). +- `setAfterClosure(Closure $closure)`: set a closure to be executed after the thumbnail creation. Intended to be used like this: -- **fit**: this one has 2 params, `w` for width and `h` for height, and will center-fit the image in those constraints. -`->thumbnail(150, null, ['fit' => ['w'=>150, 'h'=>100]])` +```php +$book->cover + ->thumbnail() + ->setAfterClosure(function ($wasCreated, $thumbnailPath, $thumbnailDisk) { + // Do something... + }) + ->make(150); +``` -But of course you can provide here a custom one. You'll need for that to first create a Filter class that extends `Code16\Sharp\Form\Eloquent\Uploads\Thumbnails\ThumbnailFilter`, implementing: +- `addModifier(ThumbnailModifier $modifier)`: apply an image modifier (see below). +- `make(int $width = null, int $height = null)`: create the thumbnail, with the given size. Must be called last. -- `function applyFilter(Intervention\Image\Image $image)`: apply you filter, using the great [Intervention API](http://image.intervention.io). -- `function resized()`: (optional, default to false) Return true if the resize is part of the `applyFilter()` code. +#### Modifiers -Once the class is created, pass the full class path as filter name: +You can specify Modifiers to perform image processing on the fly. A Modifier must extend the `Code16\Sharp\Form\Eloquent\Uploads\Thumbnails\ThumbnailModifier` class: ```php -return $this->thumbnail($size, $size, [ - CustomThumbnailFilter::class => ['w' => $w, 'fill' => '#ffffff'] -]); +class MyModifier extends ThumbnailModifier +{ + public function apply(ImageInterface $image): ImageInterface + { + // Do something... + } +} ``` +The following modifiers are available out of the box: + +- `GreyscaleModifier` +- `FitModifier`: will center-fit the image with a constraints set via `->setSize($width, $height)`. + +You can provide a custom Modifier; you’ll need to create a class that extends `Code16\Sharp\Form\Eloquent\Uploads\Thumbnails\ThumbnailModifier`, implementing: + +- `function apply(ImageInterface $image): ImageInterface`: apply your filter, using the great [Intervention API](https://image.intervention.io/v3). +- `function resized(): bool`: must return true if the resize is part of the `apply()` code (optional, default to false). + ## Update with Sharp The best part is this: Sharp will take care of everything related to update and store. @@ -166,8 +198,8 @@ function buildFormFields() $this->addField( SharpFormUploadField::make('cover') ->setLabel('Cover') - ->setFileFilterImages() - ->setCropRatio('1:1') + ->setImageOnly() + ->setImageCropRatio('1:1') ->setStorageDisk('local') ->setStorageBasePath('data/Books') ); @@ -245,7 +277,7 @@ $this->addField( ->setOrderAttribute('order') ->addItemField( SharpFormUploadField::make('file') - ->setFileFilterImages() + ->setImageOnly() ->setStorageDisk('local') ->setStorageBasePath('data/Books/Pictures') ) @@ -272,7 +304,7 @@ All set. ```php $this->addField( SharpFormListField::make('pictures') - [...] + // [...] ->addItemField( SharpFormUploadField::make('file') ) diff --git a/docs/guide/show-fields/embedded-entity-list.md b/docs/guide/show-fields/embedded-entity-list.md index f034d860e..87a7fdeec 100644 --- a/docs/guide/show-fields/embedded-entity-list.md +++ b/docs/guide/show-fields/embedded-entity-list.md @@ -22,16 +22,27 @@ Embedded Entity List are really just regular Entity List presented in a Show pag ### `hideFilterWithValue(string $filterName, $value)` -This is maybe the most important method of the field, since it will not only hide a filter, but also set its value. The purpose is to allow to scope the data to the instance of the Show Page. For instance, let's say we display an Order and that we want to embed a list of products: +This is the most important method of the field, since it will not only hide a filter, but also set its value. The purpose is to allow to **scope the data to the instance** of the Show Page. For example let’s say we display an Order and that we want to embed a list of its products: ```php -SharpShowEntityListField::make('products') - ->hideFilterWithValue(OrderFilter::class, 64); +class OrderShow extends SharpShow +{ + // ... + + public function buildShowFields(FieldsContainer $showFields): void + { + $showFields->addField( + SharpShowEntityListField::make('products') + ->hideFilterWithValue(OrderFilter::class, 64) + ); + } +} ``` We defined here that we want a `products` fields related to an Entity List which implementation class is defined in the `products` Entity, and its `OrderFilter` filter (which must be declared as usual in the Entity List implementation) must be hidden AND valued to `64` when gathering the data. In short: we want the products for the order of id `64`. -::: tip Note on the filter name: passing its full classname will always work, but you can also directly pass its `key`, in case you defined one. +::: tip +Note on the filter name: passing its full classname will always work, but you can also directly pass its `key`, in case you defined one. ::: You can pass a closure as the value, and it will contain the current Show instance id. In most cases, you'll have to write this: @@ -41,6 +52,48 @@ SharpShowEntityListField::make('products') ->hideFilterWithValue(OrderFilter::class, fn ($instanceId) => $instanceId); ``` +One final note: sometimes the linked filter is really just a scope, never displayed to the user. In this case, it can be tedious to write a full implementation in the Entity List. In this situation, you can use the `HiddenFiler` class for the filter, passing a key: + +```php +class OrderShow extends SharpShow +{ + // ... + + public function buildShowFields(FieldsContainer $showFields): void + { + $showFields->addField( + SharpShowEntityListField::make('products') + ->hideFilterWithValue('order', fn ($instanceId) => $instanceId); + ); + } +} +``` + +```php +use \Code16\Sharp\EntityList\Filters\HiddenFilter; + +class OrderProductList extends SharpEntityList +{ + // ... + + protected function getFilters(): ?array + { + return [ + HiddenFilter::make('order') + ]; + } + + public function getListData(): array|Arrayable + { + return $this->transform( + Products::query() + ->forOrderId($this->queryParams->filterFor('order')) + ->get() + ); + } +} +``` + ### `hideEntityCommand(array|string $commands): self` Use it to hide any entity command in this particular embedded Entity List (useful when reusing an EntityList). This will apply before looking at authorizations. diff --git a/docs/guide/show-fields/file.md b/docs/guide/show-fields/file.md index ef93ac297..b4037f2c6 100644 --- a/docs/guide/show-fields/file.md +++ b/docs/guide/show-fields/file.md @@ -10,34 +10,25 @@ The purpose of this field is to present a downloadable file to the user. Set the field label. -### `setStorageDisk(string $storageDisk)` - -Declare the file storage disk (as configured in Laravel's `config/filesystem.php` config file). - -### `setStorageBasePath(string $storageBasePath)` - -Declare the destination base storage path. - -You can use the `{id}` special placeholder to declare the instance id in the path, which can be useful sometimes. For instance: -`$field->setStorageBasePath('/users/{id}/avatar')` - ## Transformer -Sharp expects an array with 3 keys: +Sharp expects an array formatted like this: ```php [ 'name' => '', // Relative file path + 'path' => '', // Full file path + 'disk' => '', // Disk name + 'mime_type' => '', // Mime type 'thumbnail' => '', // 1000px w * 400px h thumbnail full url 'size' => x, // Size in bytes ] ``` -I you are using Sharp solution for uploads, meaning the `SharpUploadModel` class [detailed here](../sharp-uploads.md), -you can simply call the built-in transformer: +If you are using Sharp solution for uploads, meaning the `SharpUploadModel` class [detailed here](../sharp-uploads.md), you can simply call the built-in transformer: ```php -$this->setCustomTransformer("file", new SharpUploadModelFormAttributeTransformer()); +$this->setCustomTransformer('file', new SharpUploadModelFormAttributeTransformer()); ``` -This transformer allows to act a bit n the thumbnail creation part, see its constructor for more details. \ No newline at end of file +This transformer allows to act a bit on the thumbnail creation part, see its constructor for more details. \ No newline at end of file diff --git a/docs/guide/show-fields/list.md b/docs/guide/show-fields/list.md index 56b4a932d..6a45d809b 100644 --- a/docs/guide/show-fields/list.md +++ b/docs/guide/show-fields/list.md @@ -7,21 +7,25 @@ This field is very similar to the [Form's File field](../form-fields/list.md), a Here's an example, for a list of pictures with a legend: ```php -function buildShowFields() +class MyShow extend SharpShow { - $this->addField( - SharpShowListField::make('pictures') - ->setLabel('additional pictures') - ->addItemField( - SharpShowFileField::make('file') - ->setStorageDisk('local') - ->setStorageBasePath('data/Product/{id}/pictures') - ) - ->addItemField( - SharpShowTextField::make('legend') - ->setLabel('Legend') - ) - ); + // [...] + function buildShowLayout(ShowLayout $showLayout): void + { + $showLayout->addField( + SharpShowListField::make('pictures') + ->setLabel('additional pictures') + ->addItemField( + SharpShowFileField::make('file') + ->setStorageDisk('local') + ->setStorageBasePath('data/Product/{id}/pictures') + ) + ->addItemField( + SharpShowTextField::make('legend') + ->setLabel('Legend') + ) + ); + } } ``` @@ -37,20 +41,27 @@ Add a SharpShowField in the item. ## Layout -The List item layout must be defined like the show itself, in the `buildShowLayout()` function. The item layout is managed as a column, with a `ShowLayoutColumn` object. To link the column and the item, use the classic `withSingleField()` function with a second argument, a Closure accepting a `ShowLayoutColumn`. +The List item layout must be defined like the show itself, in the `buildShowLayout()` function. The item layout is managed as a column, with a `ShowLayoutColumn` object. To link the column and the item, use the classic `withField()` function with a second argument, a Closure accepting a `ShowLayoutColumn`. Example: ```php -$this->addColumn(6, function(ShowLayoutColumn $column) { - $column->withSingleField('pieces', function(ShowLayoutColumn $listItem) { - $listItem->withSingleField('acquisition_date') - ->withSingleField('title') - ->withSingleField('artist'); - }); - }); +class MyShow extend SharpShow +{ + // [...] + function buildShowLayout(ShowLayout $showLayout): void + { + $showLayout->addColumn(6, function (ShowLayoutColumn $column) { + $column->withListField('pieces', function (ShowLayoutColumn $listItem) { + $listItem->withField('acquisition_date') + ->withField('title') + ->withField('artist'); + }); + }); + } +} ``` ## Formatter -The Formatter expects an array or a `Collection` of models, each one defining attributes for each list item keys at the format expected by the corresponding Field Formatter. \ No newline at end of file +The Formatter expects an array or a `Collection` of models, each one defining attributes for each list item keys at the format expected by the corresponding Field Formatter. diff --git a/docs/guide/show-fields/picture.md b/docs/guide/show-fields/picture.md index 312d929c6..f8447f0bd 100644 --- a/docs/guide/show-fields/picture.md +++ b/docs/guide/show-fields/picture.md @@ -23,5 +23,3 @@ function find($id): array ->transform([...]); } ``` - -See [related documentation of this transformer here](../how-to-transform-data.md#SharpUploadModelThumbnailUrlTransformer). \ No newline at end of file diff --git a/docs/guide/show-fields/text.md b/docs/guide/show-fields/text.md index 17d69fc7a..e960c65fc 100644 --- a/docs/guide/show-fields/text.md +++ b/docs/guide/show-fields/text.md @@ -12,6 +12,14 @@ Set the field label. Collapse the text if too long, and add a "show more" link. Use it for long texts (even markdown formatted) in sections with only one field. +### `doNotCollapse()` + +Reset the collapse configuration. + +### `setHtml(bool $html = true)` + +By default, the text is escaped. If you want to display HTML, set this to true. + ### `allowEmbeds(array $embeds)` This method expects an array of embeds that could be inserted in the content, declared as full class names. An embed class must extend `Code16\Sharp\Form\Fields\Embeds\SharpFormEditorEmbed`. diff --git a/docs/guide/single-form.md b/docs/guide/single-form.md index 33b80c104..702040d4b 100644 --- a/docs/guide/single-form.md +++ b/docs/guide/single-form.md @@ -38,10 +38,10 @@ class AccountSharpForm extends SharpSingleForm function buildFormLayout(FormLayout $formLayout): void { - $formLayout->addColumn(6, function($column) { + $formLayout->addColumn(6, function ($column) { return $column - ->withSingleField('name') - ->withSingleField('email'); + ->withField('name') + ->withField('email'); }); } diff --git a/docs/guide/style-visual-theme.md b/docs/guide/style-visual-theme.md index cef9f507f..70227eaf8 100644 --- a/docs/guide/style-visual-theme.md +++ b/docs/guide/style-visual-theme.md @@ -5,108 +5,98 @@ The primary color is customisable, and is applied to the header and buttons. Although every hue works well, too light colors aren't supported (e.g. works well with [tailwind colors](https://tailwindcss.com/docs/customizing-colors#color-palette-reference) >= 600). ```php -// config/sharp.php -return [ - // [...] - - 'theme' => [ - 'primary_color' => '#004D40', - ], -]; +class SharpServiceProvider extends SharpAppServiceProvider +{ + protected function configureSharp(SharpConfigBuilder $config): void + { + $config + ->setThemeColor('#004D40') + // [...] + } +} ``` -### Login and menu logos +### Header logo -By default, the `config('sharp.name')` is displayed on the login page and on top of the menu. You can if you wish display images instead: Sharp will look for PNGs named `login-icon.png` and `menu-icon.png`, in a `/public/sharp-assets/` directory. Note that : -- `login-icon.png` is limited to 200 pixels in width and 100 pixels in height, -- and `menu-icon.png` must fit in 150 pixels in width and 50 pixels in height. - -If you need to configure the image files URLs, you can do it with this config: +By default, the configured `name` is displayed on the header. If you want to show custom logo, you can do it with this config: ```php -// config/sharp.php - -return [ - // [...] - - 'theme' => [ - 'primary_color' => ..., - 'logo_urls' => [ - 'menu' => '/sharp/subdir/my-custom-menu-icon.png', - 'login' => '/sharp/subdir/my-custom-login-icon.png', - ], - ], -]; +class SharpServiceProvider extends SharpAppServiceProvider +{ + protected function configureSharp(SharpConfigBuilder $config): void + { + $config + ->setName('My Sharp App') + ->setThemeLogo( + logoUrl: '/my-sharp-assets/my-custom-logo.svg', + logoHeight: '1.5rem', + faviconUrl: '/my-sharp-assets/favicon.png' + ) + // [...] + } +} ``` -#### Display a custom message on login page +The file should be an SVG, you can customize the logo height by setting the `logo_height` config. -You can display a custom content under the form on login page; you'll need to create a new template file: +### Login form -```blade - +You can customize the login form with a custom message. -
- Display a custom message to your users -
+```php +class SharpServiceProvider extends SharpAppServiceProvider +{ + protected function configureSharp(SharpConfigBuilder $config): void + { + $config + ->appendMessageOnLoginForm('sharp.login-page-message') + // or a direct message + // ->appendMessageOnLoginForm('Display a custom message to your users') + // [...] + } +} ``` -And then define the path to this custom blade in the `config/sharp.php` config file: - -```php -// config/sharp.php +The custom message is displayed under the form; you can either provide HTML or the name of a custom blade template file. -return [ - // [...] +```blade + - 'login_page_message_blade_path' => 'sharp/_login-page-message', -]; + + Display a custom message to your users + ``` ### Favicon -You can define an URL for a favicon that Sharp will use in the config: +You can define an URL for a favicon that Sharp will as a 3rd argument of the same `setThemeLogo()` method: ```php -// config/sharp.php - -return [ - // [...] - - 'theme' => [ - 'favicon_url' => '/sharp-img/favicon.png', - ], -] +class SharpServiceProvider extends SharpAppServiceProvider +{ + protected function configureSharp(SharpConfigBuilder $config): void + { + $config + ->setThemeLogo( + faviconUrl: '/my-sharp-assets/favicon.png' + ) + // [...] + } +} ``` -### Injecting Assets +### Injecting CSS -You may globally inject custom CSS files after the Sharp assets by defining their paths in the `config/sharp.php` config file. +If you want to inject custom CSS in Sharp, you can do so by using `loadViteAssets()` or `loadStaticCss()`. Be aware that tailwind classes may clash with Sharp default CSS so you may define a [Tailwind prefix](https://tailwindcss.com/docs/configuration#prefix). ```php -// config/sharp.php - -return [ - // [...] - - 'extensions' => [ - 'assets' => [ - 'strategy' => 'raw', - 'head' => [ - '/css/inject.css', // Outputs after sharp assets - ], - ], - ], -]; +class SharpServiceProvider extends SharpAppServiceProvider +{ + protected function configureSharp(SharpConfigBuilder $config): void + { + $config + ->loadViteAssets(['resources/css/sharp.css']) // to load a CSS file built with Vite + ->loadStaticCss(asset('/css/sharp.css')) // Or to load a static CSS file + } +} ``` - -The comment next to the item within the `head` position show how the output would appear in the HTML. - -### Strategy - -The `strategy` defines how the asset path will be rendered - -- `raw` to output the path in the form it appears in your array -- `asset` to pass the path to the laravel [`asset()`](https://laravel.com/docs/5.6/helpers#method-asset) function -- `mix` to pass the path to the laravel [`mix()`](https://laravel.com/docs/5.6/helpers#method-mix) function -- `vite` to pass to path to the laravel [`Vite::asset()`](https://laravel.com/docs/10.x/vite#blade-processing-static-assets) function diff --git a/docs/guide/testing-with-sharp.md b/docs/guide/testing-with-sharp.md index 62823186f..b4d45faf7 100644 --- a/docs/guide/testing-with-sharp.md +++ b/docs/guide/testing-with-sharp.md @@ -4,37 +4,37 @@ Sharp provides a few assertions and helpers to help you test your Sharp code. ## The `SharpAssertions` trait -The `Code16\Sharp\Utils\Testing\SharpAssertions` trait is intended to be used in a Feature test. It has to be initialized, like this: +The `Code16\Sharp\Utils\Testing\SharpAssertions` trait is intended to be used in a Feature test. ```php -protected function setUp() +class PostFormTest extends TestCase { - parent::setUp(); - - $this->initSharpAssertions(); + use SharpAssertions; + + // ... } ``` ### Helpers -First, the trait adds a few helpers: - +The trait adds a few helpers: #### `loginAsSharpUser($user)` Logs in the given user as a Sharp user. +#### `getSharpShow(string $entityKey, $instanceId)` -#### `getSharpForm(string $entityKey, $instanceId = null)` +Call the Sharp API to display the Show Page for the Entity `$entityKey` and instance `$instanceId`. -Call the Sharp API to display the form for the Entity `$entityKey`. If `$instanceId` is provided, it will be an edit form, and otherwise a create one. +#### `getSharpForm(string $entityKey, $instanceId = null)` +Call the Sharp API to display the Form for the Entity `$entityKey`. If `$instanceId` is provided, it will be an edit form, and otherwise a creation one. #### `updateSharpForm(string $entityKey, $instanceId, array $data)` Call the Sharp API to update the Entity `$entityKey` of id `$instanceId`, with `$data`. - #### `storeSharpForm(string $entityKey, array $data)` Call the Sharp API to store a new Entity `$entityKey` with `$data`. @@ -47,15 +47,15 @@ Call the Sharp API to delete an `$entityKey` instance on the Entity List. Call the Sharp API to delete an `$entityKey` instance on the Show Page. -#### `callSharpEntityCommandFromList(string $entityKey, string $commandKeyOrClassName, array $data)` +#### `callSharpEntityCommandFromList(string $entityKey, string $commandKeyOrClassName, array $data, ?string $commandStep = null)` Call the `$commandKeyOrClassName` Entity Command with the optional `$data`. -#### `callSharpInstanceCommandFromList(string $entityKey, $instanceId, string $commandKeyOrClassName, array $data)` +#### `callSharpInstanceCommandFromList(string $entityKey, $instanceId, string $commandKeyOrClassName, array $data, ?string $commandStep = null)` Call the `$commandKeyOrClassName` Instance Command with the optional `$data`. -#### `callSharpInstanceCommandFromShow(string $entityKey, $instanceId, string $commandKeyOrClassName, array $data)` +#### `callSharpInstanceCommandFromShow(string $entityKey, $instanceId, string $commandKeyOrClassName, array $data, ?string $commandStep = null)` Call the `$commandKeyOrClassName` Instance Command with the optional `$data`. @@ -76,67 +76,6 @@ For instance: ['show', 'leaves', 16], ['form', 'leaves', 16], ]) - ->getSharpForm(...) + ->getSharpForm(/*...*/) ->assertOk(); ``` - -### Assertions - -You can use regular assertions, for instance: - -```php -$this - ->updateSharpForm( - 'orders', - $order->id, - array_merge($order->toArray(), [ - 'client' => 'test', - 'payment_delay' => 10 - ]) - ) - ->assertStatus(200); -``` - -But sometimes you'll want to test some specific Sharp things. Here's the list of custom assertions added by the `SharpAssertions` trait: - -#### `assertSharpHasAuthorization($authorization)` -#### `assertSharpHasNotAuthorization($authorization)` - -Example: - -```php -$this->getSharpForm('orders', $order->id) - ->assertSharpHasAuthorization('update') - ->assertSharpHasAuthorization('delete'); -``` - -#### `assertSharpFormHasFields($names)` - -Example: - -```php -$this->getSharpForm('orders') - ->assertSharpFormHasFields([ - 'number', 'client' - ]); -``` - -#### `assertSharpFormHasFieldOfType($name, $formFieldClassName)` - -Example: - -```php -$this->getSharpForm('orders', $order->id) - ->assertSharpFormHasFieldOfType( - 'number', SharpFormTextField::class - ); -``` - -#### `assertSharpFormDataEquals($name, $value)` - -Example: - -```php -$this->getSharpForm('orders', $order->id) - ->assertSharpFormDataEquals('number', $order->number); -``` \ No newline at end of file diff --git a/docs/guide/upgrading/9.0.md b/docs/guide/upgrading/9.0.md new file mode 100644 index 000000000..d5e0b3ebf --- /dev/null +++ b/docs/guide/upgrading/9.0.md @@ -0,0 +1,951 @@ +--- +outline: [1, 2] +--- + +# Upgrading from 8.x to 9.x + +This is a very big release, with a lot of changes. We try to limit breaking changes, but there are some... This guide will help you to upgrade your Sharp 8.x app to Sharp 9.x. + +# General + +## Get new assets, clear cache + +This is true for every update: be sure to grab the latest assets and to clear the view cache: + +```bash +php artisan vendor:publish --tag=sharp-assets --force +php artisan view:clear +``` + +## Update your composer.json + +The command used to publish sharp's assets changed, you should update your `composer.json`: + +```json +{ + "scripts": { + "post-update-cmd": [ + "@php artisan vendor:publish --tag=sharp-assets --force" + ] + } +} +``` + +::: info +Note that in addition to the command modification, we previously advice to put this script in the `post-autoload-dump` section, but this is not recommended anymore, move it to `post-update-cmd` instead. +::: + +## Deprecated methods have been removed + +- Entity List: deprecated `buildListFields()` and `buildListLayout()` were removed, use `buildList()` instead +- Form: deprecated `delete()` method was removed (since it was moved to show / entity list in 8.x) + +## New way to configure Sharp, via a dedicated builder class + +The `config/sharp.php` file was entirely removed in favor of a dedicated builder class. This is not a breaking change since the config file is still supported, but deprecated, so you are encouraged to migrate to the new builder class. + +To migrate, you should first create a new Service Provider which extends `Code16\Sharp\SharpAppServiceProvider` and implements the `configureSharp()` method: + +```php +use Code16\Sharp\SharpAppServiceProvider; + +class MySharpServiceProvider extends SharpAppServiceProvider +{ + protected function configureSharp(SharpConfigBuilder $config): void + { + $config + ->setName('My project') + ->addEntity('posts', PostEntity::class) + // ... + } +} +``` + +Report all you configuration using the API of this new `SharpConfigBuilder` class. It should be pretty straightforward, as all the methods are named after the config keys they replace. For example: + +In 8.x: + +```php +// Old config/sharp.php +return [ + 'name' => 'Demo project', + 'custom_url_segment' => 'sharp', + 'display_breadcrumb' => true, + 'entities' => [ + 'posts' => \App\Sharp\Entities\PostEntity::class, + ], + + 'global_filters' => fn () => auth()->id() === 1 ? [] : [\App\Sharp\DummyGlobalFilter::class], + + 'search' => [ + 'enabled' => true, + 'placeholder' => 'Search for posts or authors...', + 'engine' => \App\Sharp\AppSearchEngine::class, + ], + + 'menu' => \App\Sharp\SharpMenu::class, + + // ... +]; +``` + +In 9.x: + +```php +class MySharpServiceProvider extends SharpAppServiceProvider +{ + protected function configureSharp(SharpConfigBuilder $config): void + { + $config + ->setName('Demo project') + ->setCustomUrlSegment('sharp') + ->setDisplayBreadcrumb() + ->addEntity('posts', PostEntity::class) + ->addGlobalFilter(DummyGlobalFilter::class) // The auth()->id() === 1 no longer can be handled here, as the auth context is yet not available. Use the new authorize() method of the global filter instead. + ->enableGlobalSearch(AppSearchEngine::class, 'Search for posts or authors...') + ->setMenu(SharpMenu::class) + // ... + } +} +``` + +::: warning +Be sure to [register this new Service Provider](https://laravel.com/docs/providers#registering-providers) in your app. +::: + +## New middleware to declare + +Due to migration to inertia, two middleware must be added to the config. + +::: info +if you migrated to the new config builder class, you should be ok unless you have explicitly overridden the whole middleware list. +::: + +Here is the impact on the deprecated config file: + +```php +// config/sharp.php + +return [ + 'middleware' => [ + // ... + 'web' => [ + // ... + \Code16\Sharp\Http\Middleware\HandleSharpErrors::class, + \Code16\Sharp\Http\Middleware\HandleInertiaRequests::class, + ], + ], +] +``` + +## Migration to `blade-icons` + +In 8.x, menu icons was FontAwesome classes like `fa fa-user` or `fas fa-user`. Now icons must be [blade-icons](https://blade-ui-kit.com/blade-icons) icon names with its associated package installed. + +Icons are not required but if you want to keep FontAwesome, you can install the following package: +```bash +composer require owenvoke/blade-fontawesome +``` +And rename old icon names to blade-fontawesome names in your `SharpMenu` : +```diff +# Solid icons +- ->addEntityLink('entity', 'Entity', 'fas fa-user') +- ->addEntityLink('entity', 'Entity', 'fa fa-user') ++ ->addEntityLink('entity', 'Entity', logo: 'fas-user') + +# Regular (outline) icons +- ->addEntityLink('entity', 'Entity', 'far fa-envelope') +- ->addEntityLink('entity', 'Entity', 'fa fa-envelope-o') ++ ->addEntityLink('entity', 'Entity', logo: 'far-envelope') + +# Brand icons +- ->addEntityLink('entity', 'Entity', 'fa fa-github') +- ->addEntityLink('entity', 'Entity', 'fab fa-github') ++ ->addEntityLink('entity', 'Entity', logo: 'fab-github') +``` +If you were using old fontawesome 4 icons you may need to [rename them](https://docs.fontawesome.com/v5/web/setup/upgrade-from-v4#icon-name-changes-between-version-4-and-5). + +## No more Bootstrap.css / Font awesome classes + +You may be using Custom HTML (entity list row, editor embeds, form HTML field, form Autocomplete item template, page alerts) with CSS classes that was present in Sharp 8.x but that don't exist anymore: + +- If you were using bootstrap classes like `row` / `col` / `badge` in HTML content. These are no longer available, you can either : + - Convert to inline CSS (for bootstrap grid classes / utilities) + - Inject a custom CSS file as described [here](../style-visual-theme.md) +- If you were using inline Font Awesome icons like `` + - Using [blade-fontawesome](https://github.com/owenvoke/blade-fontawesome) component like : ``. In Sharp 9.x all templates are now Blade. + - For `` inside a custom transformer of an EntityList field, you must now do `Blade::render('')` + +## Page Alerts (aka global messages) are not based on Vue templates anymore + +This part has been entirely rewritten, and will need substantial changes in your code. + +In 8.x and below, you were asked to configure page alerts in the `buildConfig()` method; and if your page alert was displaying dynamic data, you had to use a custom transformer to inject the data in the page alert. All of this was removed, in favor of a much simpler "back only" system. Here’s an example of a page alert in a Show Page (this is the same in Form, Dashboard, Entity List, Embed and Command cases): + +```php +class MyShow extends SharpShow +{ + // ... + + protected function buildPageAlert(PageAlert $pageAlert): void + { + $pageAlert + ->setLevelInfo() + ->setMessage(function (array $data) { + return $data['is_planned'] + ? 'This post is planned for publication, on ' . $data['published_at'] + : null; + }); + } +} +``` + +As you can see, this new `buildPageAlert()` method takes a `PageAlert` object as parameter to work with. You'll have access to the `$data` array returned by your `find()` or `getListData()` method, to inject dynamic data in your page alert if needed. Vue templates are no longer handled, as the page alert is now rendered on the back only. + +See [global page alert documentation](../page-alerts.md) for more detail. + +## Related models handling in custom transformers was fixed (and potentially breaking) + +This bug fix potentially brings a breaking change: if you were using a custom transformer to handle related models, you may have to update it. + +Here’s code which will work in Sharp 8.x and below: + +```php +$this + ->setCustomTransformer('customer:name', function ($value, $instance, $attribute) { + return $instance->customer->name; // $instance is the Order + }) + ->transform(Order::find(1)) +``` + +Is has to be rewritten like this in Sharp 9.x: + +```php +$this + ->setCustomTransformer('customer:name', function ($value, $instance, $attribute) { + return $instance->name; // $instance is the Customer, as it should be. + }) + ->transform(Order::find(1)) +``` + +The main difference is that the `$instance` parameter refers to the related model, not the main model anymore. To summarize: + +In 8.x: + +```php +$value: 'Joe Doe' +$instance: // the Order instance +$attribute: 'customer:name' +``` + +In 9.x: + +```php +$value: 'Joe Doe' +$instance: // the **Customer** instance +$attribute: 'name' +``` + +## Thumbnails custom filters must be refactored to Modifiers + +First, if you defined custom filters classes for your thumbnails, you must refactor it to the new ThumbnailModifier API, which is very close: + +In 8.x + +```php +class MyFilter extends ThumbnailFilter +{ + public function applyFilter(Image $image): Image + { + // ... + } +} +``` + +In 9.x + +```php +use Code16\Sharp\Form\Eloquent\Uploads\Thumbnails\ThumbnailModifier; +use Intervention\Image\Interfaces\ImageInterface; + +class MyModifier extends ThumbnailModifier +{ + public function apply(ImageInterface $image): ImageInterface + { + // ... + } +} +``` + +And secondly, in 9.x you can’t pass modifier's parameters as an array anymore: + +In 8.x + +```php +$book->cover->thumbnail(100, 100, ['fit'=>['w'=>100, 'h'=>100]]); +``` + +In 9.x + +```php +$book->cover->thumbnail(100, 100, [new FitModifier(100, 100)]); + +// or with the new fluent API +$book->cover->thumbnail() + ->addModifier(new FitModifier(100, 100)) + ->make(); +``` + +## `currentSharpRequest()` is now deprecated in favor of `sharp()->context()` helper + +The `currentSharpRequest()` helper is now deprecated, and will be entirely removed in a future version. You should migrate your code to use the `sharp()->context()` helper instead (see [the dedicated documentation](../context.md)). + +## `SharpAuthenticationCheckHandler` is now deprecated in favor of `viewSharp` Gate + +The use of a `SharpAuthenticationCheckHandler` is now deprecated, and will be entirely removed in a future version. You should migrate your handler to a Gate: + +In 8.x: + +```php +class MySharpAuthenticationCheckHandler implements SharpAuthenticationCheckHandler +{ + public function check(Authenticatable $user): bool; + { + return $user->is_sharp_admin; + } +} +``` + +In 9.x: + +```php +class AppServiceProvider extends ServiceProvider +{ + // ... + + public function boot(): void + { + Gate::define('viewSharp', fn ($user) => $user->is_sharp_admin); + } +} +``` + +::: tip +You should place this code in the new Sharp dedicated Service Provider you will create to configure your Sharp app, overriding the `declareAccessGate()` method. See [the dedicated documentation](../authentication#global-access-gate). +::: + +Next, the `sharp.auth.check_handler` config key can be safely removed from your `config/sharp.php` file (in case you have not yet migrated to the dedicated builder class, see above), along with the `SharpAuthenticationCheckHandler` implementation class. + +## Injected CSS must now be loaded with the `SharpConfigBuilder` + +In 8.x, +```php +// config/sharp.php + +return [ + 'extensions' => [ + 'assets' => [ + 'strategy' => 'vite', + 'head' => [ + 'resources/css/sharp.css', + ], + ], + ], +]; +``` + +In 9.x : +```php +class MySharpServiceProvider extends SharpAppServiceProvider +{ + protected function configureSharp(SharpConfigBuilder $config): void + { + $config + ->loadViteAssets(['resources/css/sharp.css']) // to load a CSS file built with Vite + ->loadStaticCss(asset('/css/sharp.css')) // Or to load a static CSS file + } +} +``` + +## All test assertions were removed + +All assertions, like for instance `assertSharpHasAuthorization`, were removed because they were clumsy and not really useful. You must remove them from your tests, and use standard comparisons instead — although in real world, it’s easier and cleaner to just check the return status (ie: `assertOk()`) and check, if needed, the consequences in the database directly. + +This means you also need to remove all `$this->initSharpAssertions()` calls from your tests. + +Of course, the test helpers remain available, see the dedicated [testing documentation](../testing-with-sharp.md). + +# Dashboard + +## `SharpWidgetPanel`s are now based on blade template + +In a similar way to Page Alerts, we abandoned Vue templates for custom `SharpWidgetPanel`s in favor of blade templates. This is a breaking change, as the `setTemplatePath(...)`and `setInlineTemplate(...)` methods were removed, placed by a unique `setTemplate(View $template)`. + +There's almost nothing to change on the PHP side: + +In 8.x: + +```php +class MyDashboard extends SharpDashboard +{ + // ... + + protected function buildWidgets(WidgetsContainer $widgetsContainer): void + { + $widgetsContainer + ->addWidget( + SharpPanelWidget::make('my_custom_panel') + ->setTitle('My custom panel') + ->setTemplatePath('sharp.templates.my_template') // Must be an existing **vue file** + ); + } +} +``` + +In 9.x: + +```php +class MyDashboard extends SharpDashboard +{ + // ... + + protected function buildWidgets(WidgetsContainer $widgetsContainer): void + { + $widgetsContainer + ->addWidget( + SharpPanelWidget::make('my_custom_panel') + ->setTitle('My custom panel') + ->setTemplate(view('sharp.templates.my_template')) // Must be an existing **blade view** + ); + } +} +``` + +The main change is the template itself, which must be a blade view now. + +See [panel widget documentation](../dashboard-widgets/panel.md) for more detail. + +# Entity Lists + +## Entity Lists have a new authorization: `reorder` + +Previously the `reorder` authorization was handled by the `update` authorization, which can lead to unwanted effects. You should now declare a specific `reorder` authorization in your Policies: + +```php +class PostPolicy extends SharpEntityPolicy +{ + public function reorder($user): bool + { + return $user->isEditor(); + } + + // ... +} +``` + +## Entity List's `setWidth()` method as a new signature (non-breaking change: old signature is still supported) + +The `->setWith($width)` method now expects a percentage value, expressed as a string (eg: `'20'` or `'20%'`), a float (eg: `.2` for 20%) or an integer (eg: `20` for 20%). The old signature use to accept a 1 to 12 integer (12-grid): it is still supported (Sharp will transform a 6 in 50%), but deprecated, and you are strongly encourage to migrate to the new signature. + +## Methods to handle Entity List columns width on small screen were deprecated + +The `->setWithOnSmallScreen($width)` and `->setWithOnSmallScreenFill()` methods were deprecated, because they are no more used in the new front table UI system. You can safely remove them, Sharp will rely on the `setWidth($width)` method, or, even easier, will deduce width based on content like a regular table. + +The `->hideOnSmallScreens()` method remains. + +## All filters must be declared in order to be used + +In Sharp 8.x it was possible, in an Embedded Entity List (EEL) case, to use a filter without declaring it. This was a kind of bug, and has been fixed in 9.x: all filters must be declared in the `getFilters()` method. + +Consider this code in 8.x, where we have a `PostShow` that embeds a `PostBlockList` as an EEL: + +```php +class PostShow extends SharpShow +{ + protected function buildShowFields(FieldsContainer $showFields): void + { + $showFields + ->addField(SharpShowTextField::make('title')->setLabel('Title')) + ->addField( + SharpShowEntityListField::make('blocks') + ->setLabel('Blocks') + ->hideFilterWithValue('post', fn($instanceId) => $instanceId) + ); + } + // ... +} + +class PostBlockList extends SharpEntityList +{ + // ... + + protected function getFilters(): ?array + { + return [ + // Nothing there + ]; + } + + public function getListData(): array|Arrayable + { + return $this->transform( + PostBlock::query() + ->where('post_id', $this->queryParams->filterFor('post')) + ->get() + ); + } +} +``` + +We can see that `PostBlockList` does not define any Filter, but uses one in the `getListData()` method, valued by the `PostShow` via `hideFilterWithValue()`. In 9.x, this won't work as the Filter must be declared in the `getFilters()` method. There is a new way to quickly declare such Filters that are not meant to be shown to the user, `HiddenFiler`: + +In 9.x + +```php +use \Code16\Sharp\EntityList\Filters\HiddenFilter; + +class PostBlockList extends SharpEntityList +{ + // ... + + protected function getFilters(): ?array + { + return [ + HiddenFilter::make('post') + ]; + } + + // ... The rest is the same +} +``` + +You can of course instead declare a real Filter. + +## Select filter `configureTemplate()` has been dropped + +If you were using this method, you must do the string transformation in the label of each value. + +## New performance optimization for Commands and Policies in Entity List (n+1) + +This is not a breaking change, in fact you can ignore this step entirely, but since it's can lead to a significative performance boost, this is worth mentioning: you can now quite easily implement a [caching mechanism of instances for your Commands and Policies in Entity List](../avoid-n1-queries-in-entity-lists.md). + +# Forms & Shows + +## Form and Show layout methods were renamed (old ones are deprecated) + +The `->withSingleField()` method was deprecated, in favor of: + +- `->withField(string $fieldKey)` for simple fields +- `->withListField(string $fieldKey, Closure $subLayoutCallback)` for List fields, which requires a sub-layout handled by a callback. + +The method `->withFields(string ...$fieldKeys)`, used for multiple fields layout, remains unchanged. + +## Form and Show Fields are now formatted even if you don’t transform them + +This shouldn’t cause any trouble, as this is a fix, but it could break unorthodox code: field formatters (which are used to format the field value for the frontend) are now properly and always called before displaying data to the front, even if you don’t transform your data with `$this->transform()` method. + +# Forms + +## New validation system (and deprecation of the old one) + +The validation system was odd, for legacy reasons. +In 9.x, it has been rewritten to be in phase with Laravel and to be more consistent: + +- validation rules can now be defined in a `rules()` method of the form / command class, +- or with a `->validate($data, $rules)` call before update / store. +- The `$formValidatorClass` property usage, in a `SharpForm`, is now deprecated (you are strongly encouraged to migrate to the `rules()` method instead). + +This code in 8.x: +```php +class PostForm extends SharpForm +{ + protected ?string $formValidatorClass = PostFormValidator::class; + + // ... +} + +class PostFormValidator extends SharpFormRequest +{ + public function rules(): array + { + return [ + 'title' => 'required', + 'content' => 'required', + ]; + } +} +``` + +Should be rewritten in this in 9.x: +```php +class PostForm extends SharpForm +{ + public function rules(): array + { + return [ + 'title' => 'required', + 'content' => 'required', + ]; + } + + // ... +} +``` + +Or: +```php +class PostForm extends SharpForm +{ + // ... + + public function update($id, array $data) + { + $this->validate($data, [ + 'title' => 'required', + 'content' => 'required', + ]); + + // ... + } +} +``` + +This version brings two huge benefits (besides the fact that it's clearer): + +- the "delayed creation" thing is gone (hooray!): the `{id}` parameter in a `SharpFormUploadField` storageBasePath isn't anymore an issue in creation case as Sharp will no longer call the `update()` method twice. +- Validation is now called AFTER data formatters, even in `SharpForm` (it was already the case with `Command`). + +**Breaking changes**: the 8.x and below validation is still allowed, but deprecated. + +If you decide to migrate (and you should), pay attention to: + +- remove special workarounds you may have done to handle the "delayed creation" thing, +- remove the `.text` suffix you may have added for `SharpFormEditorField` validation rules. + +**If you decide not to migrate just now**, you should ensure that the `\Code16\Sharp\Http\Middleware\Api\BindSharpValidationResolver` middleware in added to the `api` group: + +either in the (deprecated) config file: +```php +// config/sharp.php + +return [ + 'middleware' => [ + //... + 'api' => [ + // ... + \Code16\Sharp\Http\Middleware\Api\BindSharpValidationResolver::class, + ], + ], +] +``` + +... or in the shinny new config builder: +```php +class MySharpServiceProvider extends SharpAppServiceProvider +{ + protected function configureSharp(SharpConfigBuilder $config): void + { + $config + ->appendToMiddlewareApiGroup( + \Code16\Sharp\Http\Middleware\Api\BindSharpValidationResolver::class + ) + // ... + } +} +``` + +## Localization feature was removed for `SharpFormSelectField`, `SharpFormTagsField` and `SharpFormAutocompleteField` fields + +Those fields could be localized in 8.x in a weird way: **labels** were localized, but not **values**. This was really misleading, so we decided to remove entirely this behavior in 9.x. The only real impact should be to remove setLocalized() calls in your code for these fields. + +## `SharpFormGeolocationField` using Google Maps API must now provide a Map ID + +Sharp 9.x now uses Advanced Markers which requires a [Map ID](https://developers.google.com/maps/documentation/get-map-id), register it with the following method of the field : + +```php +class PostForm extends SharpForm +{ + public function buildFormFields(FieldsContainer $formFields): void + { + $formFields->addField( + SharpFormGeolocationField::make('position') + ->setMapsProvider('gmaps') + ->setApiKey('...') + ->setGoogleMapsMapId('...') // new method + ); + } +} +``` + +## `SharpFormAutocompleteFormField` was rewritten and need to be migrated + +First, the `SharpFormAutocompleteFormField` class was split into two classes: `SharpFormAutocompleteLocalField` and `SharpFormAutocompleteRemoteField`, to clearly separate these two different use cases. + +Second, Vue templates must be migrated to Blade templates (similar to the `SharpWidgetPanel` or Page Alerts migrations). You can either pass a view name or a blade template directly to the newly named `setListItemTemplate()` and `setResultItemTemplate()` methods (the old `setListItemInlineTemplate()`, `setListItemTemplatePath()`, `setResultItemInlineTemplate()` and `setResultItemTemplatePath()` were removed). + +The `setAdditionalTemplateData()` method was also removed, in favor of a more straightforward way to pass additional data to the template. + +Example in 8.x: + +```php +class PostForm extends SharpForm +{ + public function buildFormFields(FieldsContainer $formFields): void + { + $formFields + ->addField( + SharpFormAutocompleteField::make('author_id', 'remote') + ->setRemoteEndpoint('/api/admin/users') + ->setListItemInlineTemplate('{{name}}') + ->setResultItemInlineTemplate('{{name}}') + ) + ->addField( + SharpFormAutocompleteField::make('category_id', 'local') + ->setLocalValues([ + 1 => 'Category 1', + 2 => 'Category 2', + 3 => 'Category 3', + ]) + ) + ->addField( + // ... + ); + } + + // ... +} +``` + +In 9.x: + +```php +class PostForm extends SharpForm +{ + public function buildFormFields(FieldsContainer $formFields): void + { + $formFields + ->addField( + SharpFormAutocompleteRemoteField::make('author_id') + ->setRemoteEndpoint('/api/admin/users') + ->setListItemTemplate('{{$name}}') + ) + ->addField( + SharpFormAutocompleteLocalField::make('category_id') + ->setLocalValues([ + 1 => 'Category 1', + 2 => 'Category 2', + 3 => 'Category 3', + ]) + ) + ->addField( + // ... + ); + } + + // ... +} +``` + +Finally, there is a big evolution which concerns the remote autocomplete endpoint: your 8.x implementation should still work, but you should note that: +- you can now directly write the autocomplete endpoint as a callback closure in the field (no need to use a dedicated route + controller), +- external endpoint URLs aren’t supported anymore (you must write a wrapper around this external endpoint, either as a route + controller or via the new callback option). + +Example in 8.x: + +```php +class PostForm extends SharpForm +{ + public function buildFormFields(FieldsContainer $formFields): void + { + $formFields + ->addField( + SharpFormAutocompleteField::make('author_id', 'remote') + ->setRemoteEndpoint('/api/admin/users') + ->setListItemInlineTemplate('{{name}}') + ->setResultItemInlineTemplate('{{name}}') + ); + } + + // ... +} +``` + +In 9.x: + +```php +class PostForm extends SharpForm +{ + public function buildFormFields(FieldsContainer $formFields): void + { + $formFields + ->addField( + SharpFormAutocompleteRemoteField::make('author_id') + ->setRemoteCallback(function ($search) { + return User::where('name', 'like', "%$search%")->get(); + }) + ->setListItemTemplate('{{$name}}') + ); + } + + // ... +} +``` + +## `SharpFormUploadField`’s image related methods were renamed + +This isn't a breaking change, since the old methods are still available, but deprecated. You should migrate to the new methods: + +- `setFileFilterImage()` -> `setImageOnly()` +- `setCropRatio()` = `setImageCropRatio()` +- `shouldOptimizeImage()` = `setImageOptimize()` +- `setTransformable()` = `setImageTransformable()` +- `setCompactThumbnail()` = `setImageCompactThumbnail()` + +and in addition: + +- `setFilterFilter()` -> `setAllowedExtensions()` + +See [full documentation here](../form-fields/upload.md). + +## The API for embedded uploads in Editor field was rewritten + +The `SharpFormEditorField` no longer has all the upload-related methods directly in the class. Instead, you must use a new `SharpFormEditorUpload` builder class, passed as a parameter to the `allowUploads()` method. + +In 8.x: + +```php +// in a SharpForm +public function buildFormFields(FieldsContainer $formFields): void +{ + $formFields->addField( + SharpFormEditorField::make('content') + ->setMaxLength(1000) + ->setToolbar([ + SharpFormEditorField::B, + SharpFormEditorField::A, + SharpFormEditorField::UPLOAD, + ]) + ->setStorageDisk('local') + ->setStorageBasePath('data/posts/{id}/embed'), + ) + ); +} +``` + +In 9.x: + +```php +// in a SharpForm +public function buildFormFields(FieldsContainer $formFields): void +{ + $formFields->addField( + SharpFormEditorField::make('content') + ->setMaxLength(1000) + ->setToolbar([ + SharpFormEditorField::B, + SharpFormEditorField::A, + SharpFormEditorField::UPLOAD, + ]) + ->allowUploads( + SharpFormEditorUpload::make() + ->setStorageDisk('local') + ->setStorageBasePath('data/posts/{id}/embed') + ); + ); +} +``` + +See [full documentation here](../form-fields/editor.md). + +## New markup for Embedded uploads (in Editor field) + +If you are using `SharpFormEditorField` uploads, you will need migrate `` and `` elements in the content, meaning in the database. Sharp provides a helper trait intended to be used in your migration like this: + +```php +use Code16\Sharp\Form\Eloquent\Migrations\MigrateEditorContentsForSharp9; +use Illuminate\Database\Migrations\Migration; +use Illuminate\Support\Facades\DB; + +new class extends Migration +{ + use MigrateEditorContentsForSharp9; + + public function up(): void + { + $this->updateEditorContentOf(DB::table('posts'), ['content']); + } +} +``` + +## Editor embeds has now blade templates + +Like Autocomplete / Dashboard Widget panel, Editor embeds must now be blade inline string or a `view('...')` : + +### Inline templates + +Inline templates in 8.x : + +```php +public function buildEmbedConfig(): void +{ + $this + ->configureFormInlineTemplate('
{{ title }}
') + ->configureShowInlineTemplate('
{{ title }}
'); +} +``` + +Inline templates in 9.x : + +```php +public function buildEmbedConfig(): void +{ + $this + // if only one template is defined (for both form & show) + ->configureTemplate('@if($online)
{{ $title }}
@endif') + + // if form & show has 2 different templates + ->configureFormTemplate('@if($online)
{{ $title }}
@endif') + ->configureShowTemplate('@if($online)
{{ $title }}
@endif'); +} +``` + +### Path templates + +Path templates in 8.x : + +```php +public function buildEmbedConfig(): void +{ + $this + ->configureFormTemplatePath('sharp/embed.vue') + ->configureShowTemplatePath('sharp/embed.vue'); +} +``` + +Path templates in 9.x : + +```php +public function buildEmbedConfig(): void +{ + $this + // if only one template is defined (for both form & show) + ->configureTemplate(view('sharp.embed')) + + // if form & show has 2 different templates + ->configureFormTemplate(view('sharp.embed')) + ->configureShowTemplate(view('sharp.embed')); +} +``` + +## `SharpFormListField` collapsed items template feature was removed + +`setCollapsedItemInlineTemplate()` & `setCollapsedItemTemplatePath()` methods was removed due to limited usage and general migration into blade templates. + +## `SharpFormHtmlField` has migrated to blade templates + +`setInlineTemplate()` & `setTemplatePath()` must be converted to : +- `setTemplate('blade template string')` or +- `setTemplate(view('sharp.form-field'))`. + +See [field page](../form-fields/html) for more information. + diff --git a/docs/img/readme/v9/command.png b/docs/img/readme/v9/command.png new file mode 100644 index 000000000..c2a1c2d68 Binary files /dev/null and b/docs/img/readme/v9/command.png differ diff --git a/docs/img/readme/v9/command.webp b/docs/img/readme/v9/command.webp new file mode 100644 index 000000000..5c3cf6471 Binary files /dev/null and b/docs/img/readme/v9/command.webp differ diff --git a/docs/img/readme/v9/dark.png b/docs/img/readme/v9/dark.png new file mode 100644 index 000000000..55edd785b Binary files /dev/null and b/docs/img/readme/v9/dark.png differ diff --git a/docs/img/readme/v9/dark.webp b/docs/img/readme/v9/dark.webp new file mode 100644 index 000000000..bc28f0eaa Binary files /dev/null and b/docs/img/readme/v9/dark.webp differ diff --git a/docs/img/readme/v9/dashboard.png b/docs/img/readme/v9/dashboard.png new file mode 100644 index 000000000..933a25493 Binary files /dev/null and b/docs/img/readme/v9/dashboard.png differ diff --git a/docs/img/readme/v9/dashboard.webp b/docs/img/readme/v9/dashboard.webp new file mode 100644 index 000000000..c04cf83f5 Binary files /dev/null and b/docs/img/readme/v9/dashboard.webp differ diff --git a/docs/img/readme/v9/form.png b/docs/img/readme/v9/form.png new file mode 100644 index 000000000..f03841b04 Binary files /dev/null and b/docs/img/readme/v9/form.png differ diff --git a/docs/img/readme/v9/form.webp b/docs/img/readme/v9/form.webp new file mode 100644 index 000000000..34facebe9 Binary files /dev/null and b/docs/img/readme/v9/form.webp differ diff --git a/docs/img/readme/v9/list.png b/docs/img/readme/v9/list.png new file mode 100644 index 000000000..b1b91608a Binary files /dev/null and b/docs/img/readme/v9/list.png differ diff --git a/docs/img/readme/v9/list.webp b/docs/img/readme/v9/list.webp new file mode 100644 index 000000000..0d6140091 Binary files /dev/null and b/docs/img/readme/v9/list.webp differ diff --git a/docs/img/readme/v9/login.png b/docs/img/readme/v9/login.png new file mode 100644 index 000000000..6cd2e4293 Binary files /dev/null and b/docs/img/readme/v9/login.png differ diff --git a/docs/img/readme/v9/login.webp b/docs/img/readme/v9/login.webp new file mode 100644 index 000000000..ec6882db1 Binary files /dev/null and b/docs/img/readme/v9/login.webp differ diff --git a/docs/img/readme/v9/show.png b/docs/img/readme/v9/show.png new file mode 100644 index 000000000..caf867bb4 Binary files /dev/null and b/docs/img/readme/v9/show.png differ diff --git a/docs/img/readme/v9/show.webp b/docs/img/readme/v9/show.webp new file mode 100644 index 000000000..815890b15 Binary files /dev/null and b/docs/img/readme/v9/show.webp differ diff --git a/docs/index.md b/docs/index.md index 9e3e233bf..a205259dd 100644 --- a/docs/index.md +++ b/docs/index.md @@ -15,82 +15,188 @@ hero: link: https://sharp.code16.fr/sharp --- -
-
-
-Sharp is a content management framework built for Laravel, a toolset which provides help to build a CMS section in a website, with some rules in mind: -- the public website **should not have any knowledge of the CMS** — the CMS is a part of the system, not the center of it. In fact, removing the CMS should not have any effect on the project. -- Content administrators **should work with their data and terminology**, not CMS terms. I mean, if the project is about spaceships, space travels and pilots, why would the CMS talk about articles, categories and tags? -- Developers **should not have to work on the front-end development for the CMS**. Because life is complicated enough, Sharp takes care of all the responsive / CSS / JS stuff. -- The CMS **should not have any expectations from the persistence layer**: MySQL is cool — but it's not the perfect tool for every problem. And more important, the DB structure has nothing to do with the CMS. +Sharp is a content management framework built for Laravel as a package, which provides great help to build a CMS section in a project with a clean UI and DX in mind. Sharp is driven by code: everything is manageable through a clean and documented PHP API, using Laravel conventions and coding style. It intends to avoid code adherence — the project should not have any knowledge of it — and is data-agnostic, meaning it does not have any expectations from the persistence layer. -## Build complex lists with total control on how the data is presented +Sharp for Laravel is actively maintained and developed and is used in all kinds of projects, from content-driven websites to e-commerce platforms and API backends. -![Entity list](./img/readme/v8/list.jpg) -## Organize forms withs various fields, a customizable layout system and data validation +# Main features -You will find a powerful HTML / Markdown editor, autocompletes with templates, lists (repeaters) with custom items, files with bulk upload and image transformation... +
-![Entity list](./img/readme/v8/form.jpg) +## Streamlined Lists -## Optionally create show pages for your resources +### Customizable columns +Choose and format the data to display, and allow sorting. -You can use show page to present an instance and directly embed in it lists for linked data. The breadcrumb will help your users to find their way up. +### Search and filters +Define filters for your lists, with various types and options. -![Show page](./img/readme/v8/show.jpg) +### State management +If your entities have some state, you can manage it easily form here. -## Add filters, sortable columns and global search to your lists +
-Filters could be defined required or not, allowing multiple values or not, or presented as a date range. +![Sharp Lists](./img/readme/v9/list.webp) -![Filters](./img/readme/v8/filters.jpg) +
-## Code individual or bulk commands, with dedicated forms, user confirmation... +
-A Command is an action presented to the user (with permissions handled via policies, like everywhere in Sharp) which can lead to refreshing data after update, previewing a public page, downloading a file... -![Commands](./img/readme/v8/command-form.jpg) +
-![Bulk Commands](./img/readme/v8/command-bulk.jpg) +## Powerful Command system -## Propose a custom global search to users +### Individual or bulk +Create commands to act on a single instance or on a selection (filtered list or user choice). -The search results and their label and link are entirely customizable. +### Forms +Easily attach forms to commands, with validation and confirmation. -![Commands](./img/readme/v8/search.jpg) +### Wizards +Create multi-steps commands with dynamic paths. -## Present synthetic data, graphs and direct links in dashboards +
-Various widgets are available, and you can take advantage of filters and commands in dashboards too. +![Sharp Commands](./img/readme/v9/command.webp) -![Dashboard](./img/readme/v8/dashboard.jpg) +
-## Built-in authentication system, with out-of-the-box 2fa +
-The optional authentication system provides standard features like remember me token and rate limiting, and you can leverage double authentication with a verification based on a notification or on TOTP. -![Dashboard](./img/readme/v8/2fa.jpg) +
-## Choose your theme color! +## Comprehensive Forms -Choose one color, and the UI will adapt itself. +### Fields and layout +Use one of the many fields available, and organize them in a layout that fits your needs. -![Colors](./img/readme/v8/colors.jpg) +### Powerful editor with embeds +Sharp's custom editor really allows to create rich content, and includes a clever system to develop custom embeds. -## Driven by code, with DX in mind +### Uploads +Manage files with bulk uploads, image transformation, disk and path configuration and precise validation. -Everything in Sharp is manageable through a clean and documented PHP API, using Laravel conventions and coding style. And again: no frontend development is required. +### Lists +Create lists (repeaters) of custom items in your form. -![Code](./img/readme/v8/code.jpg) +
-## Try the online demo +![Sharp Forms](./img/readme/v9/form.webp) -A Sharp instance for a demo project is available online here: **[sharp.code16.fr/sharp/](http://sharp.code16.fr/sharp/)**. +
+ +
+ + +
+ +## Detailed Show Pages + +### Present an instance +Create a page to present an instance with a custom layout, with access to commands and state management. + +### Embedded lists +Include lists in your show page to present linked data. + +### Breadcrumb +Help your users to find their way up, allowing hierarchical navigation though embedded lists. + +
+ +![Sharp Commands](./img/readme/v9/show.webp) + +
+ +
+ + +
+ +## Insightful Dashboards + +### Widgets +Use various widgets to present synthetic data, graphs and direct links. + +### Filters and commands +Leverage filters and commands in your dashboards. + +
+ +![Sharp Commands](./img/readme/v9/dashboard.webp) + +
+ +
+ + +
+ +## Authentication and authorizations + +### Built-in authentication system +With fine-grained permissions managed by custom policies. + +### Remember me, rate limiting, forgotten password +And impersonation in dev. + +### 2FA +Out-of-the-box 2FA with TOTP or notification. + +
+ +![Sharp login](./img/readme/v9/login.webp) + +
+ +
+ + +
+ +## And more + +### Global search +Propose a custom global search to users. + +### Global filters +Ideal for multi-tenant applications. + +### Built-in localization +Manage translations for your entities. + +### Quick creation UI +Allow your user to efficiently create new instances. + +### Toast notifications and page alerts +To inform your users. + +### Dark mode and theme color +The UI will adapt itself based on your primary color. + +### Artisan commands +With prompts to generate lists, forms, commands, etc. + +### Code-driven configuration +With a clean and documented API. + +
+ +![Sharp dark mode](./img/readme/v9/dark.webp) + +
+ +
+ +# About Sharp + +Sharp is a long term project developed by [Code 16](https://code16.fr), a web agency based in France, since 2017. We use it in almost all our projects, and we are committed to maintaining and improving it over time. + +Sharp 9 relies on Laravel 11, Tailwind CSS, Inertia, Vue and Alpine.JS. + +So far we have not implemented any kind of sponsorship system, but we are open to discussing it in the future. -(Data of this demo is reset each hour) -
-
-
diff --git a/docs/package-lock.json b/docs/package-lock.json index 11c5be812..c5bf60203 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -12,42 +12,45 @@ "devDependencies": { "@types/jsdom": "^21.1.5", "@types/prismjs": "^1.26.3", + "autoprefixer": "^10.4.20", "jsdom": "^22.1.0", + "postcss": "^8.4.49", "postcss-nesting": "^12.0.1", "prismjs": "^1.29.0", + "tailwindcss": "^3.4.16", "typescript": "^5.2.2", - "vitepress": "^1.0.0-rc.25" + "vitepress": "^1.5.0" } }, "node_modules/@algolia/autocomplete-core": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz", - "integrity": "sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==", + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.17.6.tgz", + "integrity": "sha512-lkDoW4I7h2kKlIgf3pUt1LqvxyYKkVyiypoGLlUnhPSnCpmeOwudM6rNq6YYsCmdQtnDQoW5lUNNuj6ASg3qeg==", "dev": true, "dependencies": { - "@algolia/autocomplete-plugin-algolia-insights": "1.9.3", - "@algolia/autocomplete-shared": "1.9.3" + "@algolia/autocomplete-plugin-algolia-insights": "1.17.6", + "@algolia/autocomplete-shared": "1.17.6" } }, "node_modules/@algolia/autocomplete-plugin-algolia-insights": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz", - "integrity": "sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==", + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.6.tgz", + "integrity": "sha512-17NnaacuFzSWVuZu4NKzVeaFIe9Abpw8w+/gjc7xhZFtqj+GadufzodIdchwiB2eM2cDdiR3icW7gbNTB3K2YA==", "dev": true, "dependencies": { - "@algolia/autocomplete-shared": "1.9.3" + "@algolia/autocomplete-shared": "1.17.6" }, "peerDependencies": { "search-insights": ">= 1 < 3" } }, "node_modules/@algolia/autocomplete-preset-algolia": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz", - "integrity": "sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==", + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.6.tgz", + "integrity": "sha512-Cvg5JENdSCMuClwhJ1ON1/jSuojaYMiUW2KePm18IkdCzPJj/NXojaOxw58RFtQFpJgfVW8h2E8mEoDtLlMdeA==", "dev": true, "dependencies": { - "@algolia/autocomplete-shared": "1.9.3" + "@algolia/autocomplete-shared": "1.17.6" }, "peerDependencies": { "@algolia/client-search": ">= 4.9.1 < 6", @@ -55,149 +58,233 @@ } }, "node_modules/@algolia/autocomplete-shared": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz", - "integrity": "sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==", + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.6.tgz", + "integrity": "sha512-aq/3V9E00Tw2GC/PqgyPGXtqJUlVc17v4cn1EUhSc+O/4zd04Uwb3UmPm8KDaYQQOrkt1lwvCj2vG2wRE5IKhw==", "dev": true, "peerDependencies": { "@algolia/client-search": ">= 4.9.1 < 6", "algoliasearch": ">= 4.9.1 < 6" } }, - "node_modules/@algolia/cache-browser-local-storage": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.19.1.tgz", - "integrity": "sha512-FYAZWcGsFTTaSAwj9Std8UML3Bu8dyWDncM7Ls8g+58UOe4XYdlgzXWbrIgjaguP63pCCbMoExKr61B+ztK3tw==", + "node_modules/@algolia/client-abtesting": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.12.0.tgz", + "integrity": "sha512-hx4eVydkm3yrFCFxmcBtSzI/ykt0cZ6sDWch+v3JTgKpD2WtosMJU3Upv1AjQ4B6COSHCOWEX3vfFxW6OoH6aA==", "dev": true, "dependencies": { - "@algolia/cache-common": "4.19.1" + "@algolia/client-common": "5.12.0", + "@algolia/requester-browser-xhr": "5.12.0", + "@algolia/requester-fetch": "5.12.0", + "@algolia/requester-node-http": "5.12.0" + }, + "engines": { + "node": ">= 14.0.0" } }, - "node_modules/@algolia/cache-common": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.19.1.tgz", - "integrity": "sha512-XGghi3l0qA38HiqdoUY+wvGyBsGvKZ6U3vTiMBT4hArhP3fOGLXpIINgMiiGjTe4FVlTa5a/7Zf2bwlIHfRqqg==", - "dev": true - }, - "node_modules/@algolia/cache-in-memory": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.19.1.tgz", - "integrity": "sha512-+PDWL+XALGvIginigzu8oU6eWw+o76Z8zHbBovWYcrtWOEtinbl7a7UTt3x3lthv+wNuFr/YD1Gf+B+A9V8n5w==", + "node_modules/@algolia/client-analytics": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.12.0.tgz", + "integrity": "sha512-EpTsSv6IW8maCfXCDIptgT7+mQJj7pImEkcNUnxR8yUKAHzTogTXv9yGm2WXOZFVuwstd2i0sImhQ1Vz8RH/hA==", "dev": true, "dependencies": { - "@algolia/cache-common": "4.19.1" + "@algolia/client-common": "5.12.0", + "@algolia/requester-browser-xhr": "5.12.0", + "@algolia/requester-fetch": "5.12.0", + "@algolia/requester-node-http": "5.12.0" + }, + "engines": { + "node": ">= 14.0.0" } }, - "node_modules/@algolia/client-account": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.19.1.tgz", - "integrity": "sha512-Oy0ritA2k7AMxQ2JwNpfaEcgXEDgeyKu0V7E7xt/ZJRdXfEpZcwp9TOg4TJHC7Ia62gIeT2Y/ynzsxccPw92GA==", + "node_modules/@algolia/client-common": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.12.0.tgz", + "integrity": "sha512-od3WmO8qxyfNhKc+K3D17tvun3IMs/xMNmxCG9MiElAkYVbPPTRUYMkRneCpmJyQI0hNx2/EA4kZgzVfQjO86Q==", "dev": true, - "dependencies": { - "@algolia/client-common": "4.19.1", - "@algolia/client-search": "4.19.1", - "@algolia/transporter": "4.19.1" + "engines": { + "node": ">= 14.0.0" } }, - "node_modules/@algolia/client-analytics": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.19.1.tgz", - "integrity": "sha512-5QCq2zmgdZLIQhHqwl55ZvKVpLM3DNWjFI4T+bHr3rGu23ew2bLO4YtyxaZeChmDb85jUdPDouDlCumGfk6wOg==", + "node_modules/@algolia/client-insights": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.12.0.tgz", + "integrity": "sha512-8alajmsYUd+7vfX5lpRNdxqv3Xx9clIHLUItyQK0Z6gwGMbVEFe6YYhgDtwslMAP0y6b0WeJEIZJMLgT7VYpRw==", "dev": true, "dependencies": { - "@algolia/client-common": "4.19.1", - "@algolia/client-search": "4.19.1", - "@algolia/requester-common": "4.19.1", - "@algolia/transporter": "4.19.1" + "@algolia/client-common": "5.12.0", + "@algolia/requester-browser-xhr": "5.12.0", + "@algolia/requester-fetch": "5.12.0", + "@algolia/requester-node-http": "5.12.0" + }, + "engines": { + "node": ">= 14.0.0" } }, - "node_modules/@algolia/client-common": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.19.1.tgz", - "integrity": "sha512-3kAIVqTcPrjfS389KQvKzliC559x+BDRxtWamVJt8IVp7LGnjq+aVAXg4Xogkur1MUrScTZ59/AaUd5EdpyXgA==", + "node_modules/@algolia/client-personalization": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.12.0.tgz", + "integrity": "sha512-bUV9HtfkTBgpoVhxFrMkmVPG03ZN1Rtn51kiaEtukucdk3ggjR9Qu1YUfRSU2lFgxr9qJc8lTxwfvhjCeJRcqw==", "dev": true, "dependencies": { - "@algolia/requester-common": "4.19.1", - "@algolia/transporter": "4.19.1" + "@algolia/client-common": "5.12.0", + "@algolia/requester-browser-xhr": "5.12.0", + "@algolia/requester-fetch": "5.12.0", + "@algolia/requester-node-http": "5.12.0" + }, + "engines": { + "node": ">= 14.0.0" } }, - "node_modules/@algolia/client-personalization": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.19.1.tgz", - "integrity": "sha512-8CWz4/H5FA+krm9HMw2HUQenizC/DxUtsI5oYC0Jxxyce1vsr8cb1aEiSJArQT6IzMynrERif1RVWLac1m36xw==", + "node_modules/@algolia/client-query-suggestions": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.12.0.tgz", + "integrity": "sha512-Q5CszzGWfxbIDs9DJ/QJsL7bP6h+lJMg27KxieEnI9KGCu0Jt5iFA3GkREkgRZxRdzlHbZKkrIzhtHVbSHw/rg==", "dev": true, "dependencies": { - "@algolia/client-common": "4.19.1", - "@algolia/requester-common": "4.19.1", - "@algolia/transporter": "4.19.1" + "@algolia/client-common": "5.12.0", + "@algolia/requester-browser-xhr": "5.12.0", + "@algolia/requester-fetch": "5.12.0", + "@algolia/requester-node-http": "5.12.0" + }, + "engines": { + "node": ">= 14.0.0" } }, "node_modules/@algolia/client-search": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.19.1.tgz", - "integrity": "sha512-mBecfMFS4N+yK/p0ZbK53vrZbL6OtWMk8YmnOv1i0LXx4pelY8TFhqKoTit3NPVPwoSNN0vdSN9dTu1xr1XOVw==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.12.0.tgz", + "integrity": "sha512-R3qzEytgVLHOGNri+bpta6NtTt7YtkvUe/QBcAmMDjW4Jk1P0eBYIPfvnzIPbINRsLxIq9fZs9uAYBgsrts4Zg==", "dev": true, "dependencies": { - "@algolia/client-common": "4.19.1", - "@algolia/requester-common": "4.19.1", - "@algolia/transporter": "4.19.1" + "@algolia/client-common": "5.12.0", + "@algolia/requester-browser-xhr": "5.12.0", + "@algolia/requester-fetch": "5.12.0", + "@algolia/requester-node-http": "5.12.0" + }, + "engines": { + "node": ">= 14.0.0" } }, - "node_modules/@algolia/logger-common": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.19.1.tgz", - "integrity": "sha512-i6pLPZW/+/YXKis8gpmSiNk1lOmYCmRI6+x6d2Qk1OdfvX051nRVdalRbEcVTpSQX6FQAoyeaui0cUfLYW5Elw==", - "dev": true + "node_modules/@algolia/ingestion": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.12.0.tgz", + "integrity": "sha512-zpHo6qhR22tL8FsdSI4DvEraPDi/019HmMrCFB/TUX98yzh5ooAU7sNW0qPL1I7+S++VbBmNzJOEU9VI8tEC8A==", + "dev": true, + "dependencies": { + "@algolia/client-common": "5.12.0", + "@algolia/requester-browser-xhr": "5.12.0", + "@algolia/requester-fetch": "5.12.0", + "@algolia/requester-node-http": "5.12.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/monitoring": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.12.0.tgz", + "integrity": "sha512-i2AJZED/zf4uhxezAJUhMKoL5QoepCBp2ynOYol0N76+TSoohaMADdPnWCqOULF4RzOwrG8wWynAwBlXsAI1RQ==", + "dev": true, + "dependencies": { + "@algolia/client-common": "5.12.0", + "@algolia/requester-browser-xhr": "5.12.0", + "@algolia/requester-fetch": "5.12.0", + "@algolia/requester-node-http": "5.12.0" + }, + "engines": { + "node": ">= 14.0.0" + } }, - "node_modules/@algolia/logger-console": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.19.1.tgz", - "integrity": "sha512-jj72k9GKb9W0c7TyC3cuZtTr0CngLBLmc8trzZlXdfvQiigpUdvTi1KoWIb2ZMcRBG7Tl8hSb81zEY3zI2RlXg==", + "node_modules/@algolia/recommend": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.12.0.tgz", + "integrity": "sha512-0jmZyKvYnB/Bj5c7WKsKedOUjnr0UtXm0LVFUdQrxXfqOqvWv9n6Vpr65UjdYG4Q49kRQxhlwtal9WJYrYymXg==", "dev": true, "dependencies": { - "@algolia/logger-common": "4.19.1" + "@algolia/client-common": "5.12.0", + "@algolia/requester-browser-xhr": "5.12.0", + "@algolia/requester-fetch": "5.12.0", + "@algolia/requester-node-http": "5.12.0" + }, + "engines": { + "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.19.1.tgz", - "integrity": "sha512-09K/+t7lptsweRTueHnSnmPqIxbHMowejAkn9XIcJMLdseS3zl8ObnS5GWea86mu3vy4+8H+ZBKkUN82Zsq/zg==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.12.0.tgz", + "integrity": "sha512-KxwleraFuVoEGCoeW6Y1RAEbgBMS7SavqeyzWdtkJc6mXeCOJXn1iZitb8Tyn2FcpMNUKlSm0adrUTt7G47+Ow==", "dev": true, "dependencies": { - "@algolia/requester-common": "4.19.1" + "@algolia/client-common": "5.12.0" + }, + "engines": { + "node": ">= 14.0.0" } }, - "node_modules/@algolia/requester-common": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.19.1.tgz", - "integrity": "sha512-BisRkcWVxrDzF1YPhAckmi2CFYK+jdMT60q10d7z3PX+w6fPPukxHRnZwooiTUrzFe50UBmLItGizWHP5bDzVQ==", - "dev": true + "node_modules/@algolia/requester-fetch": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.12.0.tgz", + "integrity": "sha512-FuDZXUGU1pAg2HCnrt8+q1VGHKChV/LhvjvZlLOT7e56GJie6p+EuLu4/hMKPOVuQQ8XXtrTHKIU3Lw+7O5/bQ==", + "dev": true, + "dependencies": { + "@algolia/client-common": "5.12.0" + }, + "engines": { + "node": ">= 14.0.0" + } }, "node_modules/@algolia/requester-node-http": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.19.1.tgz", - "integrity": "sha512-6DK52DHviBHTG2BK/Vv2GIlEw7i+vxm7ypZW0Z7vybGCNDeWzADx+/TmxjkES2h15+FZOqVf/Ja677gePsVItA==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.12.0.tgz", + "integrity": "sha512-ncDDY7CxZhMs6LIoPl+vHFQceIBhYPY5EfuGF1V7beO0U38xfsCYEyutEFB2kRzf4D9Gqppn3iWX71sNtrKcuw==", "dev": true, "dependencies": { - "@algolia/requester-common": "4.19.1" + "@algolia/client-common": "5.12.0" + }, + "engines": { + "node": ">= 14.0.0" } }, - "node_modules/@algolia/transporter": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.19.1.tgz", - "integrity": "sha512-nkpvPWbpuzxo1flEYqNIbGz7xhfhGOKGAZS7tzC+TELgEmi7z99qRyTfNSUlW7LZmB3ACdnqAo+9A9KFBENviQ==", + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", "dev": true, - "dependencies": { - "@algolia/cache-common": "4.19.1", - "@algolia/logger-common": "4.19.1", - "@algolia/requester-common": "4.19.1" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.3.tgz", - "integrity": "sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", "dev": true, + "dependencies": { + "@babel/types": "^7.26.0" + }, "bin": { "parser": "bin/babel-parser.js" }, @@ -205,6 +292,19 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/types": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@csstools/selector-specificity": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.0.tgz", @@ -228,31 +328,31 @@ } }, "node_modules/@docsearch/css": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.5.2.tgz", - "integrity": "sha512-SPiDHaWKQZpwR2siD0KQUwlStvIAnEyK6tAE2h2Wuoq8ue9skzhlyVQ1ddzOxX6khULnAALDiR/isSF3bnuciA==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.7.0.tgz", + "integrity": "sha512-1OorbTwi1eeDmr0v5t+ckSRlt1zM5GHjm92iIl3kUu7im3GHuP+csf6E0WBg8pdXQczTWP9J9+o9n+Vg6DH5cQ==", "dev": true }, "node_modules/@docsearch/js": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.5.2.tgz", - "integrity": "sha512-p1YFTCDflk8ieHgFJYfmyHBki1D61+U9idwrLh+GQQMrBSP3DLGKpy0XUJtPjAOPltcVbqsTjiPFfH7JImjUNg==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.7.0.tgz", + "integrity": "sha512-ScfqOIKrSr8SImbpxVaD59xc/bytbL8QEM2GUpe3aICmoICflWp5DyTRzAdFky16HY+yEOAVZXt3COXQ1NOCWw==", "dev": true, "dependencies": { - "@docsearch/react": "3.5.2", + "@docsearch/react": "3.7.0", "preact": "^10.0.0" } }, "node_modules/@docsearch/react": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.5.2.tgz", - "integrity": "sha512-9Ahcrs5z2jq/DcAvYtvlqEBHImbm4YJI8M9y0x6Tqg598P40HTEkX7hsMcIuThI+hTFxRGZ9hll0Wygm2yEjng==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.7.0.tgz", + "integrity": "sha512-8e6tdDfkYoxafEEPuX5eE1h9cTkLvhe4KgoFkO5JCddXSQONnN1FHcDZRI4r8894eMpbYq6rdJF0dVYh8ikwNQ==", "dev": true, "dependencies": { - "@algolia/autocomplete-core": "1.9.3", - "@algolia/autocomplete-preset-algolia": "1.9.3", - "@docsearch/css": "3.5.2", - "algoliasearch": "^4.19.1" + "@algolia/autocomplete-core": "1.17.6", + "@algolia/autocomplete-preset-algolia": "1.17.6", + "@docsearch/css": "3.7.0", + "algoliasearch": "^5.12.0" }, "peerDependencies": { "@types/react": ">= 16.8.0 < 19.0.0", @@ -275,10 +375,26 @@ } } }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@esbuild/android-arm": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.15.tgz", - "integrity": "sha512-wlkQBWb79/jeEEoRmrxt/yhn5T1lU236OCNpnfRzaCJHZ/5gf82uYx1qmADTBWE0AR/v7FiozE1auk2riyQd3w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", "cpu": [ "arm" ], @@ -287,15 +403,14 @@ "os": [ "android" ], - "peer": true, "engines": { "node": ">=12" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.15.tgz", - "integrity": "sha512-NI/gnWcMl2kXt1HJKOn2H69SYn4YNheKo6NZt1hyfKWdMbaGadxjZIkcj4Gjk/WPxnbFXs9/3HjGHaknCqjrww==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", "cpu": [ "arm64" ], @@ -304,15 +419,14 @@ "os": [ "android" ], - "peer": true, "engines": { "node": ">=12" } }, "node_modules/@esbuild/android-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.15.tgz", - "integrity": "sha512-FM9NQamSaEm/IZIhegF76aiLnng1kEsZl2eve/emxDeReVfRuRNmvT28l6hoFD9TsCxpK+i4v8LPpEj74T7yjA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", "cpu": [ "x64" ], @@ -321,15 +435,14 @@ "os": [ "android" ], - "peer": true, "engines": { "node": ">=12" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.15.tgz", - "integrity": "sha512-XmrFwEOYauKte9QjS6hz60FpOCnw4zaPAb7XV7O4lx1r39XjJhTN7ZpXqJh4sN6q60zbP6QwAVVA8N/wUyBH/w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", "cpu": [ "arm64" ], @@ -338,15 +451,14 @@ "os": [ "darwin" ], - "peer": true, "engines": { "node": ">=12" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.15.tgz", - "integrity": "sha512-bMqBmpw1e//7Fh5GLetSZaeo9zSC4/CMtrVFdj+bqKPGJuKyfNJ5Nf2m3LknKZTS+Q4oyPiON+v3eaJ59sLB5A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", "cpu": [ "x64" ], @@ -355,15 +467,14 @@ "os": [ "darwin" ], - "peer": true, "engines": { "node": ">=12" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.15.tgz", - "integrity": "sha512-LoTK5N3bOmNI9zVLCeTgnk5Rk0WdUTrr9dyDAQGVMrNTh9EAPuNwSTCgaKOKiDpverOa0htPcO9NwslSE5xuLA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", "cpu": [ "arm64" ], @@ -372,15 +483,14 @@ "os": [ "freebsd" ], - "peer": true, "engines": { "node": ">=12" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.15.tgz", - "integrity": "sha512-62jX5n30VzgrjAjOk5orYeHFq6sqjvsIj1QesXvn5OZtdt5Gdj0vUNJy9NIpjfdNdqr76jjtzBJKf+h2uzYuTQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", "cpu": [ "x64" ], @@ -389,15 +499,14 @@ "os": [ "freebsd" ], - "peer": true, "engines": { "node": ">=12" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.15.tgz", - "integrity": "sha512-dT4URUv6ir45ZkBqhwZwyFV6cH61k8MttIwhThp2BGiVtagYvCToF+Bggyx2VI57RG4Fbt21f9TmXaYx0DeUJg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", "cpu": [ "arm" ], @@ -406,15 +515,14 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=12" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.15.tgz", - "integrity": "sha512-BWncQeuWDgYv0jTNzJjaNgleduV4tMbQjmk/zpPh/lUdMcNEAxy+jvneDJ6RJkrqloG7tB9S9rCrtfk/kuplsQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", "cpu": [ "arm64" ], @@ -423,15 +531,14 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=12" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.15.tgz", - "integrity": "sha512-JPXORvgHRHITqfms1dWT/GbEY89u848dC08o0yK3fNskhp0t2TuNUnsrrSgOdH28ceb1hJuwyr8R/1RnyPwocw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", "cpu": [ "ia32" ], @@ -440,15 +547,14 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=12" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.15.tgz", - "integrity": "sha512-kArPI0DopjJCEplsVj/H+2Qgzz7vdFSacHNsgoAKpPS6W/Ndh8Oe24HRDQ5QCu4jHgN6XOtfFfLpRx3TXv/mEg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", "cpu": [ "loong64" ], @@ -457,15 +563,14 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=12" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.15.tgz", - "integrity": "sha512-b/tmngUfO02E00c1XnNTw/0DmloKjb6XQeqxaYuzGwHe0fHVgx5/D6CWi+XH1DvkszjBUkK9BX7n1ARTOst59w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", "cpu": [ "mips64el" ], @@ -474,15 +579,14 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=12" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.15.tgz", - "integrity": "sha512-KXPY69MWw79QJkyvUYb2ex/OgnN/8N/Aw5UDPlgoRtoEfcBqfeLodPr42UojV3NdkoO4u10NXQdamWm1YEzSKw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", "cpu": [ "ppc64" ], @@ -491,15 +595,14 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=12" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.15.tgz", - "integrity": "sha512-komK3NEAeeGRnvFEjX1SfVg6EmkfIi5aKzevdvJqMydYr9N+pRQK0PGJXk+bhoPZwOUgLO4l99FZmLGk/L1jWg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", "cpu": [ "riscv64" ], @@ -508,15 +611,14 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=12" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.15.tgz", - "integrity": "sha512-632T5Ts6gQ2WiMLWRRyeflPAm44u2E/s/TJvn+BP6M5mnHSk93cieaypj3VSMYO2ePTCRqAFXtuYi1yv8uZJNA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", "cpu": [ "s390x" ], @@ -525,15 +627,14 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=12" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.15.tgz", - "integrity": "sha512-MsHtX0NgvRHsoOtYkuxyk4Vkmvk3PLRWfA4okK7c+6dT0Fu4SUqXAr9y4Q3d8vUf1VWWb6YutpL4XNe400iQ1g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", "cpu": [ "x64" ], @@ -542,15 +643,14 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=12" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.15.tgz", - "integrity": "sha512-djST6s+jQiwxMIVQ5rlt24JFIAr4uwUnzceuFL7BQT4CbrRtqBPueS4GjXSiIpmwVri1Icj/9pFRJ7/aScvT+A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", "cpu": [ "x64" ], @@ -559,15 +659,14 @@ "os": [ "netbsd" ], - "peer": true, "engines": { "node": ">=12" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.15.tgz", - "integrity": "sha512-naeRhUIvhsgeounjkF5mvrNAVMGAm6EJWiabskeE5yOeBbLp7T89tAEw0j5Jm/CZAwyLe3c67zyCWH6fsBLCpw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", "cpu": [ "x64" ], @@ -576,15 +675,14 @@ "os": [ "openbsd" ], - "peer": true, "engines": { "node": ">=12" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.15.tgz", - "integrity": "sha512-qkT2+WxyKbNIKV1AEhI8QiSIgTHMcRctzSaa/I3kVgMS5dl3fOeoqkb7pW76KwxHoriImhx7Mg3TwN/auMDsyQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", "cpu": [ "x64" ], @@ -593,15 +691,14 @@ "os": [ "sunos" ], - "peer": true, "engines": { "node": ">=12" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.15.tgz", - "integrity": "sha512-HC4/feP+pB2Vb+cMPUjAnFyERs+HJN7E6KaeBlFdBv799MhD+aPJlfi/yk36SED58J9TPwI8MAcVpJgej4ud0A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", "cpu": [ "arm64" ], @@ -610,15 +707,14 @@ "os": [ "win32" ], - "peer": true, "engines": { "node": ">=12" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.15.tgz", - "integrity": "sha512-ovjwoRXI+gf52EVF60u9sSDj7myPixPxqzD5CmkEUmvs+W9Xd0iqISVBQn8xcx4ciIaIVlWCuTbYDOXOnOL44Q==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", "cpu": [ "ia32" ], @@ -627,15 +723,14 @@ "os": [ "win32" ], - "peer": true, "engines": { "node": ">=12" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.15.tgz", - "integrity": "sha512-imUxH9a3WJARyAvrG7srLyiK73XdX83NXQkjKvQ+7vPh3ZxoLrzvPkQKKw2DwZ+RV2ZB6vBfNHP8XScAmQC3aA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", "cpu": [ "x64" ], @@ -644,83 +739,139 @@ "os": [ "win32" ], - "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@iconify-json/simple-icons": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@iconify-json/simple-icons/-/simple-icons-1.2.11.tgz", + "integrity": "sha512-AHCGDtBRqP+JzAbBzgO8uN/08CXxEmuaC6lQQZ3b5burKhRU12AJnJczwbUw2K5Mb/U85EpSUNhYMG3F28b8NA==", + "dev": true, + "dependencies": { + "@iconify/types": "*" + } + }, + "node_modules/@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", + "dev": true + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, "engines": { "node": ">=12" } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, - "optional": true, - "peer": true, "dependencies": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, - "optional": true, - "peer": true, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, - "optional": true, - "peer": true, "engines": { "node": ">=6.0.0" } }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, - "optional": true, - "peer": true, "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, - "optional": true, - "peer": true, "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.5.0.tgz", - "integrity": "sha512-OINaBGY+Wc++U0rdr7BLuFClxcoWaVW3vQYqmQq6B3bqQ/2olkaoz+K8+af/Mmka/C2yN5j+L9scBkv4BtKsDA==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.4.tgz", + "integrity": "sha512-jfUJrFct/hTA0XDM5p/htWKoNNTbDLY0KRwEt6pyOA6k2fmk0WVwl65PdUdJZgzGEHWx+49LilkcSaumQRyNQw==", "cpu": [ "arm" ], @@ -731,9 +882,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.5.0.tgz", - "integrity": "sha512-UdMf1pOQc4ZmUA/NTmKhgJTBimbSKnhPS2zJqucqFyBRFPnPDtwA8MzrGNTjDeQbIAWfpJVAlxejw+/lQyBK/w==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.4.tgz", + "integrity": "sha512-j4nrEO6nHU1nZUuCfRKoCcvh7PIywQPUCBa2UsootTHvTHIoIu2BzueInGJhhvQO/2FTRdNYpf63xsgEqH9IhA==", "cpu": [ "arm64" ], @@ -744,9 +895,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.5.0.tgz", - "integrity": "sha512-L0/CA5p/idVKI+c9PcAPGorH6CwXn6+J0Ys7Gg1axCbTPgI8MeMlhA6fLM9fK+ssFhqogMHFC8HDvZuetOii7w==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.4.tgz", + "integrity": "sha512-GmU/QgGtBTeraKyldC7cDVVvAJEOr3dFLKneez/n7BvX57UdhOqDsVwzU7UOnYA7AAOt+Xb26lk79PldDHgMIQ==", "cpu": [ "arm64" ], @@ -757,9 +908,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.5.0.tgz", - "integrity": "sha512-QZCbVqU26mNlLn8zi/XDDquNmvcr4ON5FYAHQQsyhrHx8q+sQi/6xduoznYXwk/KmKIXG5dLfR0CvY+NAWpFYQ==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.4.tgz", + "integrity": "sha512-N6oDBiZCBKlwYcsEPXGDE4g9RoxZLK6vT98M8111cW7VsVJFpNEqvJeIPfsCzbf0XEakPslh72X0gnlMi4Ddgg==", "cpu": [ "x64" ], @@ -769,10 +920,49 @@ "darwin" ] }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.24.4.tgz", + "integrity": "sha512-py5oNShCCjCyjWXCZNrRGRpjWsF0ic8f4ieBNra5buQz0O/U6mMXCpC1LvrHuhJsNPgRt36tSYMidGzZiJF6mw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.24.4.tgz", + "integrity": "sha512-L7VVVW9FCnTTp4i7KrmHeDsDvjB4++KOBENYtNYAiYl96jeBThFfhP6HVxL74v4SiZEVDH/1ILscR5U9S4ms4g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.5.0.tgz", - "integrity": "sha512-VpSQ+xm93AeV33QbYslgf44wc5eJGYfYitlQzAi3OObu9iwrGXEnmu5S3ilkqE3Pr/FkgOiJKV/2p0ewf4Hrtg==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.4.tgz", + "integrity": "sha512-10ICosOwYChROdQoQo589N5idQIisxjaFE/PAnX2i0Zr84mY0k9zul1ArH0rnJ/fpgiqfu13TFZR5A5YJLOYZA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.4.tgz", + "integrity": "sha512-ySAfWs69LYC7QhRDZNKqNhz2UKN8LDfbKSMAEtoEI0jitwfAG2iZwVqGACJT+kfYvvz3/JgsLlcBP+WWoKCLcw==", "cpu": [ "arm" ], @@ -783,9 +973,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.5.0.tgz", - "integrity": "sha512-OrEyIfpxSsMal44JpEVx9AEcGpdBQG1ZuWISAanaQTSMeStBW+oHWwOkoqR54bw3x8heP8gBOyoJiGg+fLY8qQ==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.4.tgz", + "integrity": "sha512-uHYJ0HNOI6pGEeZ/5mgm5arNVTI0nLlmrbdph+pGXpC9tFHFDQmDMOEqkmUObRfosJqpU8RliYoGz06qSdtcjg==", "cpu": [ "arm64" ], @@ -796,9 +986,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.5.0.tgz", - "integrity": "sha512-1H7wBbQuE6igQdxMSTjtFfD+DGAudcYWhp106z/9zBA8OQhsJRnemO4XGavdzHpGhRtRxbgmUGdO3YQgrWf2RA==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.4.tgz", + "integrity": "sha512-38yiWLemQf7aLHDgTg85fh3hW9stJ0Muk7+s6tIkSUOMmi4Xbv5pH/5Bofnsb6spIwD5FJiR+jg71f0CH5OzoA==", "cpu": [ "arm64" ], @@ -808,10 +998,49 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.4.tgz", + "integrity": "sha512-q73XUPnkwt9ZNF2xRS4fvneSuaHw2BXuV5rI4cw0fWYVIWIBeDZX7c7FWhFQPNTnE24172K30I+dViWRVD9TwA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.4.tgz", + "integrity": "sha512-Aie/TbmQi6UXokJqDZdmTJuZBCU3QBDA8oTKRGtd4ABi/nHgXICulfg1KI6n9/koDsiDbvHAiQO3YAUNa/7BCw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.4.tgz", + "integrity": "sha512-P8MPErVO/y8ohWSP9JY7lLQ8+YMHfTI4bAdtCi3pC2hTeqFJco2jYspzOzTUB8hwUWIIu1xwOrJE11nP+0JFAQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.5.0.tgz", - "integrity": "sha512-FVyFI13tXw5aE65sZdBpNjPVIi4Q5mARnL/39UIkxvSgRAIqCo5sCpCELk0JtXHGee2owZz5aNLbWNfBHzr71Q==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.4.tgz", + "integrity": "sha512-K03TljaaoPK5FOyNMZAAEmhlyO49LaE4qCsr0lYHUKyb6QacTNF9pnfPpXnFlFD3TXuFbFbz7tJ51FujUXkXYA==", "cpu": [ "x64" ], @@ -822,9 +1051,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.5.0.tgz", - "integrity": "sha512-eBPYl2sLpH/o8qbSz6vPwWlDyThnQjJfcDOGFbNjmjb44XKC1F5dQfakOsADRVrXCNzM6ZsSIPDG5dc6HHLNFg==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.4.tgz", + "integrity": "sha512-VJYl4xSl/wqG2D5xTYncVWW+26ICV4wubwN9Gs5NrqhJtayikwCXzPL8GDsLnaLU3WwhQ8W02IinYSFJfyo34Q==", "cpu": [ "x64" ], @@ -835,9 +1064,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.5.0.tgz", - "integrity": "sha512-xaOHIfLOZypoQ5U2I6rEaugS4IYtTgP030xzvrBf5js7p9WI9wik07iHmsKaej8Z83ZDxN5GyypfoyKV5O5TJA==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.4.tgz", + "integrity": "sha512-ku2GvtPwQfCqoPFIJCqZ8o7bJcj+Y54cZSr43hHca6jLwAiCbZdBUOrqE6y29QFajNAzzpIOwsckaTFmN6/8TA==", "cpu": [ "arm64" ], @@ -848,9 +1077,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.5.0.tgz", - "integrity": "sha512-Al6quztQUrHwcOoU2TuFblUQ5L+/AmPBXFR6dUvyo4nRj2yQRK0WIUaGMF/uwKulvRcXkpHe3k9A8Vf93VDktA==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.4.tgz", + "integrity": "sha512-V3nCe+eTt/W6UYNr/wGvO1fLpHUrnlirlypZfKCT1fG6hWfqhPgQV/K/mRBXBpxc0eKLIF18pIOFVPh0mqHjlg==", "cpu": [ "ia32" ], @@ -861,9 +1090,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.5.0.tgz", - "integrity": "sha512-8kdW+brNhI/NzJ4fxDufuJUjepzINqJKLGHuxyAtpPG9bMbn8P5mtaCcbOm0EzLJ+atg+kF9dwg8jpclkVqx5w==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.4.tgz", + "integrity": "sha512-LTw1Dfd0mBIEqUVCxbvTE/LLo+9ZxVC9k99v1v4ahg9Aak6FpqOfNu5kRkeTAn0wphoC4JU7No1/rL+bBCEwhg==", "cpu": [ "x64" ], @@ -873,6 +1102,66 @@ "win32" ] }, + "node_modules/@shikijs/core": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.22.2.tgz", + "integrity": "sha512-bvIQcd8BEeR1yFvOYv6HDiyta2FFVePbzeowf5pPS1avczrPK+cjmaxxh0nx5QzbON7+Sv0sQfQVciO7bN72sg==", + "dev": true, + "dependencies": { + "@shikijs/engine-javascript": "1.22.2", + "@shikijs/engine-oniguruma": "1.22.2", + "@shikijs/types": "1.22.2", + "@shikijs/vscode-textmate": "^9.3.0", + "@types/hast": "^3.0.4", + "hast-util-to-html": "^9.0.3" + } + }, + "node_modules/@shikijs/engine-javascript": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-1.22.2.tgz", + "integrity": "sha512-iOvql09ql6m+3d1vtvP8fLCVCK7BQD1pJFmHIECsujB0V32BJ0Ab6hxk1ewVSMFA58FI0pR2Had9BKZdyQrxTw==", + "dev": true, + "dependencies": { + "@shikijs/types": "1.22.2", + "@shikijs/vscode-textmate": "^9.3.0", + "oniguruma-to-js": "0.4.3" + } + }, + "node_modules/@shikijs/engine-oniguruma": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.22.2.tgz", + "integrity": "sha512-GIZPAGzQOy56mGvWMoZRPggn0dTlBf1gutV5TdceLCZlFNqWmuc7u+CzD0Gd9vQUTgLbrt0KLzz6FNprqYAxlA==", + "dev": true, + "dependencies": { + "@shikijs/types": "1.22.2", + "@shikijs/vscode-textmate": "^9.3.0" + } + }, + "node_modules/@shikijs/transformers": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-1.22.2.tgz", + "integrity": "sha512-8f78OiBa6pZDoZ53lYTmuvpFPlWtevn23bzG+azpPVvZg7ITax57o/K3TC91eYL3OMJOO0onPbgnQyZjRos8XQ==", + "dev": true, + "dependencies": { + "shiki": "1.22.2" + } + }, + "node_modules/@shikijs/types": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.22.2.tgz", + "integrity": "sha512-NCWDa6LGZqTuzjsGfXOBWfjS/fDIbDdmVDug+7ykVe1IKT4c1gakrvlfFYp5NhAXH/lyqLM8wsAPo5wNy73Feg==", + "dev": true, + "dependencies": { + "@shikijs/vscode-textmate": "^9.3.0", + "@types/hast": "^3.0.4" + } + }, + "node_modules/@shikijs/vscode-textmate": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-9.3.0.tgz", + "integrity": "sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==", + "dev": true + }, "node_modules/@tootallnate/once": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", @@ -882,6 +1171,21 @@ "node": ">= 10" } }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dev": true, + "dependencies": { + "@types/unist": "*" + } + }, "node_modules/@types/jsdom": { "version": "21.1.5", "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.5.tgz", @@ -894,15 +1198,34 @@ } }, "node_modules/@types/linkify-it": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", - "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", "dev": true }, + "node_modules/@types/markdown-it": { + "version": "14.1.2", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", + "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", + "dev": true, + "dependencies": { + "@types/linkify-it": "^5", + "@types/mdurl": "^2" + } + }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dev": true, + "dependencies": { + "@types/unist": "*" + } + }, "node_modules/@types/mdurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", - "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", "dev": true }, "node_modules/@types/node": { @@ -923,162 +1246,189 @@ "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", "dev": true }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true + }, "node_modules/@types/web-bluetooth": { "version": "0.0.20", "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz", "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==", "dev": true }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, "node_modules/@vitejs/plugin-vue": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.5.0.tgz", - "integrity": "sha512-a2WSpP8X8HTEww/U00bU4mX1QpLINNuz/2KMNpLsdu3BzOpak3AGI1CJYBTXcc4SPhaD0eNRUp7IyQK405L5dQ==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.1.4.tgz", + "integrity": "sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A==", "dev": true, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": "^18.0.0 || >=20.0.0" }, "peerDependencies": { - "vite": "^4.0.0 || ^5.0.0", + "vite": "^5.0.0", "vue": "^3.2.25" } }, "node_modules/@vue/compiler-core": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.8.tgz", - "integrity": "sha512-hN/NNBUECw8SusQvDSqqcVv6gWq8L6iAktUR0UF3vGu2OhzRqcOiAno0FmBJWwxhYEXRlQJT5XnoKsVq1WZx4g==", + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.12.tgz", + "integrity": "sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==", "dev": true, "dependencies": { - "@babel/parser": "^7.23.0", - "@vue/shared": "3.3.8", + "@babel/parser": "^7.25.3", + "@vue/shared": "3.5.12", + "entities": "^4.5.0", "estree-walker": "^2.0.2", - "source-map-js": "^1.0.2" + "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-dom": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.8.tgz", - "integrity": "sha512-+PPtv+p/nWDd0AvJu3w8HS0RIm/C6VGBIRe24b9hSyNWOAPEUosFZ5diwawwP8ip5sJ8n0Pe87TNNNHnvjs0FQ==", + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.12.tgz", + "integrity": "sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg==", "dev": true, "dependencies": { - "@vue/compiler-core": "3.3.8", - "@vue/shared": "3.3.8" + "@vue/compiler-core": "3.5.12", + "@vue/shared": "3.5.12" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.8.tgz", - "integrity": "sha512-WMzbUrlTjfYF8joyT84HfwwXo+8WPALuPxhy+BZ6R4Aafls+jDBnSz8PDz60uFhuqFbl3HxRfxvDzrUf3THwpA==", + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.12.tgz", + "integrity": "sha512-2k973OGo2JuAa5+ZlekuQJtitI5CgLMOwgl94BzMCsKZCX/xiqzJYzapl4opFogKHqwJk34vfsaKpfEhd1k5nw==", "dev": true, "dependencies": { - "@babel/parser": "^7.23.0", - "@vue/compiler-core": "3.3.8", - "@vue/compiler-dom": "3.3.8", - "@vue/compiler-ssr": "3.3.8", - "@vue/reactivity-transform": "3.3.8", - "@vue/shared": "3.3.8", + "@babel/parser": "^7.25.3", + "@vue/compiler-core": "3.5.12", + "@vue/compiler-dom": "3.5.12", + "@vue/compiler-ssr": "3.5.12", + "@vue/shared": "3.5.12", "estree-walker": "^2.0.2", - "magic-string": "^0.30.5", - "postcss": "^8.4.31", - "source-map-js": "^1.0.2" + "magic-string": "^0.30.11", + "postcss": "^8.4.47", + "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.8.tgz", - "integrity": "sha512-hXCqQL/15kMVDBuoBYpUnSYT8doDNwsjvm3jTefnXr+ytn294ySnT8NlsFHmTgKNjwpuFy7XVV8yTeLtNl/P6w==", + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.12.tgz", + "integrity": "sha512-eLwc7v6bfGBSM7wZOGPmRavSWzNFF6+PdRhE+VFJhNCgHiF8AM7ccoqcv5kBXA2eWUfigD7byekvf/JsOfKvPA==", "dev": true, "dependencies": { - "@vue/compiler-dom": "3.3.8", - "@vue/shared": "3.3.8" + "@vue/compiler-dom": "3.5.12", + "@vue/shared": "3.5.12" } }, "node_modules/@vue/devtools-api": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.1.tgz", - "integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==", - "dev": true + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.6.3.tgz", + "integrity": "sha512-H2TRzFA9hNezdtM6I0y3RCMhIg5T3gib/p9qI2IAS8gB9tvkAv4JZHAZZl5BZHhO7btuHkvHzU5qpO/vdsjYMg==", + "dev": true, + "dependencies": { + "@vue/devtools-kit": "^7.6.3" + } }, - "node_modules/@vue/reactivity": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.8.tgz", - "integrity": "sha512-ctLWitmFBu6mtddPyOKpHg8+5ahouoTCRtmAHZAXmolDtuZXfjL2T3OJ6DL6ezBPQB1SmMnpzjiWjCiMYmpIuw==", + "node_modules/@vue/devtools-kit": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.6.3.tgz", + "integrity": "sha512-ETsFc8GlOp04rSFN79tB2TpVloWfsSx9BoCSElV3w3CaJTSBfz42KsIi5Ka+dNTJs1jY7QVLTDeoBmUGgA9h2A==", "dev": true, "dependencies": { - "@vue/shared": "3.3.8" + "@vue/devtools-shared": "^7.6.3", + "birpc": "^0.2.19", + "hookable": "^5.5.3", + "mitt": "^3.0.1", + "perfect-debounce": "^1.0.0", + "speakingurl": "^14.0.1", + "superjson": "^2.2.1" } }, - "node_modules/@vue/reactivity-transform": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.8.tgz", - "integrity": "sha512-49CvBzmZNtcHua0XJ7GdGifM8GOXoUMOX4dD40Y5DxI3R8OUhMlvf2nvgUAcPxaXiV5MQQ1Nwy09ADpnLQUqRw==", + "node_modules/@vue/devtools-shared": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.6.3.tgz", + "integrity": "sha512-wJW5QF27i16+sNQIaes8QoEZg1eqEgF83GkiPUlEQe9k7ZoHXHV7PRrnrxOKem42sIHPU813J2V/ZK1uqTJe6g==", "dev": true, "dependencies": { - "@babel/parser": "^7.23.0", - "@vue/compiler-core": "3.3.8", - "@vue/shared": "3.3.8", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.5" + "rfdc": "^1.4.1" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.12.tgz", + "integrity": "sha512-UzaN3Da7xnJXdz4Okb/BGbAaomRHc3RdoWqTzlvd9+WBR5m3J39J1fGcHes7U3za0ruYn/iYy/a1euhMEHvTAg==", + "dev": true, + "dependencies": { + "@vue/shared": "3.5.12" } }, "node_modules/@vue/runtime-core": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.8.tgz", - "integrity": "sha512-qurzOlb6q26KWQ/8IShHkMDOuJkQnQcTIp1sdP4I9MbCf9FJeGVRXJFr2mF+6bXh/3Zjr9TDgURXrsCr9bfjUw==", + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.12.tgz", + "integrity": "sha512-hrMUYV6tpocr3TL3Ad8DqxOdpDe4zuQY4HPY3X/VRh+L2myQO8MFXPAMarIOSGNu0bFAjh1yBkMPXZBqCk62Uw==", "dev": true, "dependencies": { - "@vue/reactivity": "3.3.8", - "@vue/shared": "3.3.8" + "@vue/reactivity": "3.5.12", + "@vue/shared": "3.5.12" } }, "node_modules/@vue/runtime-dom": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.8.tgz", - "integrity": "sha512-Noy5yM5UIf9UeFoowBVgghyGGPIDPy1Qlqt0yVsUdAVbqI8eeMSsTqBtauaEoT2UFXUk5S64aWVNJN4MJ2vRdA==", + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.12.tgz", + "integrity": "sha512-q8VFxR9A2MRfBr6/55Q3umyoN7ya836FzRXajPB6/Vvuv0zOPL+qltd9rIMzG/DbRLAIlREmnLsplEF/kotXKA==", "dev": true, "dependencies": { - "@vue/runtime-core": "3.3.8", - "@vue/shared": "3.3.8", - "csstype": "^3.1.2" + "@vue/reactivity": "3.5.12", + "@vue/runtime-core": "3.5.12", + "@vue/shared": "3.5.12", + "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.8.tgz", - "integrity": "sha512-zVCUw7RFskvPuNlPn/8xISbrf0zTWsTSdYTsUTN1ERGGZGVnRxM2QZ3x1OR32+vwkkCm0IW6HmJ49IsPm7ilLg==", + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.12.tgz", + "integrity": "sha512-I3QoeDDeEPZm8yR28JtY+rk880Oqmj43hreIBVTicisFTx/Dl7JpG72g/X7YF8hnQD3IFhkky5i2bPonwrTVPg==", "dev": true, "dependencies": { - "@vue/compiler-ssr": "3.3.8", - "@vue/shared": "3.3.8" + "@vue/compiler-ssr": "3.5.12", + "@vue/shared": "3.5.12" }, "peerDependencies": { - "vue": "3.3.8" + "vue": "3.5.12" } }, "node_modules/@vue/shared": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.8.tgz", - "integrity": "sha512-8PGwybFwM4x8pcfgqEQFy70NaQxASvOC5DJwLQfpArw1UDfUXrJkdxD3BhVTMS+0Lef/TU7YO0Jvr0jJY8T+mw==", + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.12.tgz", + "integrity": "sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==", "dev": true }, "node_modules/@vueuse/core": { - "version": "10.6.1", - "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.6.1.tgz", - "integrity": "sha512-Pc26IJbqgC9VG1u6VY/xrXXfxD33hnvxBnKrLlA2LJlyHII+BSrRoTPJgGYq7qZOu61itITFUnm6QbacwZ4H8Q==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-11.2.0.tgz", + "integrity": "sha512-JIUwRcOqOWzcdu1dGlfW04kaJhW3EXnnjJJfLTtddJanymTL7lF1C0+dVVZ/siLfc73mWn+cGP1PE1PKPruRSA==", "dev": true, "dependencies": { "@types/web-bluetooth": "^0.0.20", - "@vueuse/metadata": "10.6.1", - "@vueuse/shared": "10.6.1", - "vue-demi": ">=0.14.6" + "@vueuse/metadata": "11.2.0", + "@vueuse/shared": "11.2.0", + "vue-demi": ">=0.14.10" }, "funding": { "url": "https://github.com/sponsors/antfu" } }, "node_modules/@vueuse/core/node_modules/vue-demi": { - "version": "0.14.6", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz", - "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==", + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", "dev": true, "hasInstallScript": true, "bin": { @@ -1102,31 +1452,31 @@ } }, "node_modules/@vueuse/integrations": { - "version": "10.6.1", - "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-10.6.1.tgz", - "integrity": "sha512-mPDupuofMJ4DPmtX/FfP1MajmWRzYDv8WSaTCo8LQ5kFznjWgmUQ16ApjYqgMquqffNY6+IRMdMgosLDRZOSZA==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-11.2.0.tgz", + "integrity": "sha512-zGXz3dsxNHKwiD9jPMvR3DAxQEOV6VWIEYTGVSB9PNpk4pTWR+pXrHz9gvXWcP2sTk3W2oqqS6KwWDdntUvNVA==", "dev": true, "dependencies": { - "@vueuse/core": "10.6.1", - "@vueuse/shared": "10.6.1", - "vue-demi": ">=0.14.6" + "@vueuse/core": "11.2.0", + "@vueuse/shared": "11.2.0", + "vue-demi": ">=0.14.10" }, "funding": { "url": "https://github.com/sponsors/antfu" }, "peerDependencies": { - "async-validator": "*", - "axios": "*", - "change-case": "*", - "drauu": "*", - "focus-trap": "*", - "fuse.js": "*", - "idb-keyval": "*", - "jwt-decode": "*", - "nprogress": "*", - "qrcode": "*", - "sortablejs": "*", - "universal-cookie": "*" + "async-validator": "^4", + "axios": "^1", + "change-case": "^5", + "drauu": "^0.4", + "focus-trap": "^7", + "fuse.js": "^7", + "idb-keyval": "^6", + "jwt-decode": "^4", + "nprogress": "^0.2", + "qrcode": "^1.5", + "sortablejs": "^1", + "universal-cookie": "^7" }, "peerDependenciesMeta": { "async-validator": { @@ -1168,9 +1518,9 @@ } }, "node_modules/@vueuse/integrations/node_modules/vue-demi": { - "version": "0.14.6", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz", - "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==", + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", "dev": true, "hasInstallScript": true, "bin": { @@ -1194,30 +1544,30 @@ } }, "node_modules/@vueuse/metadata": { - "version": "10.6.1", - "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.6.1.tgz", - "integrity": "sha512-qhdwPI65Bgcj23e5lpGfQsxcy0bMjCAsUGoXkJ7DsoeDUdasbZ2DBa4dinFCOER3lF4gwUv+UD2AlA11zdzMFw==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-11.2.0.tgz", + "integrity": "sha512-L0ZmtRmNx+ZW95DmrgD6vn484gSpVeRbgpWevFKXwqqQxW9hnSi2Ppuh2BzMjnbv4aJRiIw8tQatXT9uOB23dQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/antfu" } }, "node_modules/@vueuse/shared": { - "version": "10.6.1", - "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.6.1.tgz", - "integrity": "sha512-TECVDTIedFlL0NUfHWncf3zF9Gc4VfdxfQc8JFwoVZQmxpONhLxFrlm0eHQeidHj4rdTPL3KXJa0TZCk1wnc5Q==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-11.2.0.tgz", + "integrity": "sha512-VxFjie0EanOudYSgMErxXfq6fo8vhr5ICI+BuE3I9FnX7ePllEsVrRQ7O6Q1TLgApeLuPKcHQxAXpP+KnlrJsg==", "dev": true, "dependencies": { - "vue-demi": ">=0.14.6" + "vue-demi": ">=0.14.10" }, "funding": { "url": "https://github.com/sponsors/antfu" } }, "node_modules/@vueuse/shared/node_modules/vue-demi": { - "version": "0.14.6", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz", - "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==", + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", "dev": true, "hasInstallScript": true, "bin": { @@ -1246,67 +1596,77 @@ "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", "dev": true }, - "node_modules/acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, - "optional": true, - "peer": true, - "bin": { - "acorn": "bin/acorn" - }, + "dependencies": { + "debug": "4" + }, "engines": { - "node": ">=0.4.0" + "node": ">= 6.0.0" } }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "node_modules/algoliasearch": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.12.0.tgz", + "integrity": "sha512-psGBRYdGgik8I6m28iAB8xpubvjEt7UQU+w5MAJUA2324WHiGoHap5BPkkjB14rMaXeRts6pmOsrVIglGyOVwg==", "dev": true, "dependencies": { - "debug": "4" + "@algolia/client-abtesting": "5.12.0", + "@algolia/client-analytics": "5.12.0", + "@algolia/client-common": "5.12.0", + "@algolia/client-insights": "5.12.0", + "@algolia/client-personalization": "5.12.0", + "@algolia/client-query-suggestions": "5.12.0", + "@algolia/client-search": "5.12.0", + "@algolia/ingestion": "1.12.0", + "@algolia/monitoring": "1.12.0", + "@algolia/recommend": "5.12.0", + "@algolia/requester-browser-xhr": "5.12.0", + "@algolia/requester-fetch": "5.12.0", + "@algolia/requester-node-http": "5.12.0" }, "engines": { - "node": ">= 6.0.0" + "node": ">= 14.0.0" } }, - "node_modules/algoliasearch": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.19.1.tgz", - "integrity": "sha512-IJF5b93b2MgAzcE/tuzW0yOPnuUyRgGAtaPv5UUywXM8kzqfdwZTO4sPJBzoGz1eOy6H9uEchsJsBFTELZSu+g==", - "dev": true, - "dependencies": { - "@algolia/cache-browser-local-storage": "4.19.1", - "@algolia/cache-common": "4.19.1", - "@algolia/cache-in-memory": "4.19.1", - "@algolia/client-account": "4.19.1", - "@algolia/client-analytics": "4.19.1", - "@algolia/client-common": "4.19.1", - "@algolia/client-personalization": "4.19.1", - "@algolia/client-search": "4.19.1", - "@algolia/logger-common": "4.19.1", - "@algolia/logger-console": "4.19.1", - "@algolia/requester-browser-xhr": "4.19.1", - "@algolia/requester-common": "4.19.1", - "@algolia/requester-node-http": "4.19.1", - "@algolia/transporter": "4.19.1" - } - }, - "node_modules/ansi-sequence-parser": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz", - "integrity": "sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==", + "node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", "dev": true }, "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, - "optional": true, - "peer": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -1315,58 +1675,199 @@ "node": ">= 8" } }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true }, + "node_modules/autoprefixer": { + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, - "optional": true, - "peer": true, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/birpc": { + "version": "0.2.19", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-0.2.19.tgz", + "integrity": "sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, - "optional": true, - "peer": true, "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" } }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "node_modules/browserslist": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", "dev": true, - "optional": true, - "peer": true + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001687", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001687.tgz", + "integrity": "sha512-0S/FDhf4ZiqrTUiQ39dKeUjYRjkv7lOZU1Dgif2rIqrTzX/1wV2hfKu9TOm1IHkdSijfLswxTFzl/cvir+SLSQ==", "dev": true, "funding": [ { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } - ], - "optional": true, - "peer": true, + ] + }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -1379,10 +1880,43 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -1395,13 +1929,53 @@ "node": ">= 0.8" } }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", "dev": true, - "optional": true, - "peer": true + "engines": { + "node": ">= 6" + } + }, + "node_modules/copy-anything": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz", + "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", + "dev": true, + "dependencies": { + "is-what": "^4.1.8" + }, + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } }, "node_modules/cssesc": { "version": "3.0.0", @@ -1428,9 +2002,9 @@ } }, "node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", "dev": true }, "node_modules/data-urls": { @@ -1479,6 +2053,40 @@ "node": ">=0.4.0" } }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "dev": true, + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, "node_modules/domexception": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", @@ -1491,13 +2099,42 @@ "node": ">=12" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.5.72", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.72.tgz", + "integrity": "sha512-ZpSAUOZ2Izby7qnZluSrAlGgGQzucmFbN0n64dYzocYxnxV5ufurpj3VgEe4cUp7ir9LmeLxNYo8bVnlM8bQHw==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/esbuild": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.15.tgz", - "integrity": "sha512-3WOOLhrvuTGPRzQPU6waSDWrDTnQriia72McWcn6UCi43GhCHrXH4S59hKMeez+IITmdUuUyvbU9JIp+t3xlPQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, "hasInstallScript": true, - "peer": true, "bin": { "esbuild": "bin/esbuild" }, @@ -1505,28 +2142,38 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.18.15", - "@esbuild/android-arm64": "0.18.15", - "@esbuild/android-x64": "0.18.15", - "@esbuild/darwin-arm64": "0.18.15", - "@esbuild/darwin-x64": "0.18.15", - "@esbuild/freebsd-arm64": "0.18.15", - "@esbuild/freebsd-x64": "0.18.15", - "@esbuild/linux-arm": "0.18.15", - "@esbuild/linux-arm64": "0.18.15", - "@esbuild/linux-ia32": "0.18.15", - "@esbuild/linux-loong64": "0.18.15", - "@esbuild/linux-mips64el": "0.18.15", - "@esbuild/linux-ppc64": "0.18.15", - "@esbuild/linux-riscv64": "0.18.15", - "@esbuild/linux-s390x": "0.18.15", - "@esbuild/linux-x64": "0.18.15", - "@esbuild/netbsd-x64": "0.18.15", - "@esbuild/openbsd-x64": "0.18.15", - "@esbuild/sunos-x64": "0.18.15", - "@esbuild/win32-arm64": "0.18.15", - "@esbuild/win32-ia32": "0.18.15", - "@esbuild/win32-x64": "0.18.15" + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "engines": { + "node": ">=6" } }, "node_modules/estree-walker": { @@ -1535,13 +2182,48 @@ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "dev": true }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, - "optional": true, - "peer": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -1550,14 +2232,30 @@ } }, "node_modules/focus-trap": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.4.tgz", - "integrity": "sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.6.0.tgz", + "integrity": "sha512-1td0l3pMkWJLFipobUcGaf+5DTY4PLDDrcqoSaKP8ediO/CoWCCYk/fT/Y2A4e6TNB+Sh6clRJCjOPPnKoNHnQ==", "dev": true, "dependencies": { "tabbable": "^6.2.0" } }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -1572,6 +2270,19 @@ "node": ">= 6" } }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -1586,20 +2297,101 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, - "optional": true, - "peer": true, "dependencies": { - "is-glob": "^4.0.1" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 6" + "node": ">=10.13.0" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hast-util-to-html": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.3.tgz", + "integrity": "sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==", + "dev": true, + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^3.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "dev": true, + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, + "node_modules/hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", + "dev": true + }, "node_modules/html-encoding-sniffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", @@ -1612,6 +2404,16 @@ "node": ">=12" } }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/http-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", @@ -1651,21 +2453,11 @@ "node": ">=0.10.0" } }, - "node_modules/immutable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", - "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, - "optional": true, - "peer": true, "dependencies": { "binary-extensions": "^2.0.0" }, @@ -1673,24 +2465,44 @@ "node": ">=8" } }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, - "optional": true, - "peer": true, "engines": { "node": ">=0.10.0" } }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, - "optional": true, - "peer": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -1703,8 +2515,6 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, - "optional": true, - "peer": true, "engines": { "node": ">=0.12.0" } @@ -1715,6 +2525,48 @@ "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "dev": true }, + "node_modules/is-what": { + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", + "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", + "dev": true, + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, "node_modules/jsdom": { "version": "22.1.0", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-22.1.0.tgz", @@ -1757,22 +2609,37 @@ } } }, - "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true }, "node_modules/magic-string": { - "version": "0.30.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", - "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "version": "0.30.12", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", + "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", "dev": true, "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" + "@jridgewell/sourcemap-codec": "^1.5.0" } }, "node_modules/mark.js": { @@ -1781,11 +2648,143 @@ "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==", "dev": true }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", + "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", + "dev": true, + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/medium-zoom": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/medium-zoom/-/medium-zoom-1.1.0.tgz", "integrity": "sha512-ewyDsp7k4InCUp3jRmwHBRFGyjBimKps/AJLjRSox+2q/2H4p/PNpQf+pwONWlJiOudkBXtbdmVbFjqyybfTmQ==" }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -1807,10 +2806,40 @@ "node": ">= 0.6" } }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/minisearch": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/minisearch/-/minisearch-6.2.0.tgz", - "integrity": "sha512-BECkorDF1TY2rGKt9XHdSeP9TP29yUbrAaCh/C03wpyf1vx3uYcP/+8XlMcpTkgoU0rBVnHMAOaP83Rc9Tm+TQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/minisearch/-/minisearch-7.1.0.tgz", + "integrity": "sha512-tv7c/uefWdEhcu6hvrfTihflgeEi2tN6VV7HJnCjK6VxM75QQJh4t9FwJCsA2EsRS8LCnu3W87CuGPWMocOLCA==", + "dev": true + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", "dev": true }, "node_modules/ms": { @@ -1819,10 +2848,21 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true, "funding": [ { @@ -1837,13 +2877,26 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, - "optional": true, - "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -1854,6 +2907,42 @@ "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==", "dev": true }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/oniguruma-to-js": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/oniguruma-to-js/-/oniguruma-to-js-0.4.3.tgz", + "integrity": "sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==", + "dev": true, + "dependencies": { + "regex": "^4.3.2" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true + }, "node_modules/parse5": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", @@ -1866,22 +2955,47 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/parse5/node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "engines": { - "node": ">=0.12" + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" }, "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/picocolors": { + "node_modules/perfect-debounce": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true }, "node_modules/picomatch": { @@ -1889,8 +3003,6 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "optional": true, - "peer": true, "engines": { "node": ">=8.6" }, @@ -1898,10 +3010,28 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "dev": true, "funding": [ { @@ -1918,18 +3048,114 @@ } ], "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" } }, - "node_modules/postcss-nesting": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-12.0.1.tgz", - "integrity": "sha512-6LCqCWP9pqwXw/njMvNK0hGY44Fxc4B2EsGbn6xDcxbNRzP8GYoxT7yabVVMLrX3quqOJ9hg2jYMsnkedOf8pA==", + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-nesting": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-12.0.1.tgz", + "integrity": "sha512-6LCqCWP9pqwXw/njMvNK0hGY44Fxc4B2EsGbn6xDcxbNRzP8GYoxT7yabVVMLrX3quqOJ9hg2jYMsnkedOf8pA==", "dev": true, "funding": [ { @@ -1953,9 +3179,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -1965,10 +3191,16 @@ "node": ">=4" } }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, "node_modules/preact": { - "version": "10.16.0", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.16.0.tgz", - "integrity": "sha512-XTSj3dJ4roKIC93pald6rWuB2qQJO9gO2iLLyTe87MrjQN+HklueLsmskbywEWqCHlclgz3/M4YLL2iBr9UmMA==", + "version": "10.24.3", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.24.3.tgz", + "integrity": "sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA==", "dev": true, "funding": { "type": "opencollective", @@ -1984,6 +3216,16 @@ "node": ">=6" } }, + "node_modules/property-information": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", @@ -2005,13 +3247,40 @@ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", "dev": true }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, - "optional": true, - "peer": true, "dependencies": { "picomatch": "^2.2.1" }, @@ -2019,26 +3288,85 @@ "node": ">=8.10.0" } }, + "node_modules/regex": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/regex/-/regex-4.4.0.tgz", + "integrity": "sha512-uCUSuobNVeqUupowbdZub6ggI5/JZkYyJdDogddJr60L764oxC2pMZov1fQ3wM9bdyzUILDG+Sqx6NAKAz9rKQ==", + "dev": true + }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true + }, "node_modules/rollup": { - "version": "3.29.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", - "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.4.tgz", + "integrity": "sha512-vGorVWIsWfX3xbcyAS+I047kFKapHYivmkaT63Smj77XwvLSJos6M1xGqZnBPFQFBRZDOcG1QnYEIxAvTr/HjA==", "dev": true, - "peer": true, + "dependencies": { + "@types/estree": "1.0.6" + }, "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=14.18.0", + "node": ">=18.0.0", "npm": ">=8.0.0" }, "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.24.4", + "@rollup/rollup-android-arm64": "4.24.4", + "@rollup/rollup-darwin-arm64": "4.24.4", + "@rollup/rollup-darwin-x64": "4.24.4", + "@rollup/rollup-freebsd-arm64": "4.24.4", + "@rollup/rollup-freebsd-x64": "4.24.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.4", + "@rollup/rollup-linux-arm-musleabihf": "4.24.4", + "@rollup/rollup-linux-arm64-gnu": "4.24.4", + "@rollup/rollup-linux-arm64-musl": "4.24.4", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.4", + "@rollup/rollup-linux-riscv64-gnu": "4.24.4", + "@rollup/rollup-linux-s390x-gnu": "4.24.4", + "@rollup/rollup-linux-x64-gnu": "4.24.4", + "@rollup/rollup-linux-x64-musl": "4.24.4", + "@rollup/rollup-win32-arm64-msvc": "4.24.4", + "@rollup/rollup-win32-ia32-msvc": "4.24.4", + "@rollup/rollup-win32-x64-msvc": "4.24.4", "fsevents": "~2.3.2" } }, @@ -2048,31 +3376,35 @@ "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==", "dev": true }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "node_modules/sass": { - "version": "1.64.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.64.0.tgz", - "integrity": "sha512-m7YtAGmQta9uANIUJwXesAJMSncqH+3INc8kdVXs6eV6GUC8Qu2IYKQSN8PRLgiQfpca697G94klm2leYMxSHw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, "node_modules/saxes": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", @@ -2086,698 +3418,541 @@ } }, "node_modules/search-insights": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.7.0.tgz", - "integrity": "sha512-GLbVaGgzYEKMvuJbHRhLi1qoBFnjXZGZ6l4LxOYPCp4lI2jDRB3jPU9/XNhMwv6kvnA9slTreq6pvK+b3o3aqg==", + "version": "2.17.2", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.2.tgz", + "integrity": "sha512-zFNpOpUO+tY2D85KrxJ+aqwnIfdEGi06UH2+xEb+Bp9Mwznmauqc9djbnBibJO5mpfUPPa8st6Sx65+vbeO45g==", + "dev": true, + "peer": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, - "peer": true, "engines": { - "node": ">=8.16.0" + "node": ">=8" } }, "node_modules/shiki": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.5.tgz", - "integrity": "sha512-1gCAYOcmCFONmErGTrS1fjzJLA7MGZmKzrBNX7apqSwhyITJg2O102uFzXUeBxNnEkDA9vHIKLyeKq0V083vIw==", + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.22.2.tgz", + "integrity": "sha512-3IZau0NdGKXhH2bBlUk4w1IHNxPh6A5B2sUpyY+8utLu2j/h1QpFkAaUA1bAMxOWWGtTWcAh531vnS4NJKS/lA==", "dev": true, "dependencies": { - "ansi-sequence-parser": "^1.1.0", - "jsonc-parser": "^3.2.0", - "vscode-oniguruma": "^1.7.0", - "vscode-textmate": "^8.0.0" + "@shikijs/core": "1.22.2", + "@shikijs/engine-javascript": "1.22.2", + "@shikijs/engine-oniguruma": "1.22.2", + "@shikijs/types": "1.22.2", + "@shikijs/vscode-textmate": "^9.3.0", + "@types/hast": "^3.0.4" } }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "optional": true, - "peer": true, "engines": { - "node": ">=0.10.0" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "node_modules/tabbable": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", - "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", - "dev": true - }, - "node_modules/terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "node_modules/speakingurl": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz", + "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==", "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, - "optional": true, - "peer": true, "dependencies": { - "is-number": "^7.0.0" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=8.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tough-cookie": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", - "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "engines": { - "node": ">= 4.0.0" + "node": ">=8" } }, - "node_modules/tr46": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", - "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", - "dev": true, - "dependencies": { - "punycode": "^2.3.0" - }, - "engines": { - "node": ">=14" - } + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true }, - "node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "dependencies": { + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=14.17" + "node": ">=8" } }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", "dev": true, "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/vite": { - "version": "4.4.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.6.tgz", - "integrity": "sha512-EY6Mm8vJ++S3D4tNAckaZfw3JwG3wa794Vt70M6cNJ6NxT87yhq7EC8Rcap3ahyHdo8AhCmV9PTk+vG1HiYn1A==", + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, - "peer": true, "dependencies": { - "esbuild": "^0.18.10", - "postcss": "^8.4.26", - "rollup": "^3.25.2" - }, - "bin": { - "vite": "bin/vite.js" + "ansi-regex": "^6.0.1" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": ">=12" }, "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - }, - "peerDependencies": { - "@types/node": ">= 14", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vitepress": { - "version": "1.0.0-rc.27", - "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.0.0-rc.27.tgz", - "integrity": "sha512-1qs1a5qPQxNOJN451HmNtKewxSIOk52qv1EdWtsO6V6kvrNxF2FFR3Inhj0W56Jcs8AKIdzKDKHNYIJhcyz3AA==", - "dev": true, - "dependencies": { - "@docsearch/css": "^3.5.2", - "@docsearch/js": "^3.5.2", - "@types/markdown-it": "^13.0.6", - "@vitejs/plugin-vue": "^4.5.0", - "@vue/devtools-api": "^6.5.1", - "@vueuse/core": "^10.6.1", - "@vueuse/integrations": "^10.6.1", - "focus-trap": "^7.5.4", - "mark.js": "8.11.1", - "minisearch": "^6.2.0", - "shiki": "^0.14.5", - "vite": "^5.0.0", - "vue": "^3.3.8" - }, - "bin": { - "vitepress": "bin/vitepress.js" - }, - "peerDependencies": { - "markdown-it-mathjax3": "^4.3.2", - "postcss": "^8.4.31" - }, - "peerDependenciesMeta": { - "markdown-it-mathjax3": { - "optional": true - }, - "postcss": { - "optional": true - } + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/vitepress/node_modules/@esbuild/android-arm": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.5.tgz", - "integrity": "sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==", - "cpu": [ - "arm" - ], + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "optional": true, - "os": [ - "android" - ], + "dependencies": { + "ansi-regex": "^5.0.1" + }, "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/vitepress/node_modules/@esbuild/android-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz", - "integrity": "sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==", - "cpu": [ - "arm64" - ], + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "optional": true, - "os": [ - "android" - ], "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/vitepress/node_modules/@esbuild/android-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.5.tgz", - "integrity": "sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==", - "cpu": [ - "x64" - ], + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", "dev": true, - "optional": true, - "os": [ - "android" - ], + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, "engines": { - "node": ">=12" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/vitepress/node_modules/@esbuild/darwin-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz", - "integrity": "sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==", - "cpu": [ - "arm64" - ], + "node_modules/superjson": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.1.tgz", + "integrity": "sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==", "dev": true, - "optional": true, - "os": [ - "darwin" - ], + "dependencies": { + "copy-anything": "^3.0.2" + }, "engines": { - "node": ">=12" + "node": ">=16" } }, - "node_modules/vitepress/node_modules/@esbuild/darwin-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz", - "integrity": "sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==", - "cpu": [ - "x64" - ], + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, - "optional": true, - "os": [ - "darwin" - ], "engines": { - "node": ">=12" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/vitepress/node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz", - "integrity": "sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true }, - "node_modules/vitepress/node_modules/@esbuild/freebsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz", - "integrity": "sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } + "node_modules/tabbable": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", + "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", + "dev": true }, - "node_modules/vitepress/node_modules/@esbuild/linux-arm": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz", - "integrity": "sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==", - "cpu": [ - "arm" - ], + "node_modules/tailwindcss": { + "version": "3.4.16", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.16.tgz", + "integrity": "sha512-TI4Cyx7gDiZ6r44ewaJmt0o6BrMCT5aK5e0rmJ/G9Xq3w7CX/5VXl/zIPEJZFUK5VEqwByyhqNPycPlvcK4ZNw==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.6", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, "engines": { - "node": ">=12" + "node": ">=14.0.0" } }, - "node_modules/vitepress/node_modules/@esbuild/linux-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz", - "integrity": "sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==", - "cpu": [ - "arm64" - ], + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "dependencies": { + "any-promise": "^1.0.0" } }, - "node_modules/vitepress/node_modules/@esbuild/linux-ia32": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz", - "integrity": "sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==", - "cpu": [ - "ia32" - ], + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, "engines": { - "node": ">=12" + "node": ">=0.8" } }, - "node_modules/vitepress/node_modules/@esbuild/linux-loong64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz", - "integrity": "sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==", - "cpu": [ - "loong64" - ], + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "is-number": "^7.0.0" + }, "engines": { - "node": ">=12" + "node": ">=8.0" } }, - "node_modules/vitepress/node_modules/@esbuild/linux-mips64el": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz", - "integrity": "sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==", - "cpu": [ - "mips64el" - ], + "node_modules/tough-cookie": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, "engines": { - "node": ">=12" + "node": ">=6" } }, - "node_modules/vitepress/node_modules/@esbuild/linux-ppc64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz", - "integrity": "sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==", - "cpu": [ - "ppc64" - ], + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", "dev": true, - "optional": true, - "os": [ - "linux" - ], "engines": { - "node": ">=12" + "node": ">= 4.0.0" } }, - "node_modules/vitepress/node_modules/@esbuild/linux-riscv64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz", - "integrity": "sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==", - "cpu": [ - "riscv64" - ], + "node_modules/tr46": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "punycode": "^2.3.0" + }, "engines": { - "node": ">=12" + "node": ">=14" } }, - "node_modules/vitepress/node_modules/@esbuild/linux-s390x": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz", - "integrity": "sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==", - "cpu": [ - "s390x" - ], + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/vitepress/node_modules/@esbuild/linux-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz", - "integrity": "sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, + "node_modules/typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, "engines": { - "node": ">=12" + "node": ">=14.17" } }, - "node_modules/vitepress/node_modules/@esbuild/netbsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz", - "integrity": "sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==", - "cpu": [ - "x64" - ], + "node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/vitepress/node_modules/@esbuild/openbsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz", - "integrity": "sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==", - "cpu": [ - "x64" - ], + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/vitepress/node_modules/@esbuild/sunos-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz", - "integrity": "sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==", - "cpu": [ - "x64" - ], + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/vitepress/node_modules/@esbuild/win32-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz", - "integrity": "sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==", - "cpu": [ - "arm64" - ], + "node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/vitepress/node_modules/@esbuild/win32-ia32": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz", - "integrity": "sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==", - "cpu": [ - "ia32" - ], + "node_modules/unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/vitepress/node_modules/@esbuild/win32-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz", - "integrity": "sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==", - "cpu": [ - "x64" - ], + "node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "dev": true, - "optional": true, - "os": [ - "win32" + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } ], - "engines": { - "node": ">=12" + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, - "node_modules/vitepress/node_modules/@types/markdown-it": { - "version": "13.0.6", - "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-13.0.6.tgz", - "integrity": "sha512-0VqpvusJn1/lwRegCxcHVdmLfF+wIsprsKMC9xW8UPcTxhFcQtoN/fBU1zMe8pH7D/RuueMh2CaBaNv+GrLqTw==", + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", "dev": true, "dependencies": { - "@types/linkify-it": "*", - "@types/mdurl": "*" + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" } }, - "node_modules/vitepress/node_modules/esbuild": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.5.tgz", - "integrity": "sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==", + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" }, - "optionalDependencies": { - "@esbuild/android-arm": "0.19.5", - "@esbuild/android-arm64": "0.19.5", - "@esbuild/android-x64": "0.19.5", - "@esbuild/darwin-arm64": "0.19.5", - "@esbuild/darwin-x64": "0.19.5", - "@esbuild/freebsd-arm64": "0.19.5", - "@esbuild/freebsd-x64": "0.19.5", - "@esbuild/linux-arm": "0.19.5", - "@esbuild/linux-arm64": "0.19.5", - "@esbuild/linux-ia32": "0.19.5", - "@esbuild/linux-loong64": "0.19.5", - "@esbuild/linux-mips64el": "0.19.5", - "@esbuild/linux-ppc64": "0.19.5", - "@esbuild/linux-riscv64": "0.19.5", - "@esbuild/linux-s390x": "0.19.5", - "@esbuild/linux-x64": "0.19.5", - "@esbuild/netbsd-x64": "0.19.5", - "@esbuild/openbsd-x64": "0.19.5", - "@esbuild/sunos-x64": "0.19.5", - "@esbuild/win32-arm64": "0.19.5", - "@esbuild/win32-ia32": "0.19.5", - "@esbuild/win32-x64": "0.19.5" - } - }, - "node_modules/vitepress/node_modules/rollup": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.5.0.tgz", - "integrity": "sha512-41xsWhzxqjMDASCxH5ibw1mXk+3c4TNI2UjKbLxe6iEzrSQnqOzmmK8/3mufCPbzHNJ2e04Fc1ddI35hHy+8zg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.5.0", - "@rollup/rollup-android-arm64": "4.5.0", - "@rollup/rollup-darwin-arm64": "4.5.0", - "@rollup/rollup-darwin-x64": "4.5.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.5.0", - "@rollup/rollup-linux-arm64-gnu": "4.5.0", - "@rollup/rollup-linux-arm64-musl": "4.5.0", - "@rollup/rollup-linux-x64-gnu": "4.5.0", - "@rollup/rollup-linux-x64-musl": "4.5.0", - "@rollup/rollup-win32-arm64-msvc": "4.5.0", - "@rollup/rollup-win32-ia32-msvc": "4.5.0", - "@rollup/rollup-win32-x64-msvc": "4.5.0", - "fsevents": "~2.3.2" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/vitepress/node_modules/vite": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.0.tgz", - "integrity": "sha512-ESJVM59mdyGpsiNAeHQOR/0fqNoOyWPYesFto8FFZugfmhdHx8Fzd8sF3Q/xkVhZsyOxHfdM7ieiVAorI9RjFw==", + "node_modules/vite": { + "version": "5.4.10", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.10.tgz", + "integrity": "sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==", "dev": true, "dependencies": { - "esbuild": "^0.19.3", - "postcss": "^8.4.31", - "rollup": "^4.2.0" + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" }, "bin": { "vite": "bin/vite.js" @@ -2796,6 +3971,7 @@ "less": "*", "lightningcss": "^1.21.0", "sass": "*", + "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" @@ -2813,6 +3989,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, @@ -2824,29 +4003,58 @@ } } }, - "node_modules/vscode-oniguruma": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", - "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", - "dev": true - }, - "node_modules/vscode-textmate": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", - "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", - "dev": true + "node_modules/vitepress": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.5.0.tgz", + "integrity": "sha512-q4Q/G2zjvynvizdB3/bupdYkCJe2umSAMv9Ju4d92E6/NXJ59z70xB0q5p/4lpRyAwflDsbwy1mLV9Q5+nlB+g==", + "dev": true, + "dependencies": { + "@docsearch/css": "^3.6.2", + "@docsearch/js": "^3.6.2", + "@iconify-json/simple-icons": "^1.2.10", + "@shikijs/core": "^1.22.2", + "@shikijs/transformers": "^1.22.2", + "@shikijs/types": "^1.22.2", + "@types/markdown-it": "^14.1.2", + "@vitejs/plugin-vue": "^5.1.4", + "@vue/devtools-api": "^7.5.4", + "@vue/shared": "^3.5.12", + "@vueuse/core": "^11.1.0", + "@vueuse/integrations": "^11.1.0", + "focus-trap": "^7.6.0", + "mark.js": "8.11.1", + "minisearch": "^7.1.0", + "shiki": "^1.22.2", + "vite": "^5.4.10", + "vue": "^3.5.12" + }, + "bin": { + "vitepress": "bin/vitepress.js" + }, + "peerDependencies": { + "markdown-it-mathjax3": "^4", + "postcss": "^8" + }, + "peerDependenciesMeta": { + "markdown-it-mathjax3": { + "optional": true + }, + "postcss": { + "optional": true + } + } }, "node_modules/vue": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.8.tgz", - "integrity": "sha512-5VSX/3DabBikOXMsxzlW8JyfeLKlG9mzqnWgLQLty88vdZL7ZJgrdgBOmrArwxiLtmS+lNNpPcBYqrhE6TQW5w==", + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.12.tgz", + "integrity": "sha512-CLVZtXtn2ItBIi/zHZ0Sg1Xkb7+PU32bJJ8Bmy7ts3jxXTcbfsEfBivFYYWz1Hur+lalqGAh65Coin0r+HRUfg==", "dev": true, "dependencies": { - "@vue/compiler-dom": "3.3.8", - "@vue/compiler-sfc": "3.3.8", - "@vue/runtime-dom": "3.3.8", - "@vue/server-renderer": "3.3.8", - "@vue/shared": "3.3.8" + "@vue/compiler-dom": "3.5.12", + "@vue/compiler-sfc": "3.5.12", + "@vue/runtime-dom": "3.5.12", + "@vue/server-renderer": "3.5.12", + "@vue/shared": "3.5.12" }, "peerDependencies": { "typescript": "*" @@ -2912,6 +4120,112 @@ "node": ">=14" } }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/ws": { "version": "8.14.2", "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", @@ -2947,179 +4261,244 @@ "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true + }, + "node_modules/yaml": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz", + "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==", + "dev": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } } }, "dependencies": { "@algolia/autocomplete-core": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz", - "integrity": "sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==", + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.17.6.tgz", + "integrity": "sha512-lkDoW4I7h2kKlIgf3pUt1LqvxyYKkVyiypoGLlUnhPSnCpmeOwudM6rNq6YYsCmdQtnDQoW5lUNNuj6ASg3qeg==", "dev": true, "requires": { - "@algolia/autocomplete-plugin-algolia-insights": "1.9.3", - "@algolia/autocomplete-shared": "1.9.3" + "@algolia/autocomplete-plugin-algolia-insights": "1.17.6", + "@algolia/autocomplete-shared": "1.17.6" } }, "@algolia/autocomplete-plugin-algolia-insights": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz", - "integrity": "sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==", + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.6.tgz", + "integrity": "sha512-17NnaacuFzSWVuZu4NKzVeaFIe9Abpw8w+/gjc7xhZFtqj+GadufzodIdchwiB2eM2cDdiR3icW7gbNTB3K2YA==", "dev": true, "requires": { - "@algolia/autocomplete-shared": "1.9.3" + "@algolia/autocomplete-shared": "1.17.6" } }, "@algolia/autocomplete-preset-algolia": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz", - "integrity": "sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==", + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.6.tgz", + "integrity": "sha512-Cvg5JENdSCMuClwhJ1ON1/jSuojaYMiUW2KePm18IkdCzPJj/NXojaOxw58RFtQFpJgfVW8h2E8mEoDtLlMdeA==", "dev": true, "requires": { - "@algolia/autocomplete-shared": "1.9.3" + "@algolia/autocomplete-shared": "1.17.6" } }, "@algolia/autocomplete-shared": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz", - "integrity": "sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==", + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.6.tgz", + "integrity": "sha512-aq/3V9E00Tw2GC/PqgyPGXtqJUlVc17v4cn1EUhSc+O/4zd04Uwb3UmPm8KDaYQQOrkt1lwvCj2vG2wRE5IKhw==", "dev": true, "requires": {} }, - "@algolia/cache-browser-local-storage": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.19.1.tgz", - "integrity": "sha512-FYAZWcGsFTTaSAwj9Std8UML3Bu8dyWDncM7Ls8g+58UOe4XYdlgzXWbrIgjaguP63pCCbMoExKr61B+ztK3tw==", + "@algolia/client-abtesting": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.12.0.tgz", + "integrity": "sha512-hx4eVydkm3yrFCFxmcBtSzI/ykt0cZ6sDWch+v3JTgKpD2WtosMJU3Upv1AjQ4B6COSHCOWEX3vfFxW6OoH6aA==", + "dev": true, + "requires": { + "@algolia/client-common": "5.12.0", + "@algolia/requester-browser-xhr": "5.12.0", + "@algolia/requester-fetch": "5.12.0", + "@algolia/requester-node-http": "5.12.0" + } + }, + "@algolia/client-analytics": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.12.0.tgz", + "integrity": "sha512-EpTsSv6IW8maCfXCDIptgT7+mQJj7pImEkcNUnxR8yUKAHzTogTXv9yGm2WXOZFVuwstd2i0sImhQ1Vz8RH/hA==", "dev": true, "requires": { - "@algolia/cache-common": "4.19.1" + "@algolia/client-common": "5.12.0", + "@algolia/requester-browser-xhr": "5.12.0", + "@algolia/requester-fetch": "5.12.0", + "@algolia/requester-node-http": "5.12.0" } }, - "@algolia/cache-common": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.19.1.tgz", - "integrity": "sha512-XGghi3l0qA38HiqdoUY+wvGyBsGvKZ6U3vTiMBT4hArhP3fOGLXpIINgMiiGjTe4FVlTa5a/7Zf2bwlIHfRqqg==", + "@algolia/client-common": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.12.0.tgz", + "integrity": "sha512-od3WmO8qxyfNhKc+K3D17tvun3IMs/xMNmxCG9MiElAkYVbPPTRUYMkRneCpmJyQI0hNx2/EA4kZgzVfQjO86Q==", "dev": true }, - "@algolia/cache-in-memory": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.19.1.tgz", - "integrity": "sha512-+PDWL+XALGvIginigzu8oU6eWw+o76Z8zHbBovWYcrtWOEtinbl7a7UTt3x3lthv+wNuFr/YD1Gf+B+A9V8n5w==", + "@algolia/client-insights": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.12.0.tgz", + "integrity": "sha512-8alajmsYUd+7vfX5lpRNdxqv3Xx9clIHLUItyQK0Z6gwGMbVEFe6YYhgDtwslMAP0y6b0WeJEIZJMLgT7VYpRw==", "dev": true, "requires": { - "@algolia/cache-common": "4.19.1" + "@algolia/client-common": "5.12.0", + "@algolia/requester-browser-xhr": "5.12.0", + "@algolia/requester-fetch": "5.12.0", + "@algolia/requester-node-http": "5.12.0" } }, - "@algolia/client-account": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.19.1.tgz", - "integrity": "sha512-Oy0ritA2k7AMxQ2JwNpfaEcgXEDgeyKu0V7E7xt/ZJRdXfEpZcwp9TOg4TJHC7Ia62gIeT2Y/ynzsxccPw92GA==", + "@algolia/client-personalization": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.12.0.tgz", + "integrity": "sha512-bUV9HtfkTBgpoVhxFrMkmVPG03ZN1Rtn51kiaEtukucdk3ggjR9Qu1YUfRSU2lFgxr9qJc8lTxwfvhjCeJRcqw==", "dev": true, "requires": { - "@algolia/client-common": "4.19.1", - "@algolia/client-search": "4.19.1", - "@algolia/transporter": "4.19.1" + "@algolia/client-common": "5.12.0", + "@algolia/requester-browser-xhr": "5.12.0", + "@algolia/requester-fetch": "5.12.0", + "@algolia/requester-node-http": "5.12.0" } }, - "@algolia/client-analytics": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.19.1.tgz", - "integrity": "sha512-5QCq2zmgdZLIQhHqwl55ZvKVpLM3DNWjFI4T+bHr3rGu23ew2bLO4YtyxaZeChmDb85jUdPDouDlCumGfk6wOg==", + "@algolia/client-query-suggestions": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.12.0.tgz", + "integrity": "sha512-Q5CszzGWfxbIDs9DJ/QJsL7bP6h+lJMg27KxieEnI9KGCu0Jt5iFA3GkREkgRZxRdzlHbZKkrIzhtHVbSHw/rg==", "dev": true, "requires": { - "@algolia/client-common": "4.19.1", - "@algolia/client-search": "4.19.1", - "@algolia/requester-common": "4.19.1", - "@algolia/transporter": "4.19.1" + "@algolia/client-common": "5.12.0", + "@algolia/requester-browser-xhr": "5.12.0", + "@algolia/requester-fetch": "5.12.0", + "@algolia/requester-node-http": "5.12.0" } }, - "@algolia/client-common": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.19.1.tgz", - "integrity": "sha512-3kAIVqTcPrjfS389KQvKzliC559x+BDRxtWamVJt8IVp7LGnjq+aVAXg4Xogkur1MUrScTZ59/AaUd5EdpyXgA==", + "@algolia/client-search": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.12.0.tgz", + "integrity": "sha512-R3qzEytgVLHOGNri+bpta6NtTt7YtkvUe/QBcAmMDjW4Jk1P0eBYIPfvnzIPbINRsLxIq9fZs9uAYBgsrts4Zg==", "dev": true, "requires": { - "@algolia/requester-common": "4.19.1", - "@algolia/transporter": "4.19.1" + "@algolia/client-common": "5.12.0", + "@algolia/requester-browser-xhr": "5.12.0", + "@algolia/requester-fetch": "5.12.0", + "@algolia/requester-node-http": "5.12.0" } }, - "@algolia/client-personalization": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.19.1.tgz", - "integrity": "sha512-8CWz4/H5FA+krm9HMw2HUQenizC/DxUtsI5oYC0Jxxyce1vsr8cb1aEiSJArQT6IzMynrERif1RVWLac1m36xw==", + "@algolia/ingestion": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.12.0.tgz", + "integrity": "sha512-zpHo6qhR22tL8FsdSI4DvEraPDi/019HmMrCFB/TUX98yzh5ooAU7sNW0qPL1I7+S++VbBmNzJOEU9VI8tEC8A==", "dev": true, "requires": { - "@algolia/client-common": "4.19.1", - "@algolia/requester-common": "4.19.1", - "@algolia/transporter": "4.19.1" + "@algolia/client-common": "5.12.0", + "@algolia/requester-browser-xhr": "5.12.0", + "@algolia/requester-fetch": "5.12.0", + "@algolia/requester-node-http": "5.12.0" } }, - "@algolia/client-search": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.19.1.tgz", - "integrity": "sha512-mBecfMFS4N+yK/p0ZbK53vrZbL6OtWMk8YmnOv1i0LXx4pelY8TFhqKoTit3NPVPwoSNN0vdSN9dTu1xr1XOVw==", + "@algolia/monitoring": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.12.0.tgz", + "integrity": "sha512-i2AJZED/zf4uhxezAJUhMKoL5QoepCBp2ynOYol0N76+TSoohaMADdPnWCqOULF4RzOwrG8wWynAwBlXsAI1RQ==", "dev": true, "requires": { - "@algolia/client-common": "4.19.1", - "@algolia/requester-common": "4.19.1", - "@algolia/transporter": "4.19.1" + "@algolia/client-common": "5.12.0", + "@algolia/requester-browser-xhr": "5.12.0", + "@algolia/requester-fetch": "5.12.0", + "@algolia/requester-node-http": "5.12.0" } }, - "@algolia/logger-common": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.19.1.tgz", - "integrity": "sha512-i6pLPZW/+/YXKis8gpmSiNk1lOmYCmRI6+x6d2Qk1OdfvX051nRVdalRbEcVTpSQX6FQAoyeaui0cUfLYW5Elw==", - "dev": true - }, - "@algolia/logger-console": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.19.1.tgz", - "integrity": "sha512-jj72k9GKb9W0c7TyC3cuZtTr0CngLBLmc8trzZlXdfvQiigpUdvTi1KoWIb2ZMcRBG7Tl8hSb81zEY3zI2RlXg==", + "@algolia/recommend": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.12.0.tgz", + "integrity": "sha512-0jmZyKvYnB/Bj5c7WKsKedOUjnr0UtXm0LVFUdQrxXfqOqvWv9n6Vpr65UjdYG4Q49kRQxhlwtal9WJYrYymXg==", "dev": true, "requires": { - "@algolia/logger-common": "4.19.1" + "@algolia/client-common": "5.12.0", + "@algolia/requester-browser-xhr": "5.12.0", + "@algolia/requester-fetch": "5.12.0", + "@algolia/requester-node-http": "5.12.0" } }, "@algolia/requester-browser-xhr": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.19.1.tgz", - "integrity": "sha512-09K/+t7lptsweRTueHnSnmPqIxbHMowejAkn9XIcJMLdseS3zl8ObnS5GWea86mu3vy4+8H+ZBKkUN82Zsq/zg==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.12.0.tgz", + "integrity": "sha512-KxwleraFuVoEGCoeW6Y1RAEbgBMS7SavqeyzWdtkJc6mXeCOJXn1iZitb8Tyn2FcpMNUKlSm0adrUTt7G47+Ow==", + "dev": true, + "requires": { + "@algolia/client-common": "5.12.0" + } + }, + "@algolia/requester-fetch": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.12.0.tgz", + "integrity": "sha512-FuDZXUGU1pAg2HCnrt8+q1VGHKChV/LhvjvZlLOT7e56GJie6p+EuLu4/hMKPOVuQQ8XXtrTHKIU3Lw+7O5/bQ==", + "dev": true, + "requires": { + "@algolia/client-common": "5.12.0" + } + }, + "@algolia/requester-node-http": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.12.0.tgz", + "integrity": "sha512-ncDDY7CxZhMs6LIoPl+vHFQceIBhYPY5EfuGF1V7beO0U38xfsCYEyutEFB2kRzf4D9Gqppn3iWX71sNtrKcuw==", "dev": true, "requires": { - "@algolia/requester-common": "4.19.1" + "@algolia/client-common": "5.12.0" } }, - "@algolia/requester-common": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.19.1.tgz", - "integrity": "sha512-BisRkcWVxrDzF1YPhAckmi2CFYK+jdMT60q10d7z3PX+w6fPPukxHRnZwooiTUrzFe50UBmLItGizWHP5bDzVQ==", + "@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", "dev": true }, - "@algolia/requester-node-http": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.19.1.tgz", - "integrity": "sha512-6DK52DHviBHTG2BK/Vv2GIlEw7i+vxm7ypZW0Z7vybGCNDeWzADx+/TmxjkES2h15+FZOqVf/Ja677gePsVItA==", + "@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true + }, + "@babel/parser": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", "dev": true, "requires": { - "@algolia/requester-common": "4.19.1" + "@babel/types": "^7.26.0" } }, - "@algolia/transporter": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.19.1.tgz", - "integrity": "sha512-nkpvPWbpuzxo1flEYqNIbGz7xhfhGOKGAZS7tzC+TELgEmi7z99qRyTfNSUlW7LZmB3ACdnqAo+9A9KFBENviQ==", + "@babel/types": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "requires": { - "@algolia/cache-common": "4.19.1", - "@algolia/logger-common": "4.19.1", - "@algolia/requester-common": "4.19.1" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" } }, - "@babel/parser": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.3.tgz", - "integrity": "sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==", - "dev": true - }, "@csstools/selector-specificity": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.0.tgz", @@ -3128,358 +4507,502 @@ "requires": {} }, "@docsearch/css": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.5.2.tgz", - "integrity": "sha512-SPiDHaWKQZpwR2siD0KQUwlStvIAnEyK6tAE2h2Wuoq8ue9skzhlyVQ1ddzOxX6khULnAALDiR/isSF3bnuciA==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.7.0.tgz", + "integrity": "sha512-1OorbTwi1eeDmr0v5t+ckSRlt1zM5GHjm92iIl3kUu7im3GHuP+csf6E0WBg8pdXQczTWP9J9+o9n+Vg6DH5cQ==", "dev": true }, "@docsearch/js": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.5.2.tgz", - "integrity": "sha512-p1YFTCDflk8ieHgFJYfmyHBki1D61+U9idwrLh+GQQMrBSP3DLGKpy0XUJtPjAOPltcVbqsTjiPFfH7JImjUNg==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.7.0.tgz", + "integrity": "sha512-ScfqOIKrSr8SImbpxVaD59xc/bytbL8QEM2GUpe3aICmoICflWp5DyTRzAdFky16HY+yEOAVZXt3COXQ1NOCWw==", "dev": true, "requires": { - "@docsearch/react": "3.5.2", + "@docsearch/react": "3.7.0", "preact": "^10.0.0" } }, "@docsearch/react": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.5.2.tgz", - "integrity": "sha512-9Ahcrs5z2jq/DcAvYtvlqEBHImbm4YJI8M9y0x6Tqg598P40HTEkX7hsMcIuThI+hTFxRGZ9hll0Wygm2yEjng==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.7.0.tgz", + "integrity": "sha512-8e6tdDfkYoxafEEPuX5eE1h9cTkLvhe4KgoFkO5JCddXSQONnN1FHcDZRI4r8894eMpbYq6rdJF0dVYh8ikwNQ==", "dev": true, "requires": { - "@algolia/autocomplete-core": "1.9.3", - "@algolia/autocomplete-preset-algolia": "1.9.3", - "@docsearch/css": "3.5.2", - "algoliasearch": "^4.19.1" + "@algolia/autocomplete-core": "1.17.6", + "@algolia/autocomplete-preset-algolia": "1.17.6", + "@docsearch/css": "3.7.0", + "algoliasearch": "^5.12.0" } }, + "@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "dev": true, + "optional": true + }, "@esbuild/android-arm": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.15.tgz", - "integrity": "sha512-wlkQBWb79/jeEEoRmrxt/yhn5T1lU236OCNpnfRzaCJHZ/5gf82uYx1qmADTBWE0AR/v7FiozE1auk2riyQd3w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@esbuild/android-arm64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.15.tgz", - "integrity": "sha512-NI/gnWcMl2kXt1HJKOn2H69SYn4YNheKo6NZt1hyfKWdMbaGadxjZIkcj4Gjk/WPxnbFXs9/3HjGHaknCqjrww==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@esbuild/android-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.15.tgz", - "integrity": "sha512-FM9NQamSaEm/IZIhegF76aiLnng1kEsZl2eve/emxDeReVfRuRNmvT28l6hoFD9TsCxpK+i4v8LPpEj74T7yjA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@esbuild/darwin-arm64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.15.tgz", - "integrity": "sha512-XmrFwEOYauKte9QjS6hz60FpOCnw4zaPAb7XV7O4lx1r39XjJhTN7ZpXqJh4sN6q60zbP6QwAVVA8N/wUyBH/w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@esbuild/darwin-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.15.tgz", - "integrity": "sha512-bMqBmpw1e//7Fh5GLetSZaeo9zSC4/CMtrVFdj+bqKPGJuKyfNJ5Nf2m3LknKZTS+Q4oyPiON+v3eaJ59sLB5A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@esbuild/freebsd-arm64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.15.tgz", - "integrity": "sha512-LoTK5N3bOmNI9zVLCeTgnk5Rk0WdUTrr9dyDAQGVMrNTh9EAPuNwSTCgaKOKiDpverOa0htPcO9NwslSE5xuLA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@esbuild/freebsd-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.15.tgz", - "integrity": "sha512-62jX5n30VzgrjAjOk5orYeHFq6sqjvsIj1QesXvn5OZtdt5Gdj0vUNJy9NIpjfdNdqr76jjtzBJKf+h2uzYuTQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@esbuild/linux-arm": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.15.tgz", - "integrity": "sha512-dT4URUv6ir45ZkBqhwZwyFV6cH61k8MttIwhThp2BGiVtagYvCToF+Bggyx2VI57RG4Fbt21f9TmXaYx0DeUJg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@esbuild/linux-arm64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.15.tgz", - "integrity": "sha512-BWncQeuWDgYv0jTNzJjaNgleduV4tMbQjmk/zpPh/lUdMcNEAxy+jvneDJ6RJkrqloG7tB9S9rCrtfk/kuplsQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@esbuild/linux-ia32": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.15.tgz", - "integrity": "sha512-JPXORvgHRHITqfms1dWT/GbEY89u848dC08o0yK3fNskhp0t2TuNUnsrrSgOdH28ceb1hJuwyr8R/1RnyPwocw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@esbuild/linux-loong64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.15.tgz", - "integrity": "sha512-kArPI0DopjJCEplsVj/H+2Qgzz7vdFSacHNsgoAKpPS6W/Ndh8Oe24HRDQ5QCu4jHgN6XOtfFfLpRx3TXv/mEg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@esbuild/linux-mips64el": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.15.tgz", - "integrity": "sha512-b/tmngUfO02E00c1XnNTw/0DmloKjb6XQeqxaYuzGwHe0fHVgx5/D6CWi+XH1DvkszjBUkK9BX7n1ARTOst59w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@esbuild/linux-ppc64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.15.tgz", - "integrity": "sha512-KXPY69MWw79QJkyvUYb2ex/OgnN/8N/Aw5UDPlgoRtoEfcBqfeLodPr42UojV3NdkoO4u10NXQdamWm1YEzSKw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@esbuild/linux-riscv64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.15.tgz", - "integrity": "sha512-komK3NEAeeGRnvFEjX1SfVg6EmkfIi5aKzevdvJqMydYr9N+pRQK0PGJXk+bhoPZwOUgLO4l99FZmLGk/L1jWg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@esbuild/linux-s390x": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.15.tgz", - "integrity": "sha512-632T5Ts6gQ2WiMLWRRyeflPAm44u2E/s/TJvn+BP6M5mnHSk93cieaypj3VSMYO2ePTCRqAFXtuYi1yv8uZJNA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@esbuild/linux-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.15.tgz", - "integrity": "sha512-MsHtX0NgvRHsoOtYkuxyk4Vkmvk3PLRWfA4okK7c+6dT0Fu4SUqXAr9y4Q3d8vUf1VWWb6YutpL4XNe400iQ1g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@esbuild/netbsd-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.15.tgz", - "integrity": "sha512-djST6s+jQiwxMIVQ5rlt24JFIAr4uwUnzceuFL7BQT4CbrRtqBPueS4GjXSiIpmwVri1Icj/9pFRJ7/aScvT+A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@esbuild/openbsd-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.15.tgz", - "integrity": "sha512-naeRhUIvhsgeounjkF5mvrNAVMGAm6EJWiabskeE5yOeBbLp7T89tAEw0j5Jm/CZAwyLe3c67zyCWH6fsBLCpw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@esbuild/sunos-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.15.tgz", - "integrity": "sha512-qkT2+WxyKbNIKV1AEhI8QiSIgTHMcRctzSaa/I3kVgMS5dl3fOeoqkb7pW76KwxHoriImhx7Mg3TwN/auMDsyQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@esbuild/win32-arm64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.15.tgz", - "integrity": "sha512-HC4/feP+pB2Vb+cMPUjAnFyERs+HJN7E6KaeBlFdBv799MhD+aPJlfi/yk36SED58J9TPwI8MAcVpJgej4ud0A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@esbuild/win32-ia32": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.15.tgz", - "integrity": "sha512-ovjwoRXI+gf52EVF60u9sSDj7myPixPxqzD5CmkEUmvs+W9Xd0iqISVBQn8xcx4ciIaIVlWCuTbYDOXOnOL44Q==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "@esbuild/win32-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.15.tgz", - "integrity": "sha512-imUxH9a3WJARyAvrG7srLyiK73XdX83NXQkjKvQ+7vPh3ZxoLrzvPkQKKw2DwZ+RV2ZB6vBfNHP8XScAmQC3aA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", "dev": true, - "optional": true, - "peer": true + "optional": true + }, + "@iconify-json/simple-icons": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@iconify-json/simple-icons/-/simple-icons-1.2.11.tgz", + "integrity": "sha512-AHCGDtBRqP+JzAbBzgO8uN/08CXxEmuaC6lQQZ3b5burKhRU12AJnJczwbUw2K5Mb/U85EpSUNhYMG3F28b8NA==", + "dev": true, + "requires": { + "@iconify/types": "*" + } + }, + "@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", + "dev": true + }, + "@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "requires": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + } }, "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, - "optional": true, - "peer": true, "requires": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" } }, "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "optional": true, - "peer": true + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true }, "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, - "optional": true, - "peer": true + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } }, - "@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, - "optional": true, - "peer": true, "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" } }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true }, - "@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, - "optional": true, - "peer": true, "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" } }, + "@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true + }, "@rollup/rollup-android-arm-eabi": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.5.0.tgz", - "integrity": "sha512-OINaBGY+Wc++U0rdr7BLuFClxcoWaVW3vQYqmQq6B3bqQ/2olkaoz+K8+af/Mmka/C2yN5j+L9scBkv4BtKsDA==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.4.tgz", + "integrity": "sha512-jfUJrFct/hTA0XDM5p/htWKoNNTbDLY0KRwEt6pyOA6k2fmk0WVwl65PdUdJZgzGEHWx+49LilkcSaumQRyNQw==", "dev": true, "optional": true }, "@rollup/rollup-android-arm64": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.5.0.tgz", - "integrity": "sha512-UdMf1pOQc4ZmUA/NTmKhgJTBimbSKnhPS2zJqucqFyBRFPnPDtwA8MzrGNTjDeQbIAWfpJVAlxejw+/lQyBK/w==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.4.tgz", + "integrity": "sha512-j4nrEO6nHU1nZUuCfRKoCcvh7PIywQPUCBa2UsootTHvTHIoIu2BzueInGJhhvQO/2FTRdNYpf63xsgEqH9IhA==", "dev": true, "optional": true }, "@rollup/rollup-darwin-arm64": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.5.0.tgz", - "integrity": "sha512-L0/CA5p/idVKI+c9PcAPGorH6CwXn6+J0Ys7Gg1axCbTPgI8MeMlhA6fLM9fK+ssFhqogMHFC8HDvZuetOii7w==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.4.tgz", + "integrity": "sha512-GmU/QgGtBTeraKyldC7cDVVvAJEOr3dFLKneez/n7BvX57UdhOqDsVwzU7UOnYA7AAOt+Xb26lk79PldDHgMIQ==", "dev": true, "optional": true }, "@rollup/rollup-darwin-x64": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.5.0.tgz", - "integrity": "sha512-QZCbVqU26mNlLn8zi/XDDquNmvcr4ON5FYAHQQsyhrHx8q+sQi/6xduoznYXwk/KmKIXG5dLfR0CvY+NAWpFYQ==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.4.tgz", + "integrity": "sha512-N6oDBiZCBKlwYcsEPXGDE4g9RoxZLK6vT98M8111cW7VsVJFpNEqvJeIPfsCzbf0XEakPslh72X0gnlMi4Ddgg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-freebsd-arm64": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.24.4.tgz", + "integrity": "sha512-py5oNShCCjCyjWXCZNrRGRpjWsF0ic8f4ieBNra5buQz0O/U6mMXCpC1LvrHuhJsNPgRt36tSYMidGzZiJF6mw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-freebsd-x64": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.24.4.tgz", + "integrity": "sha512-L7VVVW9FCnTTp4i7KrmHeDsDvjB4++KOBENYtNYAiYl96jeBThFfhP6HVxL74v4SiZEVDH/1ILscR5U9S4ms4g==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.5.0.tgz", - "integrity": "sha512-VpSQ+xm93AeV33QbYslgf44wc5eJGYfYitlQzAi3OObu9iwrGXEnmu5S3ilkqE3Pr/FkgOiJKV/2p0ewf4Hrtg==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.4.tgz", + "integrity": "sha512-10ICosOwYChROdQoQo589N5idQIisxjaFE/PAnX2i0Zr84mY0k9zul1ArH0rnJ/fpgiqfu13TFZR5A5YJLOYZA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm-musleabihf": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.4.tgz", + "integrity": "sha512-ySAfWs69LYC7QhRDZNKqNhz2UKN8LDfbKSMAEtoEI0jitwfAG2iZwVqGACJT+kfYvvz3/JgsLlcBP+WWoKCLcw==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm64-gnu": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.5.0.tgz", - "integrity": "sha512-OrEyIfpxSsMal44JpEVx9AEcGpdBQG1ZuWISAanaQTSMeStBW+oHWwOkoqR54bw3x8heP8gBOyoJiGg+fLY8qQ==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.4.tgz", + "integrity": "sha512-uHYJ0HNOI6pGEeZ/5mgm5arNVTI0nLlmrbdph+pGXpC9tFHFDQmDMOEqkmUObRfosJqpU8RliYoGz06qSdtcjg==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm64-musl": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.5.0.tgz", - "integrity": "sha512-1H7wBbQuE6igQdxMSTjtFfD+DGAudcYWhp106z/9zBA8OQhsJRnemO4XGavdzHpGhRtRxbgmUGdO3YQgrWf2RA==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.4.tgz", + "integrity": "sha512-38yiWLemQf7aLHDgTg85fh3hW9stJ0Muk7+s6tIkSUOMmi4Xbv5pH/5Bofnsb6spIwD5FJiR+jg71f0CH5OzoA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.4.tgz", + "integrity": "sha512-q73XUPnkwt9ZNF2xRS4fvneSuaHw2BXuV5rI4cw0fWYVIWIBeDZX7c7FWhFQPNTnE24172K30I+dViWRVD9TwA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-riscv64-gnu": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.4.tgz", + "integrity": "sha512-Aie/TbmQi6UXokJqDZdmTJuZBCU3QBDA8oTKRGtd4ABi/nHgXICulfg1KI6n9/koDsiDbvHAiQO3YAUNa/7BCw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-s390x-gnu": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.4.tgz", + "integrity": "sha512-P8MPErVO/y8ohWSP9JY7lLQ8+YMHfTI4bAdtCi3pC2hTeqFJco2jYspzOzTUB8hwUWIIu1xwOrJE11nP+0JFAQ==", "dev": true, "optional": true }, "@rollup/rollup-linux-x64-gnu": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.5.0.tgz", - "integrity": "sha512-FVyFI13tXw5aE65sZdBpNjPVIi4Q5mARnL/39UIkxvSgRAIqCo5sCpCELk0JtXHGee2owZz5aNLbWNfBHzr71Q==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.4.tgz", + "integrity": "sha512-K03TljaaoPK5FOyNMZAAEmhlyO49LaE4qCsr0lYHUKyb6QacTNF9pnfPpXnFlFD3TXuFbFbz7tJ51FujUXkXYA==", "dev": true, "optional": true }, "@rollup/rollup-linux-x64-musl": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.5.0.tgz", - "integrity": "sha512-eBPYl2sLpH/o8qbSz6vPwWlDyThnQjJfcDOGFbNjmjb44XKC1F5dQfakOsADRVrXCNzM6ZsSIPDG5dc6HHLNFg==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.4.tgz", + "integrity": "sha512-VJYl4xSl/wqG2D5xTYncVWW+26ICV4wubwN9Gs5NrqhJtayikwCXzPL8GDsLnaLU3WwhQ8W02IinYSFJfyo34Q==", "dev": true, "optional": true }, "@rollup/rollup-win32-arm64-msvc": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.5.0.tgz", - "integrity": "sha512-xaOHIfLOZypoQ5U2I6rEaugS4IYtTgP030xzvrBf5js7p9WI9wik07iHmsKaej8Z83ZDxN5GyypfoyKV5O5TJA==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.4.tgz", + "integrity": "sha512-ku2GvtPwQfCqoPFIJCqZ8o7bJcj+Y54cZSr43hHca6jLwAiCbZdBUOrqE6y29QFajNAzzpIOwsckaTFmN6/8TA==", "dev": true, "optional": true }, "@rollup/rollup-win32-ia32-msvc": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.5.0.tgz", - "integrity": "sha512-Al6quztQUrHwcOoU2TuFblUQ5L+/AmPBXFR6dUvyo4nRj2yQRK0WIUaGMF/uwKulvRcXkpHe3k9A8Vf93VDktA==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.4.tgz", + "integrity": "sha512-V3nCe+eTt/W6UYNr/wGvO1fLpHUrnlirlypZfKCT1fG6hWfqhPgQV/K/mRBXBpxc0eKLIF18pIOFVPh0mqHjlg==", "dev": true, "optional": true }, "@rollup/rollup-win32-x64-msvc": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.5.0.tgz", - "integrity": "sha512-8kdW+brNhI/NzJ4fxDufuJUjepzINqJKLGHuxyAtpPG9bMbn8P5mtaCcbOm0EzLJ+atg+kF9dwg8jpclkVqx5w==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.4.tgz", + "integrity": "sha512-LTw1Dfd0mBIEqUVCxbvTE/LLo+9ZxVC9k99v1v4ahg9Aak6FpqOfNu5kRkeTAn0wphoC4JU7No1/rL+bBCEwhg==", "dev": true, "optional": true }, + "@shikijs/core": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.22.2.tgz", + "integrity": "sha512-bvIQcd8BEeR1yFvOYv6HDiyta2FFVePbzeowf5pPS1avczrPK+cjmaxxh0nx5QzbON7+Sv0sQfQVciO7bN72sg==", + "dev": true, + "requires": { + "@shikijs/engine-javascript": "1.22.2", + "@shikijs/engine-oniguruma": "1.22.2", + "@shikijs/types": "1.22.2", + "@shikijs/vscode-textmate": "^9.3.0", + "@types/hast": "^3.0.4", + "hast-util-to-html": "^9.0.3" + } + }, + "@shikijs/engine-javascript": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-1.22.2.tgz", + "integrity": "sha512-iOvql09ql6m+3d1vtvP8fLCVCK7BQD1pJFmHIECsujB0V32BJ0Ab6hxk1ewVSMFA58FI0pR2Had9BKZdyQrxTw==", + "dev": true, + "requires": { + "@shikijs/types": "1.22.2", + "@shikijs/vscode-textmate": "^9.3.0", + "oniguruma-to-js": "0.4.3" + } + }, + "@shikijs/engine-oniguruma": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.22.2.tgz", + "integrity": "sha512-GIZPAGzQOy56mGvWMoZRPggn0dTlBf1gutV5TdceLCZlFNqWmuc7u+CzD0Gd9vQUTgLbrt0KLzz6FNprqYAxlA==", + "dev": true, + "requires": { + "@shikijs/types": "1.22.2", + "@shikijs/vscode-textmate": "^9.3.0" + } + }, + "@shikijs/transformers": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-1.22.2.tgz", + "integrity": "sha512-8f78OiBa6pZDoZ53lYTmuvpFPlWtevn23bzG+azpPVvZg7ITax57o/K3TC91eYL3OMJOO0onPbgnQyZjRos8XQ==", + "dev": true, + "requires": { + "shiki": "1.22.2" + } + }, + "@shikijs/types": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.22.2.tgz", + "integrity": "sha512-NCWDa6LGZqTuzjsGfXOBWfjS/fDIbDdmVDug+7ykVe1IKT4c1gakrvlfFYp5NhAXH/lyqLM8wsAPo5wNy73Feg==", + "dev": true, + "requires": { + "@shikijs/vscode-textmate": "^9.3.0", + "@types/hast": "^3.0.4" + } + }, + "@shikijs/vscode-textmate": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-9.3.0.tgz", + "integrity": "sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==", + "dev": true + }, "@tootallnate/once": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", "dev": true }, + "@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, + "@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dev": true, + "requires": { + "@types/unist": "*" + } + }, "@types/jsdom": { "version": "21.1.5", "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.5.tgz", @@ -3492,15 +5015,34 @@ } }, "@types/linkify-it": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", - "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", "dev": true }, + "@types/markdown-it": { + "version": "14.1.2", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", + "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", + "dev": true, + "requires": { + "@types/linkify-it": "^5", + "@types/mdurl": "^2" + } + }, + "@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dev": true, + "requires": { + "@types/unist": "*" + } + }, "@types/mdurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", - "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", "dev": true }, "@types/node": { @@ -3521,194 +5063,221 @@ "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", "dev": true }, + "@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true + }, "@types/web-bluetooth": { "version": "0.0.20", "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz", "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==", "dev": true }, + "@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, "@vitejs/plugin-vue": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.5.0.tgz", - "integrity": "sha512-a2WSpP8X8HTEww/U00bU4mX1QpLINNuz/2KMNpLsdu3BzOpak3AGI1CJYBTXcc4SPhaD0eNRUp7IyQK405L5dQ==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.1.4.tgz", + "integrity": "sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A==", "dev": true, "requires": {} }, "@vue/compiler-core": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.8.tgz", - "integrity": "sha512-hN/NNBUECw8SusQvDSqqcVv6gWq8L6iAktUR0UF3vGu2OhzRqcOiAno0FmBJWwxhYEXRlQJT5XnoKsVq1WZx4g==", + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.12.tgz", + "integrity": "sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==", "dev": true, "requires": { - "@babel/parser": "^7.23.0", - "@vue/shared": "3.3.8", + "@babel/parser": "^7.25.3", + "@vue/shared": "3.5.12", + "entities": "^4.5.0", "estree-walker": "^2.0.2", - "source-map-js": "^1.0.2" + "source-map-js": "^1.2.0" } }, "@vue/compiler-dom": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.8.tgz", - "integrity": "sha512-+PPtv+p/nWDd0AvJu3w8HS0RIm/C6VGBIRe24b9hSyNWOAPEUosFZ5diwawwP8ip5sJ8n0Pe87TNNNHnvjs0FQ==", + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.12.tgz", + "integrity": "sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg==", "dev": true, "requires": { - "@vue/compiler-core": "3.3.8", - "@vue/shared": "3.3.8" + "@vue/compiler-core": "3.5.12", + "@vue/shared": "3.5.12" } }, "@vue/compiler-sfc": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.8.tgz", - "integrity": "sha512-WMzbUrlTjfYF8joyT84HfwwXo+8WPALuPxhy+BZ6R4Aafls+jDBnSz8PDz60uFhuqFbl3HxRfxvDzrUf3THwpA==", + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.12.tgz", + "integrity": "sha512-2k973OGo2JuAa5+ZlekuQJtitI5CgLMOwgl94BzMCsKZCX/xiqzJYzapl4opFogKHqwJk34vfsaKpfEhd1k5nw==", "dev": true, "requires": { - "@babel/parser": "^7.23.0", - "@vue/compiler-core": "3.3.8", - "@vue/compiler-dom": "3.3.8", - "@vue/compiler-ssr": "3.3.8", - "@vue/reactivity-transform": "3.3.8", - "@vue/shared": "3.3.8", + "@babel/parser": "^7.25.3", + "@vue/compiler-core": "3.5.12", + "@vue/compiler-dom": "3.5.12", + "@vue/compiler-ssr": "3.5.12", + "@vue/shared": "3.5.12", "estree-walker": "^2.0.2", - "magic-string": "^0.30.5", - "postcss": "^8.4.31", - "source-map-js": "^1.0.2" + "magic-string": "^0.30.11", + "postcss": "^8.4.47", + "source-map-js": "^1.2.0" } }, "@vue/compiler-ssr": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.8.tgz", - "integrity": "sha512-hXCqQL/15kMVDBuoBYpUnSYT8doDNwsjvm3jTefnXr+ytn294ySnT8NlsFHmTgKNjwpuFy7XVV8yTeLtNl/P6w==", + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.12.tgz", + "integrity": "sha512-eLwc7v6bfGBSM7wZOGPmRavSWzNFF6+PdRhE+VFJhNCgHiF8AM7ccoqcv5kBXA2eWUfigD7byekvf/JsOfKvPA==", "dev": true, "requires": { - "@vue/compiler-dom": "3.3.8", - "@vue/shared": "3.3.8" + "@vue/compiler-dom": "3.5.12", + "@vue/shared": "3.5.12" } }, "@vue/devtools-api": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.1.tgz", - "integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==", - "dev": true + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.6.3.tgz", + "integrity": "sha512-H2TRzFA9hNezdtM6I0y3RCMhIg5T3gib/p9qI2IAS8gB9tvkAv4JZHAZZl5BZHhO7btuHkvHzU5qpO/vdsjYMg==", + "dev": true, + "requires": { + "@vue/devtools-kit": "^7.6.3" + } }, - "@vue/reactivity": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.8.tgz", - "integrity": "sha512-ctLWitmFBu6mtddPyOKpHg8+5ahouoTCRtmAHZAXmolDtuZXfjL2T3OJ6DL6ezBPQB1SmMnpzjiWjCiMYmpIuw==", + "@vue/devtools-kit": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.6.3.tgz", + "integrity": "sha512-ETsFc8GlOp04rSFN79tB2TpVloWfsSx9BoCSElV3w3CaJTSBfz42KsIi5Ka+dNTJs1jY7QVLTDeoBmUGgA9h2A==", "dev": true, "requires": { - "@vue/shared": "3.3.8" + "@vue/devtools-shared": "^7.6.3", + "birpc": "^0.2.19", + "hookable": "^5.5.3", + "mitt": "^3.0.1", + "perfect-debounce": "^1.0.0", + "speakingurl": "^14.0.1", + "superjson": "^2.2.1" } }, - "@vue/reactivity-transform": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.8.tgz", - "integrity": "sha512-49CvBzmZNtcHua0XJ7GdGifM8GOXoUMOX4dD40Y5DxI3R8OUhMlvf2nvgUAcPxaXiV5MQQ1Nwy09ADpnLQUqRw==", + "@vue/devtools-shared": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.6.3.tgz", + "integrity": "sha512-wJW5QF27i16+sNQIaes8QoEZg1eqEgF83GkiPUlEQe9k7ZoHXHV7PRrnrxOKem42sIHPU813J2V/ZK1uqTJe6g==", "dev": true, "requires": { - "@babel/parser": "^7.23.0", - "@vue/compiler-core": "3.3.8", - "@vue/shared": "3.3.8", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.5" + "rfdc": "^1.4.1" + } + }, + "@vue/reactivity": { + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.12.tgz", + "integrity": "sha512-UzaN3Da7xnJXdz4Okb/BGbAaomRHc3RdoWqTzlvd9+WBR5m3J39J1fGcHes7U3za0ruYn/iYy/a1euhMEHvTAg==", + "dev": true, + "requires": { + "@vue/shared": "3.5.12" } }, "@vue/runtime-core": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.8.tgz", - "integrity": "sha512-qurzOlb6q26KWQ/8IShHkMDOuJkQnQcTIp1sdP4I9MbCf9FJeGVRXJFr2mF+6bXh/3Zjr9TDgURXrsCr9bfjUw==", + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.12.tgz", + "integrity": "sha512-hrMUYV6tpocr3TL3Ad8DqxOdpDe4zuQY4HPY3X/VRh+L2myQO8MFXPAMarIOSGNu0bFAjh1yBkMPXZBqCk62Uw==", "dev": true, "requires": { - "@vue/reactivity": "3.3.8", - "@vue/shared": "3.3.8" + "@vue/reactivity": "3.5.12", + "@vue/shared": "3.5.12" } }, "@vue/runtime-dom": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.8.tgz", - "integrity": "sha512-Noy5yM5UIf9UeFoowBVgghyGGPIDPy1Qlqt0yVsUdAVbqI8eeMSsTqBtauaEoT2UFXUk5S64aWVNJN4MJ2vRdA==", + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.12.tgz", + "integrity": "sha512-q8VFxR9A2MRfBr6/55Q3umyoN7ya836FzRXajPB6/Vvuv0zOPL+qltd9rIMzG/DbRLAIlREmnLsplEF/kotXKA==", "dev": true, "requires": { - "@vue/runtime-core": "3.3.8", - "@vue/shared": "3.3.8", - "csstype": "^3.1.2" + "@vue/reactivity": "3.5.12", + "@vue/runtime-core": "3.5.12", + "@vue/shared": "3.5.12", + "csstype": "^3.1.3" } }, "@vue/server-renderer": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.8.tgz", - "integrity": "sha512-zVCUw7RFskvPuNlPn/8xISbrf0zTWsTSdYTsUTN1ERGGZGVnRxM2QZ3x1OR32+vwkkCm0IW6HmJ49IsPm7ilLg==", + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.12.tgz", + "integrity": "sha512-I3QoeDDeEPZm8yR28JtY+rk880Oqmj43hreIBVTicisFTx/Dl7JpG72g/X7YF8hnQD3IFhkky5i2bPonwrTVPg==", "dev": true, "requires": { - "@vue/compiler-ssr": "3.3.8", - "@vue/shared": "3.3.8" + "@vue/compiler-ssr": "3.5.12", + "@vue/shared": "3.5.12" } }, "@vue/shared": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.8.tgz", - "integrity": "sha512-8PGwybFwM4x8pcfgqEQFy70NaQxASvOC5DJwLQfpArw1UDfUXrJkdxD3BhVTMS+0Lef/TU7YO0Jvr0jJY8T+mw==", + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.12.tgz", + "integrity": "sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==", "dev": true }, "@vueuse/core": { - "version": "10.6.1", - "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.6.1.tgz", - "integrity": "sha512-Pc26IJbqgC9VG1u6VY/xrXXfxD33hnvxBnKrLlA2LJlyHII+BSrRoTPJgGYq7qZOu61itITFUnm6QbacwZ4H8Q==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-11.2.0.tgz", + "integrity": "sha512-JIUwRcOqOWzcdu1dGlfW04kaJhW3EXnnjJJfLTtddJanymTL7lF1C0+dVVZ/siLfc73mWn+cGP1PE1PKPruRSA==", "dev": true, "requires": { "@types/web-bluetooth": "^0.0.20", - "@vueuse/metadata": "10.6.1", - "@vueuse/shared": "10.6.1", - "vue-demi": ">=0.14.6" + "@vueuse/metadata": "11.2.0", + "@vueuse/shared": "11.2.0", + "vue-demi": ">=0.14.10" }, "dependencies": { "vue-demi": { - "version": "0.14.6", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz", - "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==", + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", "dev": true, "requires": {} } } }, "@vueuse/integrations": { - "version": "10.6.1", - "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-10.6.1.tgz", - "integrity": "sha512-mPDupuofMJ4DPmtX/FfP1MajmWRzYDv8WSaTCo8LQ5kFznjWgmUQ16ApjYqgMquqffNY6+IRMdMgosLDRZOSZA==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-11.2.0.tgz", + "integrity": "sha512-zGXz3dsxNHKwiD9jPMvR3DAxQEOV6VWIEYTGVSB9PNpk4pTWR+pXrHz9gvXWcP2sTk3W2oqqS6KwWDdntUvNVA==", "dev": true, "requires": { - "@vueuse/core": "10.6.1", - "@vueuse/shared": "10.6.1", - "vue-demi": ">=0.14.6" + "@vueuse/core": "11.2.0", + "@vueuse/shared": "11.2.0", + "vue-demi": ">=0.14.10" }, "dependencies": { "vue-demi": { - "version": "0.14.6", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz", - "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==", + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", "dev": true, "requires": {} } } }, "@vueuse/metadata": { - "version": "10.6.1", - "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.6.1.tgz", - "integrity": "sha512-qhdwPI65Bgcj23e5lpGfQsxcy0bMjCAsUGoXkJ7DsoeDUdasbZ2DBa4dinFCOER3lF4gwUv+UD2AlA11zdzMFw==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-11.2.0.tgz", + "integrity": "sha512-L0ZmtRmNx+ZW95DmrgD6vn484gSpVeRbgpWevFKXwqqQxW9hnSi2Ppuh2BzMjnbv4aJRiIw8tQatXT9uOB23dQ==", "dev": true }, "@vueuse/shared": { - "version": "10.6.1", - "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.6.1.tgz", - "integrity": "sha512-TECVDTIedFlL0NUfHWncf3zF9Gc4VfdxfQc8JFwoVZQmxpONhLxFrlm0eHQeidHj4rdTPL3KXJa0TZCk1wnc5Q==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-11.2.0.tgz", + "integrity": "sha512-VxFjie0EanOudYSgMErxXfq6fo8vhr5ICI+BuE3I9FnX7ePllEsVrRQ7O6Q1TLgApeLuPKcHQxAXpP+KnlrJsg==", "dev": true, "requires": { - "vue-demi": ">=0.14.6" + "vue-demi": ">=0.14.10" }, "dependencies": { "vue-demi": { - "version": "0.14.6", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz", - "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==", + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", "dev": true, "requires": {} } @@ -3720,14 +5289,6 @@ "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", "dev": true }, - "acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "dev": true, - "optional": true, - "peer": true - }, "agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", @@ -3738,85 +5299,163 @@ } }, "algoliasearch": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.19.1.tgz", - "integrity": "sha512-IJF5b93b2MgAzcE/tuzW0yOPnuUyRgGAtaPv5UUywXM8kzqfdwZTO4sPJBzoGz1eOy6H9uEchsJsBFTELZSu+g==", - "dev": true, - "requires": { - "@algolia/cache-browser-local-storage": "4.19.1", - "@algolia/cache-common": "4.19.1", - "@algolia/cache-in-memory": "4.19.1", - "@algolia/client-account": "4.19.1", - "@algolia/client-analytics": "4.19.1", - "@algolia/client-common": "4.19.1", - "@algolia/client-personalization": "4.19.1", - "@algolia/client-search": "4.19.1", - "@algolia/logger-common": "4.19.1", - "@algolia/logger-console": "4.19.1", - "@algolia/requester-browser-xhr": "4.19.1", - "@algolia/requester-common": "4.19.1", - "@algolia/requester-node-http": "4.19.1", - "@algolia/transporter": "4.19.1" - } - }, - "ansi-sequence-parser": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz", - "integrity": "sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.12.0.tgz", + "integrity": "sha512-psGBRYdGgik8I6m28iAB8xpubvjEt7UQU+w5MAJUA2324WHiGoHap5BPkkjB14rMaXeRts6pmOsrVIglGyOVwg==", + "dev": true, + "requires": { + "@algolia/client-abtesting": "5.12.0", + "@algolia/client-analytics": "5.12.0", + "@algolia/client-common": "5.12.0", + "@algolia/client-insights": "5.12.0", + "@algolia/client-personalization": "5.12.0", + "@algolia/client-query-suggestions": "5.12.0", + "@algolia/client-search": "5.12.0", + "@algolia/ingestion": "1.12.0", + "@algolia/monitoring": "1.12.0", + "@algolia/recommend": "5.12.0", + "@algolia/requester-browser-xhr": "5.12.0", + "@algolia/requester-fetch": "5.12.0", + "@algolia/requester-node-http": "5.12.0" + } + }, + "ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", "dev": true }, "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, - "optional": true, - "peer": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, + "arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true }, + "autoprefixer": { + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "dev": true, + "requires": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true + }, + "birpc": { + "version": "0.2.19", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-0.2.19.tgz", + "integrity": "sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==", + "dev": true + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "optional": true, - "peer": true + "requires": { + "balanced-match": "^1.0.0" + } }, "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, - "optional": true, - "peer": true, "requires": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" } }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "browserslist": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", "dev": true, - "optional": true, - "peer": true + "requires": { + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.1" + } + }, + "camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001687", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001687.tgz", + "integrity": "sha512-0S/FDhf4ZiqrTUiQ39dKeUjYRjkv7lOZU1Dgif2rIqrTzX/1wV2hfKu9TOm1IHkdSijfLswxTFzl/cvir+SLSQ==", + "dev": true + }, + "ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "dev": true + }, + "character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "dev": true + }, + "character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "dev": true }, "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, - "optional": true, - "peer": true, "requires": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -3826,8 +5465,34 @@ "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } } }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -3837,13 +5502,37 @@ "delayed-stream": "~1.0.0" } }, + "comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "dev": true + }, "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true + }, + "copy-anything": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz", + "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", "dev": true, - "optional": true, - "peer": true + "requires": { + "is-what": "^4.1.8" + } + }, + "cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } }, "cssesc": { "version": "3.0.0", @@ -3861,9 +5550,9 @@ } }, "csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", "dev": true }, "data-urls": { @@ -3898,6 +5587,33 @@ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true }, + "dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true + }, + "devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "dev": true, + "requires": { + "dequal": "^2.0.0" + } + }, + "didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, "domexception": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", @@ -3907,36 +5623,66 @@ "webidl-conversions": "^7.0.0" } }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.5.72", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.72.tgz", + "integrity": "sha512-ZpSAUOZ2Izby7qnZluSrAlGgGQzucmFbN0n64dYzocYxnxV5ufurpj3VgEe4cUp7ir9LmeLxNYo8bVnlM8bQHw==", + "dev": true + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true + }, "esbuild": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.15.tgz", - "integrity": "sha512-3WOOLhrvuTGPRzQPU6waSDWrDTnQriia72McWcn6UCi43GhCHrXH4S59hKMeez+IITmdUuUyvbU9JIp+t3xlPQ==", - "dev": true, - "peer": true, - "requires": { - "@esbuild/android-arm": "0.18.15", - "@esbuild/android-arm64": "0.18.15", - "@esbuild/android-x64": "0.18.15", - "@esbuild/darwin-arm64": "0.18.15", - "@esbuild/darwin-x64": "0.18.15", - "@esbuild/freebsd-arm64": "0.18.15", - "@esbuild/freebsd-x64": "0.18.15", - "@esbuild/linux-arm": "0.18.15", - "@esbuild/linux-arm64": "0.18.15", - "@esbuild/linux-ia32": "0.18.15", - "@esbuild/linux-loong64": "0.18.15", - "@esbuild/linux-mips64el": "0.18.15", - "@esbuild/linux-ppc64": "0.18.15", - "@esbuild/linux-riscv64": "0.18.15", - "@esbuild/linux-s390x": "0.18.15", - "@esbuild/linux-x64": "0.18.15", - "@esbuild/netbsd-x64": "0.18.15", - "@esbuild/openbsd-x64": "0.18.15", - "@esbuild/sunos-x64": "0.18.15", - "@esbuild/win32-arm64": "0.18.15", - "@esbuild/win32-ia32": "0.18.15", - "@esbuild/win32-x64": "0.18.15" - } + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "requires": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true }, "estree-walker": { "version": "2.0.2", @@ -3944,26 +5690,67 @@ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "dev": true }, + "fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, - "optional": true, - "peer": true, "requires": { "to-regex-range": "^5.0.1" } }, "focus-trap": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.4.tgz", - "integrity": "sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.6.0.tgz", + "integrity": "sha512-1td0l3pMkWJLFipobUcGaf+5DTY4PLDDrcqoSaKP8ediO/CoWCCYk/fT/Y2A4e6TNB+Sh6clRJCjOPPnKoNHnQ==", "dev": true, "requires": { "tabbable": "^6.2.0" } }, + "foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + } + }, "form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -3975,6 +5762,12 @@ "mime-types": "^2.1.12" } }, + "fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true + }, "fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -3982,17 +5775,78 @@ "dev": true, "optional": true }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true + }, + "glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + } + }, "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, - "optional": true, - "peer": true, "requires": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" + } + }, + "hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "requires": { + "function-bind": "^1.1.2" + } + }, + "hast-util-to-html": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.3.tgz", + "integrity": "sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==", + "dev": true, + "requires": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^3.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" + } + }, + "hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "dev": true, + "requires": { + "@types/hast": "^3.0.0" } }, + "hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", + "dev": true + }, "html-encoding-sniffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", @@ -4002,6 +5856,12 @@ "whatwg-encoding": "^2.0.0" } }, + "html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "dev": true + }, "http-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", @@ -4032,40 +5892,41 @@ "safer-buffer": ">= 2.1.2 < 3.0.0" } }, - "immutable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", - "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", - "dev": true, - "optional": true, - "peer": true - }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, - "optional": true, - "peer": true, "requires": { "binary-extensions": "^2.0.0" } }, + "is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dev": true, + "requires": { + "hasown": "^2.0.2" + } + }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "optional": true, - "peer": true + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true }, "is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, - "optional": true, - "peer": true, "requires": { "is-extglob": "^2.1.1" } @@ -4074,9 +5935,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "optional": true, - "peer": true + "dev": true }, "is-potential-custom-element-name": { "version": "1.0.1", @@ -4084,6 +5943,34 @@ "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "dev": true }, + "is-what": { + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", + "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "requires": { + "@isaacs/cliui": "^8.0.2", + "@pkgjs/parseargs": "^0.11.0" + } + }, + "jiti": { + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "dev": true + }, "jsdom": { "version": "22.1.0", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-22.1.0.tgz", @@ -4115,19 +6002,31 @@ "xml-name-validator": "^4.0.0" } }, - "jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true }, "magic-string": { - "version": "0.30.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", - "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "version": "0.30.12", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", + "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", "dev": true, "requires": { - "@jridgewell/sourcemap-codec": "^1.4.15" + "@jridgewell/sourcemap-codec": "^1.5.0" } }, "mark.js": { @@ -4136,11 +6035,83 @@ "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==", "dev": true }, + "mdast-util-to-hast": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", + "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", + "dev": true, + "requires": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + } + }, "medium-zoom": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/medium-zoom/-/medium-zoom-1.1.0.tgz", "integrity": "sha512-ewyDsp7k4InCUp3jRmwHBRFGyjBimKps/AJLjRSox+2q/2H4p/PNpQf+pwONWlJiOudkBXtbdmVbFjqyybfTmQ==" }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "dev": true, + "requires": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "micromark-util-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "dev": true + }, + "micromark-util-sanitize-uri": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "dev": true, + "requires": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "dev": true + }, + "micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "dev": true + }, + "micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "requires": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + } + }, "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -4156,10 +6127,31 @@ "mime-db": "1.52.0" } }, + "minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true + }, "minisearch": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/minisearch/-/minisearch-6.2.0.tgz", - "integrity": "sha512-BECkorDF1TY2rGKt9XHdSeP9TP29yUbrAaCh/C03wpyf1vx3uYcP/+8XlMcpTkgoU0rBVnHMAOaP83Rc9Tm+TQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/minisearch/-/minisearch-7.1.0.tgz", + "integrity": "sha512-tv7c/uefWdEhcu6hvrfTihflgeEi2tN6VV7HJnCjK6VxM75QQJh4t9FwJCsA2EsRS8LCnu3W87CuGPWMocOLCA==", + "dev": true + }, + "mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", "dev": true }, "ms": { @@ -4168,19 +6160,40 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, "nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true + }, + "node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", "dev": true }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "optional": true, - "peer": true + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true }, "nwsapi": { "version": "2.2.7", @@ -4188,6 +6201,33 @@ "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==", "dev": true }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true + }, + "object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true + }, + "oniguruma-to-js": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/oniguruma-to-js/-/oniguruma-to-js-0.4.3.tgz", + "integrity": "sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==", + "dev": true, + "requires": { + "regex": "^4.3.2" + } + }, + "package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true + }, "parse5": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", @@ -4195,39 +6235,108 @@ "dev": true, "requires": { "entities": "^4.4.0" - }, - "dependencies": { - "entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true - } } }, - "picocolors": { + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "requires": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + } + }, + "perfect-debounce": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", + "dev": true + }, + "picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true }, "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "optional": true, - "peer": true + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + }, + "pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true }, "postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "dev": true, + "requires": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + } + }, + "postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + } + }, + "postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "requires": { + "camelcase-css": "^2.0.1" + } + }, + "postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "requires": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + } + }, + "postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", "dev": true, "requires": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "postcss-selector-parser": "^6.1.1" } }, "postcss-nesting": { @@ -4241,19 +6350,25 @@ } }, "postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "dev": true, "requires": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, "preact": { - "version": "10.16.0", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.16.0.tgz", - "integrity": "sha512-XTSj3dJ4roKIC93pald6rWuB2qQJO9gO2iLLyTe87MrjQN+HklueLsmskbywEWqCHlclgz3/M4YLL2iBr9UmMA==", + "version": "10.24.3", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.24.3.tgz", + "integrity": "sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA==", "dev": true }, "prismjs": { @@ -4262,6 +6377,12 @@ "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", "dev": true }, + "property-information": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "dev": true + }, "psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", @@ -4280,30 +6401,90 @@ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", "dev": true }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "requires": { + "pify": "^2.3.0" + } + }, "readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, - "optional": true, - "peer": true, "requires": { "picomatch": "^2.2.1" } }, + "regex": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/regex/-/regex-4.4.0.tgz", + "integrity": "sha512-uCUSuobNVeqUupowbdZub6ggI5/JZkYyJdDogddJr60L764oxC2pMZov1fQ3wM9bdyzUILDG+Sqx6NAKAz9rKQ==", + "dev": true + }, "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true }, + "resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true + }, "rollup": { - "version": "3.29.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", - "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.4.tgz", + "integrity": "sha512-vGorVWIsWfX3xbcyAS+I047kFKapHYivmkaT63Smj77XwvLSJos6M1xGqZnBPFQFBRZDOcG1QnYEIxAvTr/HjA==", "dev": true, - "peer": true, "requires": { + "@rollup/rollup-android-arm-eabi": "4.24.4", + "@rollup/rollup-android-arm64": "4.24.4", + "@rollup/rollup-darwin-arm64": "4.24.4", + "@rollup/rollup-darwin-x64": "4.24.4", + "@rollup/rollup-freebsd-arm64": "4.24.4", + "@rollup/rollup-freebsd-x64": "4.24.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.4", + "@rollup/rollup-linux-arm-musleabihf": "4.24.4", + "@rollup/rollup-linux-arm64-gnu": "4.24.4", + "@rollup/rollup-linux-arm64-musl": "4.24.4", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.4", + "@rollup/rollup-linux-riscv64-gnu": "4.24.4", + "@rollup/rollup-linux-s390x-gnu": "4.24.4", + "@rollup/rollup-linux-x64-gnu": "4.24.4", + "@rollup/rollup-linux-x64-musl": "4.24.4", + "@rollup/rollup-win32-arm64-msvc": "4.24.4", + "@rollup/rollup-win32-ia32-msvc": "4.24.4", + "@rollup/rollup-win32-x64-msvc": "4.24.4", + "@types/estree": "1.0.6", "fsevents": "~2.3.2" } }, @@ -4313,25 +6494,21 @@ "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==", "dev": true }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "sass": { - "version": "1.64.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.64.0.tgz", - "integrity": "sha512-m7YtAGmQta9uANIUJwXesAJMSncqH+3INc8kdVXs6eV6GUC8Qu2IYKQSN8PRLgiQfpca697G94klm2leYMxSHw==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" - } - }, "saxes": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", @@ -4342,50 +6519,176 @@ } }, "search-insights": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.7.0.tgz", - "integrity": "sha512-GLbVaGgzYEKMvuJbHRhLi1qoBFnjXZGZ6l4LxOYPCp4lI2jDRB3jPU9/XNhMwv6kvnA9slTreq6pvK+b3o3aqg==", + "version": "2.17.2", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.2.tgz", + "integrity": "sha512-zFNpOpUO+tY2D85KrxJ+aqwnIfdEGi06UH2+xEb+Bp9Mwznmauqc9djbnBibJO5mpfUPPa8st6Sx65+vbeO45g==", "dev": true, "peer": true }, - "shiki": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.5.tgz", - "integrity": "sha512-1gCAYOcmCFONmErGTrS1fjzJLA7MGZmKzrBNX7apqSwhyITJg2O102uFzXUeBxNnEkDA9vHIKLyeKq0V083vIw==", + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { - "ansi-sequence-parser": "^1.1.0", - "jsonc-parser": "^3.2.0", - "vscode-oniguruma": "^1.7.0", - "vscode-textmate": "^8.0.0" + "shebang-regex": "^3.0.0" } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "shiki": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.22.2.tgz", + "integrity": "sha512-3IZau0NdGKXhH2bBlUk4w1IHNxPh6A5B2sUpyY+8utLu2j/h1QpFkAaUA1bAMxOWWGtTWcAh531vnS4NJKS/lA==", "dev": true, - "optional": true, - "peer": true + "requires": { + "@shikijs/core": "1.22.2", + "@shikijs/engine-javascript": "1.22.2", + "@shikijs/engine-oniguruma": "1.22.2", + "@shikijs/types": "1.22.2", + "@shikijs/vscode-textmate": "^9.3.0", + "@types/hast": "^3.0.4" + } + }, + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true }, "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true + }, + "space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "dev": true + }, + "speakingurl": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz", + "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==", "dev": true }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "string-width-cjs": { + "version": "npm:string-width@4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "dev": true, + "requires": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + } + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "strip-ansi-cjs": { + "version": "npm:strip-ansi@6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "optional": true, - "peer": true, "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "ansi-regex": "^5.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + } + } + }, + "sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" } }, + "superjson": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.1.tgz", + "integrity": "sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==", + "dev": true, + "requires": { + "copy-anything": "^3.0.2" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, "symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", @@ -4398,18 +6701,52 @@ "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", "dev": true }, - "terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "tailwindcss": { + "version": "3.4.16", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.16.tgz", + "integrity": "sha512-TI4Cyx7gDiZ6r44ewaJmt0o6BrMCT5aK5e0rmJ/G9Xq3w7CX/5VXl/zIPEJZFUK5VEqwByyhqNPycPlvcK4ZNw==", "dev": true, - "optional": true, - "peer": true, "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.6", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + } + }, + "thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "requires": { + "thenify": ">= 3.1.0 < 4" } }, "to-regex-range": { @@ -4417,8 +6754,6 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "optional": true, - "peer": true, "requires": { "is-number": "^7.0.0" } @@ -4452,12 +6787,82 @@ "punycode": "^2.3.0" } }, + "trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "dev": true + }, + "ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, "typescript": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", "dev": true }, + "unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "dev": true, + "requires": { + "@types/unist": "^3.0.0" + } + }, + "unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "dev": true, + "requires": { + "@types/unist": "^3.0.0" + } + }, + "unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "dev": true, + "requires": { + "@types/unist": "^3.0.0" + } + }, + "unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "dev": true, + "requires": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + } + }, + "unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "dev": true, + "requires": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + } + }, + "update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "dev": true, + "requires": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + } + }, "url-parse": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", @@ -4474,292 +6879,75 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, + "vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "requires": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + } + }, + "vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "dev": true, + "requires": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + } + }, "vite": { - "version": "4.4.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.6.tgz", - "integrity": "sha512-EY6Mm8vJ++S3D4tNAckaZfw3JwG3wa794Vt70M6cNJ6NxT87yhq7EC8Rcap3ahyHdo8AhCmV9PTk+vG1HiYn1A==", + "version": "5.4.10", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.10.tgz", + "integrity": "sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==", "dev": true, - "peer": true, "requires": { - "esbuild": "^0.18.10", - "fsevents": "~2.3.2", - "postcss": "^8.4.26", - "rollup": "^3.25.2" + "esbuild": "^0.21.3", + "fsevents": "~2.3.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" } }, "vitepress": { - "version": "1.0.0-rc.27", - "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.0.0-rc.27.tgz", - "integrity": "sha512-1qs1a5qPQxNOJN451HmNtKewxSIOk52qv1EdWtsO6V6kvrNxF2FFR3Inhj0W56Jcs8AKIdzKDKHNYIJhcyz3AA==", - "dev": true, - "requires": { - "@docsearch/css": "^3.5.2", - "@docsearch/js": "^3.5.2", - "@types/markdown-it": "^13.0.6", - "@vitejs/plugin-vue": "^4.5.0", - "@vue/devtools-api": "^6.5.1", - "@vueuse/core": "^10.6.1", - "@vueuse/integrations": "^10.6.1", - "focus-trap": "^7.5.4", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.5.0.tgz", + "integrity": "sha512-q4Q/G2zjvynvizdB3/bupdYkCJe2umSAMv9Ju4d92E6/NXJ59z70xB0q5p/4lpRyAwflDsbwy1mLV9Q5+nlB+g==", + "dev": true, + "requires": { + "@docsearch/css": "^3.6.2", + "@docsearch/js": "^3.6.2", + "@iconify-json/simple-icons": "^1.2.10", + "@shikijs/core": "^1.22.2", + "@shikijs/transformers": "^1.22.2", + "@shikijs/types": "^1.22.2", + "@types/markdown-it": "^14.1.2", + "@vitejs/plugin-vue": "^5.1.4", + "@vue/devtools-api": "^7.5.4", + "@vue/shared": "^3.5.12", + "@vueuse/core": "^11.1.0", + "@vueuse/integrations": "^11.1.0", + "focus-trap": "^7.6.0", "mark.js": "8.11.1", - "minisearch": "^6.2.0", - "shiki": "^0.14.5", - "vite": "^5.0.0", - "vue": "^3.3.8" - }, - "dependencies": { - "@esbuild/android-arm": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.5.tgz", - "integrity": "sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz", - "integrity": "sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==", - "dev": true, - "optional": true - }, - "@esbuild/android-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.5.tgz", - "integrity": "sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz", - "integrity": "sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz", - "integrity": "sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz", - "integrity": "sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz", - "integrity": "sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz", - "integrity": "sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz", - "integrity": "sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz", - "integrity": "sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz", - "integrity": "sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz", - "integrity": "sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz", - "integrity": "sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==", - "dev": true, - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz", - "integrity": "sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==", - "dev": true, - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz", - "integrity": "sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz", - "integrity": "sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==", - "dev": true, - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz", - "integrity": "sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==", - "dev": true, - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz", - "integrity": "sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==", - "dev": true, - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz", - "integrity": "sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==", - "dev": true, - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz", - "integrity": "sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==", - "dev": true, - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz", - "integrity": "sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==", - "dev": true, - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz", - "integrity": "sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==", - "dev": true, - "optional": true - }, - "@types/markdown-it": { - "version": "13.0.6", - "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-13.0.6.tgz", - "integrity": "sha512-0VqpvusJn1/lwRegCxcHVdmLfF+wIsprsKMC9xW8UPcTxhFcQtoN/fBU1zMe8pH7D/RuueMh2CaBaNv+GrLqTw==", - "dev": true, - "requires": { - "@types/linkify-it": "*", - "@types/mdurl": "*" - } - }, - "esbuild": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.5.tgz", - "integrity": "sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==", - "dev": true, - "requires": { - "@esbuild/android-arm": "0.19.5", - "@esbuild/android-arm64": "0.19.5", - "@esbuild/android-x64": "0.19.5", - "@esbuild/darwin-arm64": "0.19.5", - "@esbuild/darwin-x64": "0.19.5", - "@esbuild/freebsd-arm64": "0.19.5", - "@esbuild/freebsd-x64": "0.19.5", - "@esbuild/linux-arm": "0.19.5", - "@esbuild/linux-arm64": "0.19.5", - "@esbuild/linux-ia32": "0.19.5", - "@esbuild/linux-loong64": "0.19.5", - "@esbuild/linux-mips64el": "0.19.5", - "@esbuild/linux-ppc64": "0.19.5", - "@esbuild/linux-riscv64": "0.19.5", - "@esbuild/linux-s390x": "0.19.5", - "@esbuild/linux-x64": "0.19.5", - "@esbuild/netbsd-x64": "0.19.5", - "@esbuild/openbsd-x64": "0.19.5", - "@esbuild/sunos-x64": "0.19.5", - "@esbuild/win32-arm64": "0.19.5", - "@esbuild/win32-ia32": "0.19.5", - "@esbuild/win32-x64": "0.19.5" - } - }, - "rollup": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.5.0.tgz", - "integrity": "sha512-41xsWhzxqjMDASCxH5ibw1mXk+3c4TNI2UjKbLxe6iEzrSQnqOzmmK8/3mufCPbzHNJ2e04Fc1ddI35hHy+8zg==", - "dev": true, - "requires": { - "@rollup/rollup-android-arm-eabi": "4.5.0", - "@rollup/rollup-android-arm64": "4.5.0", - "@rollup/rollup-darwin-arm64": "4.5.0", - "@rollup/rollup-darwin-x64": "4.5.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.5.0", - "@rollup/rollup-linux-arm64-gnu": "4.5.0", - "@rollup/rollup-linux-arm64-musl": "4.5.0", - "@rollup/rollup-linux-x64-gnu": "4.5.0", - "@rollup/rollup-linux-x64-musl": "4.5.0", - "@rollup/rollup-win32-arm64-msvc": "4.5.0", - "@rollup/rollup-win32-ia32-msvc": "4.5.0", - "@rollup/rollup-win32-x64-msvc": "4.5.0", - "fsevents": "~2.3.2" - } - }, - "vite": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.0.tgz", - "integrity": "sha512-ESJVM59mdyGpsiNAeHQOR/0fqNoOyWPYesFto8FFZugfmhdHx8Fzd8sF3Q/xkVhZsyOxHfdM7ieiVAorI9RjFw==", - "dev": true, - "requires": { - "esbuild": "^0.19.3", - "fsevents": "~2.3.3", - "postcss": "^8.4.31", - "rollup": "^4.2.0" - } - } + "minisearch": "^7.1.0", + "shiki": "^1.22.2", + "vite": "^5.4.10", + "vue": "^3.5.12" } }, - "vscode-oniguruma": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", - "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", - "dev": true - }, - "vscode-textmate": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", - "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", - "dev": true - }, "vue": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.8.tgz", - "integrity": "sha512-5VSX/3DabBikOXMsxzlW8JyfeLKlG9mzqnWgLQLty88vdZL7ZJgrdgBOmrArwxiLtmS+lNNpPcBYqrhE6TQW5w==", + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.12.tgz", + "integrity": "sha512-CLVZtXtn2ItBIi/zHZ0Sg1Xkb7+PU32bJJ8Bmy7ts3jxXTcbfsEfBivFYYWz1Hur+lalqGAh65Coin0r+HRUfg==", "dev": true, "requires": { - "@vue/compiler-dom": "3.3.8", - "@vue/compiler-sfc": "3.3.8", - "@vue/runtime-dom": "3.3.8", - "@vue/server-renderer": "3.3.8", - "@vue/shared": "3.3.8" + "@vue/compiler-dom": "3.5.12", + "@vue/compiler-sfc": "3.5.12", + "@vue/runtime-dom": "3.5.12", + "@vue/server-renderer": "3.5.12", + "@vue/shared": "3.5.12" } }, "w3c-xmlserializer": { @@ -4802,6 +6990,80 @@ "webidl-conversions": "^7.0.0" } }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + } + }, + "wrap-ansi-cjs": { + "version": "npm:wrap-ansi@7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, "ws": { "version": "8.14.2", "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", @@ -4820,6 +7082,18 @@ "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true + }, + "yaml": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz", + "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==", + "dev": true + }, + "zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "dev": true } } } diff --git a/docs/package.json b/docs/package.json index 116683366..7b7ea2c53 100644 --- a/docs/package.json +++ b/docs/package.json @@ -10,11 +10,14 @@ "devDependencies": { "@types/jsdom": "^21.1.5", "@types/prismjs": "^1.26.3", + "autoprefixer": "^10.4.20", "jsdom": "^22.1.0", + "postcss": "^8.4.49", "postcss-nesting": "^12.0.1", "prismjs": "^1.29.0", + "tailwindcss": "^3.4.16", "typescript": "^5.2.2", - "vitepress": "^1.0.0-rc.25" + "vitepress": "^1.5.0" }, "dependencies": { "medium-zoom": "^1.1.0" diff --git a/docs/postcss.config.js b/docs/postcss.config.js index 5b807d7e1..f4ebe3a9c 100644 --- a/docs/postcss.config.js +++ b/docs/postcss.config.js @@ -1,6 +1,8 @@ export default { plugins: { - 'postcss-nesting': {}, + 'tailwindcss': {}, + 'tailwindcss/nesting': {}, + 'autoprefixer': {}, } } diff --git a/docs/tailwind.config.js b/docs/tailwind.config.js new file mode 100644 index 000000000..a0e4d60b4 --- /dev/null +++ b/docs/tailwind.config.js @@ -0,0 +1,10 @@ + + +/** @type {import('tailwindcss').Config} */ +export default { + content: [], + theme: { + extend: {}, + }, + plugins: [], +} diff --git a/ide.json b/ide.json new file mode 100644 index 000000000..3b836692d --- /dev/null +++ b/ide.json @@ -0,0 +1,32 @@ +{ + "$schema": "https://laravel-ide.com/schema/laravel-ide-v2.json", + "view": { + "paths": [ + { + "path": "tests/Fixtures/resources/views", + "namespace": "fixtures" + }, + { + "path": "demo/resources/views" + }, + { + "path": "resources/views", + "namespace": "sharp" + } + ] + }, + "blade": { + "components": { + "viewPaths": [ + { + "path": "resources/views/components", + "namespace": "sharp" + }, + { + "path": "src/View/Components", + "namespace": "sharp" + } + ] + } + } +} diff --git a/jest.config.js b/jest.config.js index 1d1aa5aa8..30d00478d 100644 --- a/jest.config.js +++ b/jest.config.js @@ -8,7 +8,7 @@ const config = { ], transform: { "^.+\\.js$": "babel-jest", - "^.+\\.vue$": "@vue/vue2-jest" + // "^.+\\.vue$": "@vue/vue2-jest" // todo update to vue 3 }, snapshotSerializers: [ "/packages/test-utils/src/htmlSnapshotBeautifier.js" diff --git a/package-lock.json b/package-lock.json index e37d6a136..be69b1fb2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,135 +4,177 @@ "requires": true, "packages": { "": { + "name": "sharp", "workspaces": [ - "packages/*", - "resources/assets/js" + "packages/*" ], "dependencies": { + "@fawmi/vue-google-maps": "^0.9.79", "@fortawesome/fontawesome-free": "^6.4.0", - "@tiptap/core": "^2.1.13", - "@tiptap/extension-character-count": "^2.1.13", - "@tiptap/extension-code-block": "^2.1.13", - "@tiptap/extension-highlight": "^2.1.13", - "@tiptap/extension-image": "^2.1.13", - "@tiptap/extension-link": "^2.1.13", - "@tiptap/extension-placeholder": "^2.1.13", - "@tiptap/extension-superscript": "^2.1.13", - "@tiptap/extension-table": "^2.1.13", - "@tiptap/extension-table-cell": "^2.1.13", - "@tiptap/extension-table-header": "^2.1.13", - "@tiptap/extension-table-row": "^2.1.13", - "@tiptap/starter-kit": "^2.1.13", - "@tiptap/vue-2": "^2.1.13", - "apexcharts": "^3.35.4", - "axios": "^0.19.2", - "bootstrap": "^5.3.0", - "bootstrap-vue": "^2.21.2", + "@googlemaps/js-api-loader": "^1.16.8", + "@headlessui/vue": "^1.7.19", + "@heroicons/vue": "^2.0.18", + "@inertiajs/vue3": "^2.0.0", + "@tiptap/core": "^2.2.2", + "@tiptap/extension-character-count": "^2.2.2", + "@tiptap/extension-code-block": "^2.2.2", + "@tiptap/extension-highlight": "^2.2.2", + "@tiptap/extension-image": "^2.2.2", + "@tiptap/extension-link": "^2.2.2", + "@tiptap/extension-placeholder": "^2.2.2", + "@tiptap/extension-superscript": "^2.2.2", + "@tiptap/extension-table": "^2.2.2", + "@tiptap/extension-table-cell": "^2.2.2", + "@tiptap/extension-table-header": "^2.2.2", + "@tiptap/extension-table-row": "^2.2.2", + "@tiptap/pm": "^2.2.2", + "@tiptap/starter-kit": "^2.2.2", + "@tiptap/vue-3": "^2.2.2", + "@uppy/core": "^3.5.1", + "@uppy/drag-drop": "^3.0.3", + "@uppy/drop-target": "^2.0.1", + "@uppy/file-input": "^3.0.3", + "@uppy/thumbnail-generator": "^3.0.5", + "@uppy/vue": "^1.0.2", + "@uppy/xhr-upload": "^3.4.1", + "@vue-leaflet/vue-leaflet": "^0.10.1", + "@vueuse/components": "^11.3.0", + "@vueuse/core": "^11.3.0", + "@vueuse/integrations": "^11.3.0", + "apexcharts": "^4.1.0", + "axios": "^1.5.1", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.0", "cropperjs": "^1.5.12", - "filesize": "^6.1.0", + "filesize": "^10.1.0", + "flexsearch": "^0.7.43", "font-awesome-filetypes": "^2.1.0", - "fuse.js": "^2.6.2", - "leaflet": "^1.4.0", + "leaflet": "^1.9.4", + "lodash": "^4.17.21", + "lucide-vue-next": "^0.363.0", "moment": "^2.19.1", + "nprogress": "^0.2.0", "qs": "^6.6.0", + "reka-ui": "^1.0.0-alpha.8", + "sortablejs": "^1.15.2", + "tailwind-merge": "^2.2.2", + "tailwindcss-animate": "^1.0.7", "text-clipper": "^1.3.0", - "tiptap-markdown": "^0.8.8", - "v-calendar": "^2.4.1", - "vue": "^2.6.11", - "vue-apexcharts": "^1.6.0", - "vue-clip": "^1.0.0", + "tiptap-markdown": "^0.7.3", + "vue": "^3.5.12", "vue-cropperjs": "^4.2.0", "vue-multiselect": "^2.1.3", "vue-notification": "^1.3.20", "vue-router": "^3.4.9", + "vue-sonner": "^1.1.2", "vue-template-compiler": "^2.7.14", - "vue2-animate": "^2.0.0", - "vue2-google-maps": "^0.10.7", - "vue2-leaflet": "^2.0.2", - "vue2-timepicker": "^0.1.4", - "vuedraggable": "^2.10.0", + "vue3-apexcharts": "^1.8.0", "vuejs-datepicker": "^0.9.16", - "vuex": "^3.5.1" + "vuex": "^4.1.0" }, "devDependencies": { - "@babel/preset-env": "^7.14.4", + "@babel/preset-env": "^7.23.9", + "@csstools/postcss-oklab-function": "^4.0.3", "@sharp/test-utils": "file:packages/test-utils", + "@tailwindcss/container-queries": "^0.1.1", + "@tailwindcss/forms": "^0.5.4", + "@types/google.maps": "^3.54.3", "@types/jest": "^26.0.19", - "@vitejs/plugin-vue2": "^2.2.0", + "@types/leaflet": "^1.9.6", + "@types/lodash": "^4.17.13", + "@types/nprogress": "^0.2.3", + "@types/qs": "^6.9.7", + "@types/sortablejs": "^1.15.8", + "@vitejs/plugin-legacy": "^5.3.2", + "@vitejs/plugin-vue": "^5.1.4", + "@vue/language-server": "^2.1.6", "@vue/test-utils": "^1.0.0-beta.29", - "@vue/vue2-jest": "^27.0.0", - "babel-runtime": "^6.26.0", - "core-js": "^3.0.0-beta.8", + "autoprefixer": "^10.4.14", + "core-js": "^3.36.0", "cross-env": "3.1.3", "jest": "^27.5.1", - "js-beautify": "^1.7.4", - "laravel-vite-plugin": "^0.8.0", + "laravel-vite-plugin": "^1.0.5", "moment-timezone": "^0.5.13", "moxios": "^0.4.0", - "null-loader": "^4.0.1", - "resolve-url-loader": "^3.1.0", + "prosemirror-model": "^1.19.4", + "prosemirror-state": "^1.4.3", + "prosemirror-view": "^1.33.1", "rollup-plugin-ignore-import": "^1.3.2", - "sass": "npm:sass-embedded@^1.60.0", - "sass-loader": "^13.0.2", - "vite": "^4.4.6", + "tailwindcss": "^3.4.3", + "typescript": "^5.6.3", + "vite": "^5.4.9", "vite-bundle-visualizer": "^0.8.1", - "vue-loader": "^15.9.8" + "vite-plugin-circular-dependency": "^0.4.1", + "vite-svg-loader": "^5.1.0" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.0" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", "dev": true, "dependencies": { - "@babel/highlight": "^7.16.7" + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz", - "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.17.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.5.tgz", - "integrity": "sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.17.2", - "@babel/parser": "^7.17.3", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0", - "convert-source-map": "^1.7.0", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz", + "integrity": "sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.4", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.4", + "@babel/parser": "^7.24.4", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -142,24 +184,31 @@ "url": "https://opencollective.com/babel" } }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/generator": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.3.tgz", - "integrity": "sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.4.tgz", + "integrity": "sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==", "dev": true, "dependencies": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.24.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" }, "engines": { "node": ">=6.9.0" @@ -178,70 +227,84 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", "dev": true, "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", - "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", - "semver": "^6.3.0" + "@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" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" } }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" } }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz", - "integrity": "sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==", + "version": "7.23.10", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz", + "integrity": "sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" + "@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/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -250,14 +313,24 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", - "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -266,6 +339,15 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/helper-define-polyfill-provider": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", @@ -295,253 +377,236 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, "dependencies": { - "@babel/helper-get-function-arity": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", - "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.6.tgz", - "integrity": "sha512-2ULmRdqoOMpdvkbT8jONrZML/XALfzxlb052bldftkicAUy8AxSCkD5trDPQcwHNmolcl7wP6ehNqMlyUw6AaA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", - "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, "dependencies": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz", + "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true, + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz", + "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz", - "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.4.tgz", + "integrity": "sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==", "dev": true, "dependencies": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.0", - "@babel/types": "^7.17.0" + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", + "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" @@ -554,9 +619,12 @@ "dev": true }, "node_modules/@babel/parser": { - "version": "7.22.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz", - "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.8.tgz", + "integrity": "sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==", + "dependencies": { + "@babel/types": "^7.25.8" + }, "bin": { "parser": "bin/babel-parser.js" }, @@ -565,12 +633,12 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -580,14 +648,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" }, "engines": { "node": ">=6.9.0" @@ -596,150 +664,20 @@ "@babel/core": "^7.13.0" } }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", - "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz", + "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, "node_modules/@babel/plugin-proposal-object-rest-spread": { @@ -761,66 +699,11 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, "engines": { "node": ">=6.9.0" }, @@ -828,22 +711,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", @@ -916,6 +783,36 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-import-meta": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", @@ -1057,13 +954,47 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz", + "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { "node": ">=6.9.0" @@ -1073,14 +1004,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -1090,12 +1021,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1105,12 +1036,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1119,19 +1050,52 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", + "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", + "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz", + "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", "globals": "^11.1.0" }, "engines": { @@ -1142,12 +1106,13 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" }, "engines": { "node": ">=6.9.0" @@ -1157,12 +1122,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.3.tgz", - "integrity": "sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1172,13 +1137,13 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1188,12 +1153,28 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", + "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1203,13 +1184,29 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", "dev": true, "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", + "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1219,12 +1216,13 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", + "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1234,14 +1232,30 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", + "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1251,12 +1265,28 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", + "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { "node": ">=6.9.0" @@ -1266,12 +1296,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1281,14 +1311,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1298,15 +1327,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz", - "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1316,16 +1344,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", - "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz", + "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==", "dev": true, "dependencies": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -1335,13 +1362,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1351,12 +1378,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", - "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1366,12 +1394,63 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", + "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", + "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", + "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.23.3" }, "engines": { "node": ">=6.9.0" @@ -1381,13 +1460,46 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", + "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", + "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1397,12 +1509,46 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", + "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", + "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { "node": ">=6.9.0" @@ -1412,12 +1558,12 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1427,12 +1573,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", - "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", "dev": true, "dependencies": { - "regenerator-transform": "^0.14.2" + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" }, "engines": { "node": ">=6.9.0" @@ -1442,12 +1589,12 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1486,12 +1633,12 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1501,13 +1648,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1517,12 +1664,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1532,12 +1679,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1547,12 +1694,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1562,12 +1709,28 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1577,13 +1740,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1592,38 +1755,44 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-env": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.9.tgz", + "integrity": "sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -1633,45 +1802,61 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", - "semver": "^6.3.0" + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.9", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.4", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.4", + "@babel/plugin-transform-classes": "^7.23.8", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.4", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.4", + "@babel/plugin-transform-for-of": "^7.23.6", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.4", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.9", + "@babel/plugin-transform-modules-umd": "^7.23.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", + "@babel/plugin-transform-numeric-separator": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.23.4", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.4", + "@babel/plugin-transform-optional-chaining": "^7.23.4", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.4", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.8", + "babel-plugin-polyfill-corejs3": "^0.9.0", + "babel-plugin-polyfill-regenerator": "^0.5.5", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -1680,71 +1865,130 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/preset-env/node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", + "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz", + "integrity": "sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.5.0", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz", + "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.5.0", + "core-js-compat": "^3.34.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", + "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.5.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, "node_modules/@babel/runtime": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz", - "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.1.tgz", + "integrity": "sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==", "dependencies": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", - "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.3", - "@babel/types": "^7.17.0", - "debug": "^4.1.0", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", + "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.1", + "@babel/generator": "^7.24.1", + "@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.24.1", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", "globals": "^11.1.0" }, "engines": { @@ -1752,12 +1996,12 @@ } }, "node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.8.tgz", + "integrity": "sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==", "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-string-parser": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", "to-fast-properties": "^2.0.0" }, "engines": { @@ -1768,7 +2012,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, "engines": { "node": ">=4" } @@ -1783,12 +2026,271 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-1.3.0.tgz", "integrity": "sha512-G372ods0pLt46yxVRsnP/e2btVPuuzArcMPFpIDeIwiGPuuglEs9y75iG0HMvZgncsj5TvbYRWqbVyOe3PLCWQ==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/@csstools/color-helpers": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.1.tgz", + "integrity": "sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/css-calc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.0.2.tgz", + "integrity": "sha512-N70YZw+R6WDP9EEd5xAT3xd+SgZFZsllXR6kclq6U8e2thlakNpWCKhuOiWfCKU8HpeWOyL+2ArSX8uDszMytA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.2", + "@csstools/css-tokenizer": "^3.0.2" + } + }, + "node_modules/@csstools/css-color-parser": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.3.tgz", + "integrity": "sha512-mnOTQ6KbQ6GHfdVHVTNXffroW0r5P5531h73bIyEzWAScGjMPQi+1XYgAydYVaZiKeXlQ4GHG9dnBWq9h7xFIQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/color-helpers": "^5.0.1", + "@csstools/css-calc": "^2.0.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.2", + "@csstools/css-tokenizer": "^3.0.2" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.2.tgz", + "integrity": "sha512-6tC/MnlEvs5suR4Ahef4YlBccJDHZuxGsAlxXmybWjZ5jPxlzLSMlRZ9mVHSRvlD+CmtE7+hJ+UQbfXrws/rUQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.2" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.2.tgz", + "integrity": "sha512-IuTRcD53WHsXPCZ6W7ubfGqReTJ9Ra0yRRFmXYP/Re8hFYYfoIYIK4080X5luslVLWimhIeFq0hj09urVMQzTw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/postcss-oklab-function": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.3.tgz", + "integrity": "sha512-BrhnL98OSpWt5EOMk5Hm+kL0kjA8BhBc9DGG0jYgww1GhWItn+L/McQ4WgHE2cm9+jSUE2OMy/31WvSRKhWpnQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-color-parser": "^3.0.3", + "@csstools/css-parser-algorithms": "^3.0.2", + "@csstools/css-tokenizer": "^3.0.2", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.0.0.tgz", + "integrity": "sha512-XQPtROaQjomnvLUSy/bALTR5VCtTVUFwYs1SblvYgLSeTo2a/bMNwUwo2piXw5rTv/FEYiy5yPSXBqg9OKUx7Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/utilities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@csstools/utilities/-/utilities-2.0.0.tgz", + "integrity": "sha512-5VdOr0Z71u+Yp3ozOx8T11N703wIFGVRgOWbOZMKgglPJsWA54MRIoMNVMa7shUToIhx5J8vX4sOZgD2XiihiQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@emmetio/abbreviation": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@emmetio/abbreviation/-/abbreviation-2.3.3.tgz", + "integrity": "sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==", + "dev": true, + "dependencies": { + "@emmetio/scanner": "^1.0.4" + } + }, + "node_modules/@emmetio/css-abbreviation": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@emmetio/css-abbreviation/-/css-abbreviation-2.1.8.tgz", + "integrity": "sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==", + "dev": true, + "dependencies": { + "@emmetio/scanner": "^1.0.4" + } + }, + "node_modules/@emmetio/css-parser": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@emmetio/css-parser/-/css-parser-0.4.0.tgz", + "integrity": "sha512-z7wkxRSZgrQHXVzObGkXG+Vmj3uRlpM11oCZ9pbaz0nFejvCDmAiNDpY75+wgXOcffKpj4rzGtwGaZxfJKsJxw==", + "dev": true, + "dependencies": { + "@emmetio/stream-reader": "^2.2.0", + "@emmetio/stream-reader-utils": "^0.1.0" + } + }, + "node_modules/@emmetio/html-matcher": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@emmetio/html-matcher/-/html-matcher-1.3.0.tgz", + "integrity": "sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==", + "dev": true, + "dependencies": { + "@emmetio/scanner": "^1.0.0" + } + }, + "node_modules/@emmetio/scanner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@emmetio/scanner/-/scanner-1.0.4.tgz", + "integrity": "sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==", + "dev": true + }, + "node_modules/@emmetio/stream-reader": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@emmetio/stream-reader/-/stream-reader-2.2.0.tgz", + "integrity": "sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==", "dev": true }, + "node_modules/@emmetio/stream-reader-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@emmetio/stream-reader-utils/-/stream-reader-utils-0.1.0.tgz", + "integrity": "sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==", + "dev": true + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@esbuild/android-arm": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.16.tgz", - "integrity": "sha512-gCHjjQmA8L0soklKbLKA6pgsLk1byULuHe94lkZDzcO3/Ta+bbeewJioEn1Fr7kgy9NWNFy/C+MrBwC6I/WCug==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", "cpu": [ "arm" ], @@ -1802,9 +2304,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.16.tgz", - "integrity": "sha512-wsCqSPqLz+6Ov+OM4EthU43DyYVVyfn15S4j1bJzylDpc1r1jZFFfJQNfDuT8SlgwuqpmpJXK4uPlHGw6ve7eA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", "cpu": [ "arm64" ], @@ -1818,9 +2320,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.16.tgz", - "integrity": "sha512-ldsTXolyA3eTQ1//4DS+E15xl0H/3DTRJaRL0/0PgkqDsI0fV/FlOtD+h0u/AUJr+eOTlZv4aC9gvfppo3C4sw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", "cpu": [ "x64" ], @@ -1834,9 +2336,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.16.tgz", - "integrity": "sha512-aBxruWCII+OtluORR/KvisEw0ALuw/qDQWvkoosA+c/ngC/Kwk0lLaZ+B++LLS481/VdydB2u6tYpWxUfnLAIw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", "cpu": [ "arm64" ], @@ -1850,9 +2352,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.16.tgz", - "integrity": "sha512-6w4Dbue280+rp3LnkgmriS1icOUZDyPuZo/9VsuMUTns7SYEiOaJ7Ca1cbhu9KVObAWfmdjUl4gwy9TIgiO5eA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", "cpu": [ "x64" ], @@ -1866,9 +2368,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.16.tgz", - "integrity": "sha512-x35fCebhe9s979DGKbVAwXUOcTmCIE32AIqB9CB1GralMIvxdnMLAw5CnID17ipEw9/3MvDsusj/cspYt2ZLNQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", "cpu": [ "arm64" ], @@ -1882,9 +2384,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.16.tgz", - "integrity": "sha512-YM98f+PeNXF3GbxIJlUsj+McUWG1irguBHkszCIwfr3BXtXZsXo0vqybjUDFfu9a8Wr7uUD/YSmHib+EeGAFlg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", "cpu": [ "x64" ], @@ -1898,9 +2400,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.16.tgz", - "integrity": "sha512-b5ABb+5Ha2C9JkeZXV+b+OruR1tJ33ePmv9ZwMeETSEKlmu/WJ45XTTG+l6a2KDsQtJJ66qo/hbSGBtk0XVLHw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", "cpu": [ "arm" ], @@ -1914,9 +2416,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.16.tgz", - "integrity": "sha512-XIqhNUxJiuy+zsR77+H5Z2f7s4YRlriSJKtvx99nJuG5ATuJPjmZ9n0ANgnGlPCpXGSReFpgcJ7O3SMtzIFeiQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", "cpu": [ "arm64" ], @@ -1930,9 +2432,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.16.tgz", - "integrity": "sha512-no+pfEpwnRvIyH+txbBAWtjxPU9grslmTBfsmDndj7bnBmr55rOo/PfQmRfz7Qg9isswt1FP5hBbWb23fRWnow==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", "cpu": [ "ia32" ], @@ -1946,9 +2448,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.16.tgz", - "integrity": "sha512-Zbnczs9ZXjmo0oZSS0zbNlJbcwKXa/fcNhYQjahDs4Xg18UumpXG/lwM2lcSvHS3mTrRyCYZvJbmzYc4laRI1g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", "cpu": [ "loong64" ], @@ -1962,9 +2464,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.16.tgz", - "integrity": "sha512-YMF7hih1HVR/hQVa/ot4UVffc5ZlrzEb3k2ip0nZr1w6fnYypll9td2qcoMLvd3o8j3y6EbJM3MyIcXIVzXvQQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", "cpu": [ "mips64el" ], @@ -1978,9 +2480,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.16.tgz", - "integrity": "sha512-Wkz++LZ29lDwUyTSEnzDaaP5OveOgTU69q9IyIw9WqLRxM4BjTBjz9un4G6TOvehWpf/J3gYVFN96TjGHrbcNQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", "cpu": [ "ppc64" ], @@ -1994,9 +2496,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.16.tgz", - "integrity": "sha512-LFMKZ30tk78/mUv1ygvIP+568bwf4oN6reG/uczXnz6SvFn4e2QUFpUpZY9iSJT6Qpgstrhef/nMykIXZtZWGQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", "cpu": [ "riscv64" ], @@ -2010,9 +2512,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.16.tgz", - "integrity": "sha512-3ZC0BgyYHYKfZo3AV2/66TD/I9tlSBaW7eWTEIkrQQKfJIifKMMttXl9FrAg+UT0SGYsCRLI35Gwdmm96vlOjg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", "cpu": [ "s390x" ], @@ -2026,9 +2528,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.16.tgz", - "integrity": "sha512-xu86B3647DihHJHv/wx3NCz2Dg1gjQ8bbf9cVYZzWKY+gsvxYmn/lnVlqDRazObc3UMwoHpUhNYaZset4X8IPA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", "cpu": [ "x64" ], @@ -2042,9 +2544,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.16.tgz", - "integrity": "sha512-uVAgpimx9Ffw3xowtg/7qQPwHFx94yCje+DoBx+LNm2ePDpQXHrzE+Sb0Si2VBObYz+LcRps15cq+95YM7gkUw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", "cpu": [ "x64" ], @@ -2058,9 +2560,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.16.tgz", - "integrity": "sha512-6OjCQM9wf7z8/MBi6BOWaTL2AS/SZudsZtBziXMtNI8r/U41AxS9x7jn0ATOwVy08OotwkPqGRMkpPR2wcTJXA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", "cpu": [ "x64" ], @@ -2074,9 +2576,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.16.tgz", - "integrity": "sha512-ZoNkruFYJp9d1LbUYCh8awgQDvB9uOMZqlQ+gGEZR7v6C+N6u7vPr86c+Chih8niBR81Q/bHOSKGBK3brJyvkQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", "cpu": [ "x64" ], @@ -2090,9 +2592,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.16.tgz", - "integrity": "sha512-+j4anzQ9hrs+iqO+/wa8UE6TVkKua1pXUb0XWFOx0FiAj6R9INJ+WE//1/Xo6FG1vB5EpH3ko+XcgwiDXTxcdw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", "cpu": [ "arm64" ], @@ -2106,9 +2608,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.16.tgz", - "integrity": "sha512-5PFPmq3sSKTp9cT9dzvI67WNfRZGvEVctcZa1KGjDDu4n3H8k59Inbk0du1fz0KrAbKKNpJbdFXQMDUz7BG4rQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", "cpu": [ "ia32" ], @@ -2122,9 +2624,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.16.tgz", - "integrity": "sha512-sCIVrrtcWN5Ua7jYXNG1xD199IalrbfV2+0k/2Zf2OyV2FtnQnMgdzgpRAbi4AWlKJj1jkX+M+fEGPQj6BQB4w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", "cpu": [ "x64" ], @@ -2137,6 +2639,46 @@ "node": ">=12" } }, + "node_modules/@fawmi/vue-google-maps": { + "version": "0.9.79", + "resolved": "https://registry.npmjs.org/@fawmi/vue-google-maps/-/vue-google-maps-0.9.79.tgz", + "integrity": "sha512-SnITonfrBfT/7uESF8SCs1DRWHSJyr/K0bPv9taONAUp/YiggmlwHOwAzA63UeDl8vP0bBmT56MYC1bZmAdUjQ==", + "dependencies": { + "@googlemaps/markerclusterer": "^2.0.3" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.8.tgz", + "integrity": "sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==", + "dependencies": { + "@floating-ui/utils": "^0.2.8" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.12", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.12.tgz", + "integrity": "sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.8" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.8.tgz", + "integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==" + }, + "node_modules/@floating-ui/vue": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@floating-ui/vue/-/vue-1.1.5.tgz", + "integrity": "sha512-ynL1p5Z+woPVSwgMGqeDrx6HrJfGIDzFyESFkyqJKilGW1+h/8yVY29Khn0LaU6wHBRwZ13ntG6reiHWK6jyzw==", + "dependencies": { + "@floating-ui/dom": "^1.0.0", + "@floating-ui/utils": "^0.2.8", + "vue-demi": ">=0.13.0" + } + }, "node_modules/@fortawesome/fontawesome-free": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.4.0.tgz", @@ -2146,13 +2688,80 @@ "node": ">=6" } }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true, - "optional": true, - "peer": true + "node_modules/@googlemaps/js-api-loader": { + "version": "1.16.8", + "resolved": "https://registry.npmjs.org/@googlemaps/js-api-loader/-/js-api-loader-1.16.8.tgz", + "integrity": "sha512-CROqqwfKotdO6EBjZO/gQGVTbeDps5V7Mt9+8+5Q+jTg5CRMi3Ii/L9PmV3USROrt2uWxtGzJHORmByxyo9pSQ==" + }, + "node_modules/@googlemaps/markerclusterer": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@googlemaps/markerclusterer/-/markerclusterer-2.5.0.tgz", + "integrity": "sha512-WpHLCZxP7QmB4Hc5kyODGdTfJPsZiOIbcvbYhcS/VeiRNDVjf6CRQ8ViQjwrG5OySC66rtOdj4RVhUXsd1tNTQ==", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "supercluster": "^8.0.1" + } + }, + "node_modules/@headlessui/vue": { + "version": "1.7.19", + "resolved": "https://registry.npmjs.org/@headlessui/vue/-/vue-1.7.19.tgz", + "integrity": "sha512-VFjKPybogux/5/QYGSq4zgG/x3RcxId15W8uguAJAjPBxelI23dwjOjTx/mIiMkM/Hd3rzFxcf2aIp56eEWRcA==", + "dependencies": { + "@tanstack/vue-virtual": "^3.0.0-beta.60" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/@heroicons/vue": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/@heroicons/vue/-/vue-2.0.18.tgz", + "integrity": "sha512-BcTC9nq2TkwNSfQuqo96J7ehx4etezypc2YeTq7KsXWxrcrerhkgjLrxGRBnStN0wrXo0Gv4BInybqz5uBG6Cw==", + "peerDependencies": { + "vue": ">= 3" + } + }, + "node_modules/@inertiajs/core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@inertiajs/core/-/core-2.0.0.tgz", + "integrity": "sha512-2kvlk731NjwfXUku/ZoXsZNcOzx985icHtTC1dgN+8sAZtJfEg9QBrQ7sBjeLYiWtKgobJdwwpeDaexEneAtLQ==", + "dependencies": { + "axios": "^1.6.0", + "deepmerge": "^4.0.0", + "qs": "^6.9.0" + } + }, + "node_modules/@inertiajs/vue3": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@inertiajs/vue3/-/vue3-2.0.0.tgz", + "integrity": "sha512-U38EM8jqlfX2WmVK/vJWZr+jD71qvnmNPnUuZ+4mS2QNFdNmUeg2M/HbLmvR4WLWsxIl+7GYQySy4sW3tu/uTA==", + "dependencies": { + "@inertiajs/core": "2.0.0", + "lodash.clonedeep": "^4.5.0", + "lodash.isequal": "^4.5.0" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/@internationalized/date": { + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.6.tgz", + "integrity": "sha512-jLxQjefH9VI5P9UQuqB6qNKnvFt1Ky1TPIzHGsIlCi7sZZoMR8SdYbBGRvM0y+Jtb+ez4ieBzmiAUcpmPYpyOw==", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@internationalized/number": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.5.4.tgz", + "integrity": "sha512-h9huwWjNqYyE2FXZZewWqmCdkw1HeFds5q4Siuoms3hUQC5iPJK3aBmkFZoDSLN4UD0Bl8G22L/NdHpeOr+/7A==", + "dependencies": { + "@swc/helpers": "^0.5.0" + } }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", @@ -2851,37 +3460,55 @@ "node": ">=8" } }, + "node_modules/@johnsoncodehk/pug-beautify": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@johnsoncodehk/pug-beautify/-/pug-beautify-0.2.2.tgz", + "integrity": "sha512-qqNS/YD0Nck5wtQLCPHAfGVgWbbGafxSPjNh0ekYPFSNNqnDH2kamnduzYly8IiADmeVx/MfAE1njMEjVeHTMA==", + "dev": true + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", - "dev": true, + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", - "dev": true + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", - "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", - "dev": true, + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@linaria/core": { - "version": "3.0.0-beta.13", - "resolved": "https://registry.npmjs.org/@linaria/core/-/core-3.0.0-beta.13.tgz", - "integrity": "sha512-3zEi5plBCOsEzUneRVuQb+2SAx3qaC1dj0FfFAI6zIJQoDWu0dlSwKijMRack7oO9tUWrchfj3OkKQAd1LBdVg==", - "peer": true - }, "node_modules/@mrmlnc/readdir-enhanced": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", @@ -2901,159 +3528,36 @@ "integrity": "sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==", "dev": true }, - "node_modules/@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - } - }, - "node_modules/@npmcli/fs/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/fs/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/fs/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/move-file/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@nuxt/opencollective": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@nuxt/opencollective/-/opencollective-0.3.2.tgz", - "integrity": "sha512-XG7rUdXG9fcafu9KTDIYjJSkRO38EwjlKYIb5TQ/0WDbiTUTtUtgncMscKOYzfsY86kGs05pAuMOR+3Fi0aN3A==", - "dependencies": { - "chalk": "^4.1.0", - "consola": "^2.15.0", - "node-fetch": "^2.6.1" - }, - "bin": { - "opencollective": "bin/opencollective.js" - }, - "engines": { - "node": ">=8.0.0", - "npm": ">=5.0.0" - } - }, - "node_modules/@nuxt/opencollective/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@nuxt/opencollective/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@nuxt/opencollective/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dependencies": { - "color-name": "~1.1.4" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": ">=7.0.0" + "node": ">= 8" } }, - "node_modules/@nuxt/opencollective/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/@nuxt/opencollective/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "engines": { - "node": ">=8" + "node": ">= 8" } }, - "node_modules/@nuxt/opencollective/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dependencies": { - "has-flag": "^4.0.0" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, "engines": { - "node": ">=8" + "node": ">= 8" } }, "node_modules/@popperjs/core": { @@ -3066,30 +3570,23 @@ } }, "node_modules/@remirror/core-constants": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@remirror/core-constants/-/core-constants-2.0.0.tgz", - "integrity": "sha512-vpePPMecHJllBqCWXl6+FIcZqS+tRUM2kSCCKFeEo1H3XUEv3ocijBIPhnlSAa7g6maX+12ATTgxrOsLpWVr2g==", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.13.10" - } + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@remirror/core-constants/-/core-constants-2.0.2.tgz", + "integrity": "sha512-dyHY+sMF0ihPus3O27ODd4+agdHMEmuRdyiZJ2CCWjPV5UFmn17ZbElvk6WOGVE4rdCJKZQCrPV2BcikOMLUGQ==" }, "node_modules/@remirror/core-helpers": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@remirror/core-helpers/-/core-helpers-2.0.1.tgz", - "integrity": "sha512-s8M1pn33aBUhduvD1QR02uUQMegnFkGaTr4c1iBzxTTyg0rbQstzuQ7Q8TkL6n64JtgCdJS9jLz2dONb2meBKQ==", - "peer": true, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@remirror/core-helpers/-/core-helpers-3.0.0.tgz", + "integrity": "sha512-tusEgQJIqg4qKj6HSBUFcyRnWnziw3neh4T9wOmsPGHFC3w9kl5KSrDb9UAgE8uX6y32FnS7vJ955mWOl3n50A==", "dependencies": { - "@babel/runtime": "^7.13.10", - "@linaria/core": "3.0.0-beta.13", - "@remirror/core-constants": "^2.0.0", - "@remirror/types": "^1.0.0", + "@remirror/core-constants": "^2.0.2", + "@remirror/types": "^1.0.1", "@types/object.omit": "^3.0.0", - "@types/object.pick": "^1.3.1", + "@types/object.pick": "^1.3.2", "@types/throttle-debounce": "^2.1.0", - "case-anything": "^2.1.10", + "case-anything": "^2.1.13", "dash-get": "^1.0.2", - "deepmerge": "^4.2.2", + "deepmerge": "^4.3.1", "fast-deep-equal": "^3.1.3", "make-error": "^1.3.6", "object.omit": "^3.0.0", @@ -3098,30 +3595,281 @@ } }, "node_modules/@remirror/types": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@remirror/types/-/types-1.0.0.tgz", - "integrity": "sha512-7HQbW7k8VxrAtfzs9FxwO6XSDabn8tSFDi1wwzShOnU+cvaYpfxu0ygyTk3TpXsag1hgFKY3ZIlAfB4WVz2LkQ==", - "peer": true, + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@remirror/types/-/types-1.0.1.tgz", + "integrity": "sha512-VlZQxwGnt1jtQ18D6JqdIF+uFZo525WEqrfp9BOc3COPpK4+AWCgdnAWL+ho6imWcoINlGjR/+3b6y5C1vBVEA==", "dependencies": { - "type-fest": "^2.0.0" + "type-fest": "^2.19.0" } }, - "node_modules/@remirror/types/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "peer": true, + "node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, "engines": { - "node": ">=12.20" + "node": ">=14.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", + "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", + "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", + "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", + "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", + "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", + "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", + "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", + "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", + "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", + "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", + "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", + "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", + "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", + "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", + "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", + "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sharp/commands": { + "resolved": "packages/commands", + "link": true + }, + "node_modules/@sharp/dashboard": { + "resolved": "packages/dashboard", + "link": true + }, + "node_modules/@sharp/entity-list": { + "resolved": "packages/entity-list", + "link": true + }, + "node_modules/@sharp/filters": { + "resolved": "packages/filters", + "link": true + }, + "node_modules/@sharp/form": { + "resolved": "packages/form", + "link": true + }, + "node_modules/@sharp/show": { + "resolved": "packages/show", + "link": true + }, "node_modules/@sharp/test-utils": { "resolved": "packages/test-utils", "link": true }, + "node_modules/@sharp/ui": { + "resolved": "packages/ui", + "link": true + }, "node_modules/@sinonjs/commons": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", @@ -3140,10 +3888,119 @@ "@sinonjs/commons": "^1.7.0" } }, + "node_modules/@svgdotjs/svg.draggable.js": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@svgdotjs/svg.draggable.js/-/svg.draggable.js-3.0.4.tgz", + "integrity": "sha512-vWi/Col5Szo74HJVBgMHz23kLVljt3jvngmh0DzST45iO2ubIZ487uUAHIxSZH2tVRyiaaTL+Phaasgp4gUD2g==", + "peerDependencies": { + "@svgdotjs/svg.js": "^3.2.4" + } + }, + "node_modules/@svgdotjs/svg.filter.js": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@svgdotjs/svg.filter.js/-/svg.filter.js-3.0.8.tgz", + "integrity": "sha512-YshF2YDaeRA2StyzAs5nUPrev7npQ38oWD0eTRwnsciSL2KrRPMoUw8BzjIXItb3+dccKGTX3IQOd2NFzmHkog==", + "dependencies": { + "@svgdotjs/svg.js": "^3.1.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/@svgdotjs/svg.js": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@svgdotjs/svg.js/-/svg.js-3.2.4.tgz", + "integrity": "sha512-BjJ/7vWNowlX3Z8O4ywT58DqbNRyYlkk6Yz/D13aB7hGmfQTvGX4Tkgtm/ApYlu9M7lCQi15xUEidqMUmdMYwg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Fuzzyma" + } + }, + "node_modules/@svgdotjs/svg.resize.js": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@svgdotjs/svg.resize.js/-/svg.resize.js-2.0.5.tgz", + "integrity": "sha512-4heRW4B1QrJeENfi7326lUPYBCevj78FJs8kfeDxn5st0IYPIRXoTtOSYvTzFWgaWWXd3YCDE6ao4fmv91RthA==", + "engines": { + "node": ">= 14.18" + }, + "peerDependencies": { + "@svgdotjs/svg.js": "^3.2.4", + "@svgdotjs/svg.select.js": "^4.0.1" + } + }, + "node_modules/@svgdotjs/svg.select.js": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@svgdotjs/svg.select.js/-/svg.select.js-4.0.2.tgz", + "integrity": "sha512-5gWdrvoQX3keo03SCmgaBbD+kFftq0F/f2bzCbNnpkkvW6tk4rl4MakORzFuNjvXPWwB4az9GwuvVxQVnjaK2g==", + "engines": { + "node": ">= 14.18" + }, + "peerDependencies": { + "@svgdotjs/svg.js": "^3.2.4" + } + }, + "node_modules/@swc/helpers": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz", + "integrity": "sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@swc/helpers/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "node_modules/@tailwindcss/container-queries": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/container-queries/-/container-queries-0.1.1.tgz", + "integrity": "sha512-p18dswChx6WnTSaJCSGx6lTmrGzNNvm2FtXmiO6AuA1V4U5REyoqwmT6kgAsIMdjo07QdAfYXHJ4hnMtfHzWgA==", + "dev": true, + "peerDependencies": { + "tailwindcss": ">=3.2.0" + } + }, + "node_modules/@tailwindcss/forms": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.4.tgz", + "integrity": "sha512-YAm12D3R7/9Mh4jFbYSMnsd6jG++8KxogWgqs7hbdo/86aWjjlIEvL7+QYdVELmAI0InXTpZqFIg5e7aDVWI2Q==", + "dev": true, + "dependencies": { + "mini-svg-data-uri": "^1.2.3" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1" + } + }, + "node_modules/@tanstack/virtual-core": { + "version": "3.10.8", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.10.8.tgz", + "integrity": "sha512-PBu00mtt95jbKFi6Llk9aik8bnR3tR/oQP1o3TSi+iG//+Q2RTIzCEgKkHG8BB86kxMNW6O8wku+Lmi+QFR6jA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/vue-virtual": { + "version": "3.10.8", + "resolved": "https://registry.npmjs.org/@tanstack/vue-virtual/-/vue-virtual-3.10.8.tgz", + "integrity": "sha512-DB5QA8c/LfqOqIUCpSs3RdOTVroRRdqeHMqBkYrcashSZtOzIv8xbiqHgg7RYxDfkH5F3Y+e0MkuuyGNDVB0BQ==", + "dependencies": { + "@tanstack/virtual-core": "3.10.8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "vue": "^2.7.0 || ^3.0.0" + } + }, "node_modules/@tiptap/core": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.1.13.tgz", - "integrity": "sha512-cMC8bgTN63dj1Mv82iDeeLl6sa9kY0Pug8LSalxVEptRmyFVsVxGgu2/6Y3T+9aCYScxfS06EkA8SdzFMAwYTQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.2.2.tgz", + "integrity": "sha512-fec26LtNgYFGhKzEA9+Of+qLKIKUxDL/XZQofoPcxP71NffcmpZ+ZjAx9NjnvuYtvylUSySZiPauY6WhN3aprw==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3153,9 +4010,9 @@ } }, "node_modules/@tiptap/extension-blockquote": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.1.13.tgz", - "integrity": "sha512-oe6wSQACmODugoP9XH3Ouffjy4BsOBWfTC+dETHNCG6ZED6ShHN3CB9Vr7EwwRgmm2WLaKAjMO1sVumwH+Z1rg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.2.2.tgz", + "integrity": "sha512-ENCGx/yhNdUQ0epGOeTN4HFeUSfQDK2CQBy2szkQVtzG/Vhv8ExxBWTxHJcMoeSfEVmKag4B506vfRkKH24IMA==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3165,9 +4022,9 @@ } }, "node_modules/@tiptap/extension-bold": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.1.13.tgz", - "integrity": "sha512-6cHsQTh/rUiG4jkbJer3vk7g60I5tBwEBSGpdxmEHh83RsvevD8+n92PjA24hYYte5RNlATB011E1wu8PVhSvw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.2.2.tgz", + "integrity": "sha512-8/KLpPHwO+GXlWsXEION7ppLfFIaSpnw5m2QYXz/LGRK32hzpTavbdXV3rx9+Vu+7Z+0yQF9G/ro1z9dqTQHpw==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3177,9 +4034,9 @@ } }, "node_modules/@tiptap/extension-bubble-menu": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.1.13.tgz", - "integrity": "sha512-Hm7e1GX3AI6lfaUmr6WqsS9MMyXIzCkhh+VQi6K8jj4Q4s8kY4KPoAyD/c3v9pZ/dieUtm2TfqrOCkbHzsJQBg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.2.2.tgz", + "integrity": "sha512-W3OvoHxgBdQSrlX8FXvIs5wA+eHXe/0jGsqQdwLXPtqZOSR4Ks9OLmxDk2+O8ci0KCLPb6/doJYg7j/8Ic4KRg==", "dependencies": { "tippy.js": "^6.3.7" }, @@ -3193,9 +4050,9 @@ } }, "node_modules/@tiptap/extension-bullet-list": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.1.13.tgz", - "integrity": "sha512-NkWlQ5bLPUlcROj6G/d4oqAxMf3j3wfndGOPp0z8OoXJtVbVoXl/aMSlLbVgE6n8r6CS8MYxKhXNxrb7Ll2foA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.2.2.tgz", + "integrity": "sha512-mZznxwymWitQRHYxEN8LX7theJdQ1/O6kUsvwDyHw42+jaCsZumTHEWGckBwkxk3BWWKbrkRGv/cC78sa3cNJw==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3205,9 +4062,9 @@ } }, "node_modules/@tiptap/extension-character-count": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-character-count/-/extension-character-count-2.1.13.tgz", - "integrity": "sha512-FxPxS/Uqd4MgndInxXOcgNd225541Nsk1lT5e2uNTSNiQnG7dj7cSFG5KXGcSGLpGGt6e/E28WR6KLV+0/u+WA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-character-count/-/extension-character-count-2.2.2.tgz", + "integrity": "sha512-aObDoKXxVEi3sLaJFfaFLtKMH6e3zgKCkPhXOROUsrdapmvn/ubTuEXdVjiV9YZ7U6t57IYjlXV/jiVwDSgIjA==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3218,9 +4075,9 @@ } }, "node_modules/@tiptap/extension-code": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.1.13.tgz", - "integrity": "sha512-f5fLYlSgliVVa44vd7lQGvo49+peC+Z2H0Fn84TKNCH7tkNZzouoJsHYn0/enLaQ9Sq+24YPfqulfiwlxyiT8w==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.2.2.tgz", + "integrity": "sha512-CHMHK76fGFrY3TpsyNmPB393VvRgjnvLVOfc0Qx4KKEkntDQ1v2jg90XupLf0+H0aq0KQBHlSooW0Bh+7SxbmQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3230,9 +4087,9 @@ } }, "node_modules/@tiptap/extension-code-block": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.1.13.tgz", - "integrity": "sha512-E3tweNExPOV+t1ODKX0MDVsS0aeHGWc1ECt+uyp6XwzsN0bdF2A5+pttQqM7sTcMnQkVACGFbn9wDeLRRcfyQg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.2.2.tgz", + "integrity": "sha512-CKn4xqhpCfwkVdkj//A+LVf0hFrRkBbDx8u3KG+I7cegjXxvDSqb2OGhn/tXpFatLAE50GJiPIvqf+TmhIWBvA==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3243,9 +4100,9 @@ } }, "node_modules/@tiptap/extension-document": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.1.13.tgz", - "integrity": "sha512-wLwiTWsVmZTGIE5duTcHRmW4ulVxNW4nmgfpk95+mPn1iKyNGtrVhGWleLhBlTj+DWXDtcfNWZgqZkZNzhkqYQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.2.2.tgz", + "integrity": "sha512-eUhpYq8ErVAlxuTg5wslc96mniEQs+VN+tFmRrx9Q0n0nG/aDKUQFDgcSMpAMpHK7+h7tGc/rDq+ydpzZhFXlQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3255,9 +4112,9 @@ } }, "node_modules/@tiptap/extension-dropcursor": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.1.13.tgz", - "integrity": "sha512-NAyJi4BJxH7vl/2LNS1X0ndwFKjEtX+cRgshXCnMyh7qNpIRW6Plczapc/W1OiMncOEhZJfpZfkRSfwG01FWFg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.2.2.tgz", + "integrity": "sha512-HxXEf6m+W3PnT63Ib49qAmcwmapZvmyWgq9cvB5kSfl/znQT04wBgShEigkgUBLqgcM/R/RI8NS1GQl1Zpv9iQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3268,9 +4125,9 @@ } }, "node_modules/@tiptap/extension-floating-menu": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-2.1.13.tgz", - "integrity": "sha512-9Oz7pk1Nts2+EyY+rYfnREGbLzQ5UFazAvRhF6zAJdvyuDmAYm0Jp6s0GoTrpV0/dJEISoFaNpPdMJOb9EBNRw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-2.2.2.tgz", + "integrity": "sha512-DRz9kzcPt7S8s22EQC+KS/ghnHRV6j7Qequ+0kLjfLYPdqj2u4G5xTrFM7sWfzUqf2HdH8SS8Yo9WFMYm69D9w==", "dependencies": { "tippy.js": "^6.3.7" }, @@ -3284,9 +4141,9 @@ } }, "node_modules/@tiptap/extension-gapcursor": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.1.13.tgz", - "integrity": "sha512-Cl5apsoTcyPPCgE3ThufxQxZ1wyqqh+9uxUN9VF9AbeTkid6oPZvKXwaILf6AFnkSy+SuKrb9kZD2iaezxpzXw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.2.2.tgz", + "integrity": "sha512-qsE8yI9nZOLHg6XdFwn4BYMhR2f/50gppHJdsHx53575y2ci6uowMI+WjdEentl6yR9ctgV1jelHLs9ShmPzwQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3297,9 +4154,9 @@ } }, "node_modules/@tiptap/extension-hard-break": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.1.13.tgz", - "integrity": "sha512-TGkMzMQayuKg+vN4du0x1ahEItBLcCT1jdWeRsjdM8gHfzbPLdo4PQhVsvm1I0xaZmbJZelhnVsUwRZcIu1WNA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.2.2.tgz", + "integrity": "sha512-zbG6/7xyMim2fnRESIx2FiFHjdY7BXKMe+GUgLGPnRfXrJqSZhdVguBrtYGBnBFCnuSiOZZ6rFy+k5uORGSrhA==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3309,9 +4166,9 @@ } }, "node_modules/@tiptap/extension-heading": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.1.13.tgz", - "integrity": "sha512-PEmc19QLmlVUTiHWoF0hpgNTNPNU0nlaFmMKskzO+cx5Df4xvHmv/UqoIwp7/UFbPMkfVJT1ozQU7oD1IWn9Hg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.2.2.tgz", + "integrity": "sha512-oCd8VsLnrqJFY+lgA+5I/2EjBa4mQzB5DFLzCI460PfZnQJ2DmaNUdpY38BpHUv8E2PbBXzxxWS9h88yycW6yw==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3321,9 +4178,9 @@ } }, "node_modules/@tiptap/extension-highlight": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-highlight/-/extension-highlight-2.1.13.tgz", - "integrity": "sha512-ZivjJma5WwPYcG0rpnynVDGis32OGdtpTwETEb+2OOjZBCBlyYQ4tcRk5gS3nzBAjLl/Qu84VVbawLhHXB6few==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-highlight/-/extension-highlight-2.2.2.tgz", + "integrity": "sha512-tNDx0u54H/cnBVfGflq7a9WHzPTOdDgz0BzSj3ujHT8xAZG+yQWhm8bnq0BZc+7xODbGIQ22ZEzypIC7KNUzZQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3333,9 +4190,9 @@ } }, "node_modules/@tiptap/extension-history": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.1.13.tgz", - "integrity": "sha512-1ouitThGTBUObqw250aDwGLMNESBH5PRXIGybsCFO1bktdmWtEw7m72WY41EuX2BH8iKJpcYPerl3HfY1vmCNw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.2.2.tgz", + "integrity": "sha512-hcCEh7mP5H38ZY3YtbyyUOTNfKWAvITkJhVqjKbrRI3E+FOlG3pWPH3wz4srW5bHK38oUsiKwyP9FqC3C2Mixg==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3346,9 +4203,9 @@ } }, "node_modules/@tiptap/extension-horizontal-rule": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.1.13.tgz", - "integrity": "sha512-7OgjgNqZXvBejgULNdMSma2M1nzv4bbZG+FT5XMFZmEOxR9IB1x/RzChjPdeicff2ZK2sfhMBc4Y9femF5XkUg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.2.2.tgz", + "integrity": "sha512-5hun56M9elO6slOoDH03q2of06KB1rX8MLvfiKpfAvjbhmuQJav20fz2MQ2lCunek0D8mUIySwhfMvBrTcd90A==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3359,9 +4216,9 @@ } }, "node_modules/@tiptap/extension-image": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-2.1.13.tgz", - "integrity": "sha512-7oVAos+BU4KR/zQsfltrd8hgIxKxyxZ19dhwb1BJI2Nt3Mnx+yFPRlRSehID6RT9dYqgW4UW5d6vh/3HQcYYYw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-2.2.2.tgz", + "integrity": "sha512-fqZ2VB3K/c/Mi/2QTfav6CmTe33yGRkeQEivllSCCxgDD+kNYGto/P9maHSIJSG3RZWZHYfIPHmUJKfUlJRTXQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3371,9 +4228,9 @@ } }, "node_modules/@tiptap/extension-italic": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.1.13.tgz", - "integrity": "sha512-HyDJfuDn5hzwGKZiANcvgz6wcum6bEgb4wmJnfej8XanTMJatNVv63TVxCJ10dSc9KGpPVcIkg6W8/joNXIEbw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.2.2.tgz", + "integrity": "sha512-l9NZK4vYqYY9Y5UskLQpdbvi0sXG4I/MuhRxPdjitK8E3SVhZxMnoNwCTkq0+I1xBjCD/jSrDMV4FqkKesrl2w==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3383,9 +4240,9 @@ } }, "node_modules/@tiptap/extension-link": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-2.1.13.tgz", - "integrity": "sha512-wuGMf3zRtMHhMrKm9l6Tft5M2N21Z0UP1dZ5t1IlOAvOeYV2QZ5UynwFryxGKLO0NslCBLF/4b/HAdNXbfXWUA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-2.2.2.tgz", + "integrity": "sha512-hk2cxSWeFagv2erxVI4UUN9kTLqhTSLhtHKVNbKOW50dtkDqjzp9tri1+LYYpiObxDKoFFKfKjE6ojVtqMyn2w==", "dependencies": { "linkifyjs": "^4.1.0" }, @@ -3399,9 +4256,9 @@ } }, "node_modules/@tiptap/extension-list-item": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.1.13.tgz", - "integrity": "sha512-6e8iiCWXOiJTl1XOwVW2tc0YG18h70HUtEHFCx2m5HspOGFKsFEaSS3qYxOheM9HxlmQeDt8mTtqftRjEFRxPQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.2.2.tgz", + "integrity": "sha512-VuHlbhLePXvKTx55X0iIZ1EXARAoOf6lpbKJK8180jny2gpYxGhk7rwG1G8s6G6ZDST+kyVa04gncxz8F/z6oA==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3411,9 +4268,9 @@ } }, "node_modules/@tiptap/extension-ordered-list": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.1.13.tgz", - "integrity": "sha512-UO4ZAL5Vrr1WwER5VjgmeNIWHpqy9cnIRo1En07gZ0OWTjs1eITPcu+4TCn1ZG6DhoFvAQzE5DTxxdhIotg+qw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.2.2.tgz", + "integrity": "sha512-TgG+mJyQB5CfeqCD65B9CLesl2IQTjc7tAKm8ZxRzF80GrCrmWNnoXi424TWmSF6cUV/4TY0G5dTkc9kB+S2tw==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3423,9 +4280,9 @@ } }, "node_modules/@tiptap/extension-paragraph": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.1.13.tgz", - "integrity": "sha512-cEoZBJrsQn69FPpUMePXG/ltGXtqKISgypj70PEHXt5meKDjpmMVSY4/8cXvFYEYsI9GvIwyAK0OrfAHiSoROA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.2.2.tgz", + "integrity": "sha512-USTzajni/hsQXsBF0Lbw++FyPJKCDlROyaKbZi77QQoUsU2MbJIka7k4tGc0kwyTB04aAl+E6+0iS4xIhC3rug==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3435,9 +4292,9 @@ } }, "node_modules/@tiptap/extension-placeholder": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-placeholder/-/extension-placeholder-2.1.13.tgz", - "integrity": "sha512-vIY7y7UbqsrAW/y8bDE9eRenbQEU16kNHB5Wri8RU1YiUZpkPgdXP/pLqyjIIq95SwP/vdTIHjHoQ77VLRl1hA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-placeholder/-/extension-placeholder-2.2.2.tgz", + "integrity": "sha512-dPN15nVu+HlONJSCiKjEl9n5/61CltTLSefhyRVQJeE7lmtMUGrsErUdOYMxGskehDQWIQW1VM0OiF63ln/3sA==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3448,9 +4305,9 @@ } }, "node_modules/@tiptap/extension-strike": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.1.13.tgz", - "integrity": "sha512-VN6zlaCNCbyJUCDyBFxavw19XmQ4LkCh8n20M8huNqW77lDGXA2A7UcWLHaNBpqAijBRu9mWI8l4Bftyf2fcAw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.2.2.tgz", + "integrity": "sha512-0wsqiZPatw9QrK3DJ1jCMukenc8DRQtEXo4/dQjtnzNDhe7ZySed6kPpGO9A4lASG7NV7GmYZ/k5iEELr+iE6Q==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3460,9 +4317,9 @@ } }, "node_modules/@tiptap/extension-superscript": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-superscript/-/extension-superscript-2.1.13.tgz", - "integrity": "sha512-wZr9Ls7YYvzbVInBqqpQkn+/YwG3b78Rg3U1TldCcbg0IprwFyPsFHvu0NZnqYEG4MHhaF3F1sZRtPdZ0hDy8g==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-superscript/-/extension-superscript-2.2.2.tgz", + "integrity": "sha512-hCO6Wr1gtl/nOyC/6L1s7qf3IF9TDdv2J2HqprD05PCcxGZbP0i6rm/SavmlOaGmZwDGv7ckx9mTqBDDpQjSsA==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3472,9 +4329,9 @@ } }, "node_modules/@tiptap/extension-table": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-table/-/extension-table-2.1.13.tgz", - "integrity": "sha512-yMWt2LqotOsWJhLwFNo8fyTwJNLPtnk+eCUxKLlMXP23mJ/lpF+jvTihhHVVic5GqV9vLYZFU2Tn+5k/Vd5P1w==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table/-/extension-table-2.2.2.tgz", + "integrity": "sha512-XuqshbaodbfUJct6ZaVypxtXtK0JQoufcSeCgmz1GS6OQM+5FCIhM1LIRUja4CT453sXKa3yEy1zBhK0l7sMbQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3485,9 +4342,9 @@ } }, "node_modules/@tiptap/extension-table-cell": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-table-cell/-/extension-table-cell-2.1.13.tgz", - "integrity": "sha512-30pyVt2PxGAk8jmsXKxDheql8K/xIRA9FiDo++kS2Kr6Y7I42/kNPQttJ2W+Q1JdRJvedNfQtziQfKWDRLLCNA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table-cell/-/extension-table-cell-2.2.2.tgz", + "integrity": "sha512-wBWvAwv6ZMBJG7oCQpNnyck6ZvAuwric4xdwboX4sDL5glNPylb9CXM77kMOo7krjn+I4zrEOxc9DoUUYa88wA==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3497,9 +4354,9 @@ } }, "node_modules/@tiptap/extension-table-header": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-table-header/-/extension-table-header-2.1.13.tgz", - "integrity": "sha512-FwIV5iso5kmpu01QyvrPCjJqZfqxRTjtjMsDyut2uIgx9v5TXk0V5XvMWobx435ANIDJoGTYCMRlIqcgtyqwAQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table-header/-/extension-table-header-2.2.2.tgz", + "integrity": "sha512-rJUJkHJpTgSaYTRCDm8TA5XDy6IXgFIID/m0UAPaZ9i/GWj53BSBYYidu89uLjxssvr0VcGtGWdQlGmlIib3CQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3509,9 +4366,9 @@ } }, "node_modules/@tiptap/extension-table-row": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-table-row/-/extension-table-row-2.1.13.tgz", - "integrity": "sha512-27Mb9/oYbiLd+/BUFMhQzRIqMd2Z5j1BZMYsktwtDG8vGdYVlaW257UVaoNR9TmiXyIzd3Dh1mOil8G35+HRHg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table-row/-/extension-table-row-2.2.2.tgz", + "integrity": "sha512-4ReboyIQl6uCi++5SzukOj4HNSAcI4Q3kCeptT/yk9dYAToIfxG1GF4iSCudwMPyq8maEa/DOYsprzcqvuLOqw==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3521,9 +4378,9 @@ } }, "node_modules/@tiptap/extension-text": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.1.13.tgz", - "integrity": "sha512-zzsTTvu5U67a8WjImi6DrmpX2Q/onLSaj+LRWPh36A1Pz2WaxW5asZgaS+xWCnR+UrozlCALWa01r7uv69jq0w==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.2.2.tgz", + "integrity": "sha512-Zj53Vp/9MSQj5uiaObFaD3y7grUpMy+PfHmrK5XAZSFhRx+QpGUp+oItlKod6IJEIu8rq4dChgE7i6kT9uwWlA==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3533,76 +4390,71 @@ } }, "node_modules/@tiptap/pm": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-2.0.3.tgz", - "integrity": "sha512-I9dsInD89Agdm1QjFRO9dmJtU1ldVSILNPW0pEhv9wYqYVvl4HUj/JMtYNqu2jWrCHNXQcaX/WkdSdvGJtmg5g==", - "peer": true, - "dependencies": { - "prosemirror-changeset": "^2.2.0", - "prosemirror-collab": "^1.3.0", - "prosemirror-commands": "^1.3.1", - "prosemirror-dropcursor": "^1.5.0", - "prosemirror-gapcursor": "^1.3.1", - "prosemirror-history": "^1.3.0", - "prosemirror-inputrules": "^1.2.0", - "prosemirror-keymap": "^1.2.0", - "prosemirror-markdown": "^1.10.1", - "prosemirror-menu": "^1.2.1", - "prosemirror-model": "^1.18.1", - "prosemirror-schema-basic": "^1.2.0", - "prosemirror-schema-list": "^1.2.2", - "prosemirror-state": "^1.4.1", - "prosemirror-tables": "^1.3.0", - "prosemirror-trailing-node": "^2.0.2", - "prosemirror-transform": "^1.7.0", - "prosemirror-view": "^1.28.2" + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-2.2.4.tgz", + "integrity": "sha512-Po0klR165zgtinhVp1nwMubjyKx6gAY9kH3IzcniYLCkqhPgiqnAcCr61TBpp4hfK8YURBS4ihvCB1dyfCyY8A==", + "dependencies": { + "prosemirror-changeset": "^2.2.1", + "prosemirror-collab": "^1.3.1", + "prosemirror-commands": "^1.5.2", + "prosemirror-dropcursor": "^1.8.1", + "prosemirror-gapcursor": "^1.3.2", + "prosemirror-history": "^1.3.2", + "prosemirror-inputrules": "^1.3.0", + "prosemirror-keymap": "^1.2.2", + "prosemirror-markdown": "^1.12.0", + "prosemirror-menu": "^1.2.4", + "prosemirror-model": "^1.19.4", + "prosemirror-schema-basic": "^1.2.2", + "prosemirror-schema-list": "^1.3.0", + "prosemirror-state": "^1.4.3", + "prosemirror-tables": "^1.3.5", + "prosemirror-trailing-node": "^2.0.7", + "prosemirror-transform": "^1.8.0", + "prosemirror-view": "^1.32.7" }, "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0" } }, "node_modules/@tiptap/starter-kit": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.1.13.tgz", - "integrity": "sha512-ph/mUR/OwPtPkZ5rNHINxubpABn8fHnvJSdhXFrY/q6SKoaO11NZXgegRaiG4aL7O6Sz4LsZVw6Sm0Ae+GJmrg==", - "dependencies": { - "@tiptap/core": "^2.1.13", - "@tiptap/extension-blockquote": "^2.1.13", - "@tiptap/extension-bold": "^2.1.13", - "@tiptap/extension-bullet-list": "^2.1.13", - "@tiptap/extension-code": "^2.1.13", - "@tiptap/extension-code-block": "^2.1.13", - "@tiptap/extension-document": "^2.1.13", - "@tiptap/extension-dropcursor": "^2.1.13", - "@tiptap/extension-gapcursor": "^2.1.13", - "@tiptap/extension-hard-break": "^2.1.13", - "@tiptap/extension-heading": "^2.1.13", - "@tiptap/extension-history": "^2.1.13", - "@tiptap/extension-horizontal-rule": "^2.1.13", - "@tiptap/extension-italic": "^2.1.13", - "@tiptap/extension-list-item": "^2.1.13", - "@tiptap/extension-ordered-list": "^2.1.13", - "@tiptap/extension-paragraph": "^2.1.13", - "@tiptap/extension-strike": "^2.1.13", - "@tiptap/extension-text": "^2.1.13" + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.2.2.tgz", + "integrity": "sha512-J8nbrVBggGJwO7CPEwdUqG6Q8btiQJjjnYWZEs+ImM9GMUfXJ8lyaGT0My3wDvTeq537N9BjTEcQ88pMtOqbOw==", + "dependencies": { + "@tiptap/core": "^2.2.2", + "@tiptap/extension-blockquote": "^2.2.2", + "@tiptap/extension-bold": "^2.2.2", + "@tiptap/extension-bullet-list": "^2.2.2", + "@tiptap/extension-code": "^2.2.2", + "@tiptap/extension-code-block": "^2.2.2", + "@tiptap/extension-document": "^2.2.2", + "@tiptap/extension-dropcursor": "^2.2.2", + "@tiptap/extension-gapcursor": "^2.2.2", + "@tiptap/extension-hard-break": "^2.2.2", + "@tiptap/extension-heading": "^2.2.2", + "@tiptap/extension-history": "^2.2.2", + "@tiptap/extension-horizontal-rule": "^2.2.2", + "@tiptap/extension-italic": "^2.2.2", + "@tiptap/extension-list-item": "^2.2.2", + "@tiptap/extension-ordered-list": "^2.2.2", + "@tiptap/extension-paragraph": "^2.2.2", + "@tiptap/extension-strike": "^2.2.2", + "@tiptap/extension-text": "^2.2.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" } }, - "node_modules/@tiptap/vue-2": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/vue-2/-/vue-2-2.1.13.tgz", - "integrity": "sha512-OsCINarPGyT3sDIXDrhVyaoH0I0VxeDDm+NgS5P0fPbBCnsHZ8csvxD9UB9/KZ/UoxYDfJ1zLplKQn1AIlnRzg==", + "node_modules/@tiptap/vue-3": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/vue-3/-/vue-3-2.2.2.tgz", + "integrity": "sha512-4QNjruL7qiOgSANczipKtbYmMZS/gGuqV2UeBKKXTXIGFr5qA5R5n9Icy+El0oJOUZ8MNDFOVSGaHh/ts+pY3g==", "dependencies": { - "@tiptap/extension-bubble-menu": "^2.1.13", - "@tiptap/extension-floating-menu": "^2.1.13", - "vue-ts-types": "^1.6.0" + "@tiptap/extension-bubble-menu": "^2.2.2", + "@tiptap/extension-floating-menu": "^2.2.2" }, "funding": { "type": "github", @@ -3611,7 +4463,7 @@ "peerDependencies": { "@tiptap/core": "^2.0.0", "@tiptap/pm": "^2.0.0", - "vue": "^2.6.0" + "vue": "^3.0.0" } }, "node_modules/@tootallnate/once": { @@ -3623,6 +4475,20 @@ "node": ">= 6" } }, + "node_modules/@transloadit/prettier-bytes": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/@transloadit/prettier-bytes/-/prettier-bytes-0.0.9.tgz", + "integrity": "sha512-pCvdmea/F3Tn4hAtHqNXmjcixSaroJJ+L3STXlYJdir1g1m2mRQpWbN8a4SvgQtaw2930Ckhdx8qXdXBFMKbAA==" + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/@types/babel__core": { "version": "7.1.18", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz", @@ -3687,11 +4553,16 @@ } }, "node_modules/@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true, - "peer": true + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, + "node_modules/@types/geojson": { + "version": "7946.0.11", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.11.tgz", + "integrity": "sha512-L7A0AINMXQpVwxHJ4jxD6/XjZ4NDufaRlUJHjNIFKYUFBH1SvOW+neaqb0VTRSLW5suSrSu19ObFEFnfNcr+qg==", + "devOptional": true }, "node_modules/@types/glob": { "version": "7.2.0", @@ -3703,6 +4574,12 @@ "@types/node": "*" } }, + "node_modules/@types/google.maps": { + "version": "3.58.1", + "resolved": "https://registry.npmjs.org/@types/google.maps/-/google.maps-3.58.1.tgz", + "integrity": "sha512-X9QTSvGJ0nCfMzYOnaVs/k6/4L+7F5uCS+4iUmkLEls6J9S/Phv+m/i3mDeyc49ZBgwab3EFO1HEoBY7k98EGQ==", + "dev": true + }, "node_modules/@types/graceful-fs": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", @@ -3889,11 +4766,26 @@ "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", "dev": true }, + "node_modules/@types/leaflet": { + "version": "1.9.6", + "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.9.6.tgz", + "integrity": "sha512-HakGTK5LBBWegNWsAmTlG55zN1zszYec7aG47/z6SzT90bW2vqjmbqk3YKAbrtveO+G7fSTKTYqVbIwAFnTrbg==", + "devOptional": true, + "dependencies": { + "@types/geojson": "*" + } + }, "node_modules/@types/linkify-it": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==" }, + "node_modules/@types/lodash": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.13.tgz", + "integrity": "sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==", + "dev": true + }, "node_modules/@types/markdown-it": { "version": "12.2.3", "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", @@ -3914,39 +4806,30 @@ "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", "dev": true }, - "node_modules/@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "node_modules/@types/node": { + "version": "20.11.30", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.30.tgz", + "integrity": "sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==", "dev": true, - "optional": true, - "peer": true + "dependencies": { + "undici-types": "~5.26.4" + } }, - "node_modules/@types/node": { - "version": "14.11.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.11.8.tgz", - "integrity": "sha512-KPcKqKm5UKDkaYPTuXSx8wEP7vE9GnuaXIZKijwRYcePpZFDVuy2a57LarFKiORbHOuTOOwYzxVxcUzsh2P2Pw==", + "node_modules/@types/nprogress": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@types/nprogress/-/nprogress-0.2.3.tgz", + "integrity": "sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA==", "dev": true }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/@types/object.omit": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/object.omit/-/object.omit-3.0.0.tgz", - "integrity": "sha512-I27IoPpH250TUzc9FzXd0P1BV/BMJuzqD3jOz98ehf9dQqGkxlq+hO1bIqZGWqCg5bVOy0g4AUVJtnxe0klDmw==", - "peer": true + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/object.omit/-/object.omit-3.0.3.tgz", + "integrity": "sha512-xrq4bQTBGYY2cw+gV4PzoG2Lv3L0pjZ1uXStRRDQoATOYW1lCsFQHhQ+OkPhIcQoqLjAq7gYif7D14Qaa6Zbew==" }, "node_modules/@types/object.pick": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/object.pick/-/object.pick-1.3.2.tgz", - "integrity": "sha512-sn7L+qQ6RLPdXRoiaE7bZ/Ek+o4uICma/lBFPyJEKDTPTBP1W8u0c4baj3EiS4DiqLs+Hk+KUGvMVJtAw3ePJg==", - "peer": true + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@types/object.pick/-/object.pick-1.3.4.tgz", + "integrity": "sha512-5PjwB0uP2XDp3nt5u5NJAG2DORHIRClPzWT/TTZhJ2Ekwe8M5bA9tvPdi9NO/n2uvu2/ictat8kgqvLfcIE1SA==" }, "node_modules/@types/prettier": { "version": "2.4.4", @@ -3960,6 +4843,18 @@ "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==", "dev": true }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "node_modules/@types/sortablejs": { + "version": "1.15.8", + "resolved": "https://registry.npmjs.org/@types/sortablejs/-/sortablejs-1.15.8.tgz", + "integrity": "sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg==", + "dev": true + }, "node_modules/@types/stack-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", @@ -3969,8 +4864,12 @@ "node_modules/@types/throttle-debounce": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@types/throttle-debounce/-/throttle-debounce-2.1.0.tgz", - "integrity": "sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ==", - "peer": true + "integrity": "sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ==" + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz", + "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==" }, "node_modules/@types/yargs": { "version": "16.0.4", @@ -3987,46 +4886,407 @@ "integrity": "sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg==", "dev": true }, - "node_modules/@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "node_modules/@uppy/companion-client": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@uppy/companion-client/-/companion-client-3.4.1.tgz", + "integrity": "sha512-aUCJuZR+u+yWdfNblu08WVZ6thkLQdf9MTo0orNsj4xzc0PZVtX7gbjjvgmv71iA3Losy5ltOXhg/+dYOosBtA==", + "dependencies": { + "@uppy/utils": "^5.5.1", + "namespace-emitter": "^2.0.1" + } + }, + "node_modules/@uppy/core": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@uppy/core/-/core-3.5.1.tgz", + "integrity": "sha512-iaHn2JG6HgwQMxRAwzEeqRoJGElnUerAh/coDF30Ha92lAPe8xkjFIqIHjaCtEMJqjQAm1msZX4v5Vi7M9hzsw==", + "dependencies": { + "@transloadit/prettier-bytes": "0.0.9", + "@uppy/store-default": "^3.0.4", + "@uppy/utils": "^5.5.1", + "lodash": "^4.17.21", + "mime-match": "^1.0.2", + "namespace-emitter": "^2.0.1", + "nanoid": "^4.0.0", + "preact": "^10.5.13" + } + }, + "node_modules/@uppy/core/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/@uppy/drag-drop": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@uppy/drag-drop/-/drag-drop-3.0.3.tgz", + "integrity": "sha512-0bCgQKxg+9vkxQipTgrX9yQIuK9a0hZrkipm1+Ynq6jTeig49b7II1bWYnoKdiYhi6nRE4UnDJf4z09yCAU7rA==", + "dependencies": { + "@uppy/utils": "^5.4.3", + "preact": "^10.5.13" + }, + "peerDependencies": { + "@uppy/core": "^3.4.0" + } + }, + "node_modules/@uppy/drop-target": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@uppy/drop-target/-/drop-target-2.0.1.tgz", + "integrity": "sha512-FMO8wj+0dx4mlwXKxFWSTUF+irgr0BVXadyc4qaoBBtZ3vEcwc3jP7SQfwk3JizV/D5MYG8MRICRbPAIrY9M8w==", + "dependencies": { + "@uppy/utils": "^5.0.2" + }, + "peerDependencies": { + "@uppy/core": "^3.0.2" + } + }, + "node_modules/@uppy/file-input": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@uppy/file-input/-/file-input-3.0.3.tgz", + "integrity": "sha512-tYmbQIWjNPnKFFzBmZcNHFyMkfPAPSOrse+3qnmSWYzGKWaZfKP1zM0MiABZO/AH5X6hhLIQDRY8TsyiPfmJ9w==", + "dependencies": { + "@uppy/utils": "^5.4.3", + "preact": "^10.5.13" + }, + "peerDependencies": { + "@uppy/core": "^3.4.0" + } + }, + "node_modules/@uppy/store-default": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@uppy/store-default/-/store-default-3.0.4.tgz", + "integrity": "sha512-DOqDZBfz2TMBdpzVdk6ehVCgj2bQ7p66CcVtAm31XL39nCvHI4Miy9IjnqRi2Okmou7JoPH52WX9A2dNZrAYZA==" + }, + "node_modules/@uppy/thumbnail-generator": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@uppy/thumbnail-generator/-/thumbnail-generator-3.0.5.tgz", + "integrity": "sha512-XHt5/S7719PSVGi8nCB5SeJlE++1649WcpNtTn5jmxsEQExRMt1Z6JkwfbMB9W61U7qrbajUgpFq//0ln3hZ9g==", + "dependencies": { + "@uppy/utils": "^5.5.1", + "exifr": "^7.0.0" + }, + "peerDependencies": { + "@uppy/core": "^3.5.1" + } + }, + "node_modules/@uppy/utils": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/@uppy/utils/-/utils-5.5.1.tgz", + "integrity": "sha512-iGLYSp9DHH54TXIoTxcArjPFEPNyWxSyMxXso9qRi3eY4wB8+Vflj/BGj4nm3sGzE+NSuat48nDa55vboYCn3g==", + "dependencies": { + "lodash": "^4.17.21", + "preact": "^10.5.13" + } + }, + "node_modules/@uppy/vue": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@uppy/vue/-/vue-1.0.2.tgz", + "integrity": "sha512-wKDf8dWP+Klf09ms9LT060LuwIdOY/uQfPRaJVi1EBWoL/ESvtL2rjycBbyjbNg798Dy10lrSsrrHoCFcDcWSQ==", + "dependencies": { + "shallow-equal": "^1.2.1" + }, + "peerDependencies": { + "@uppy/core": "^3.2.0", + "@uppy/dashboard": "^3.4.0", + "@uppy/drag-drop": "^3.0.2", + "@uppy/file-input": "^3.0.2", + "@uppy/progress-bar": "^3.0.2", + "@uppy/status-bar": "^3.1.1", + "vue": ">=2.6.11" + }, + "peerDependenciesMeta": { + "@uppy/dashboard": { + "optional": true + }, + "@uppy/drag-drop": { + "optional": true + }, + "@uppy/file-input": { + "optional": true + }, + "@uppy/progress-bar": { + "optional": true + }, + "@uppy/status-bar": { + "optional": true + } + } + }, + "node_modules/@uppy/xhr-upload": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@uppy/xhr-upload/-/xhr-upload-3.4.1.tgz", + "integrity": "sha512-vmAkvwxAfHyX4I03y68GZfNvZT54s5/GZpQSa169367jFEmS7ODR9TVdSzRKhZ9m7oGQr39AYUZns5o0Ko4RkQ==", + "dependencies": { + "@uppy/companion-client": "^3.4.1", + "@uppy/utils": "^5.5.1", + "nanoid": "^4.0.0" + }, + "peerDependencies": { + "@uppy/core": "^3.5.1" + } + }, + "node_modules/@uppy/xhr-upload/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/@vitejs/plugin-legacy": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-legacy/-/plugin-legacy-5.3.2.tgz", + "integrity": "sha512-8moCOrIMaZ/Rjln0Q6GsH6s8fAt1JOI3k8nmfX4tXUxE5KAExVctSyOBk+A25GClsdSWqIk2yaUthH3KJ2X4tg==", "dev": true, - "optional": true, - "peer": true, "dependencies": { - "@types/node": "*" + "@babel/core": "^7.23.9", + "@babel/preset-env": "^7.23.9", + "browserslist": "^4.23.0", + "browserslist-to-esbuild": "^2.1.1", + "core-js": "^3.36.0", + "magic-string": "^0.30.7", + "regenerator-runtime": "^0.14.1", + "systemjs": "^6.14.3" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "peerDependencies": { + "terser": "^5.4.0", + "vite": "^5.0.0" } }, - "node_modules/@vitejs/plugin-vue2": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue2/-/plugin-vue2-2.2.0.tgz", - "integrity": "sha512-1km7zEuZ/9QRPvzXSjikbTYGQPG86Mq1baktpC4sXqsXlb02HQKfi+fl8qVS703JM7cgm24Ga9j+RwKmvFn90A==", + "node_modules/@vitejs/plugin-vue": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.1.4.tgz", + "integrity": "sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A==", "dev": true, "engines": { - "node": "^14.18.0 || >= 16.0.0" + "node": "^18.0.0 || >=20.0.0" }, "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0", - "vue": "^2.7.0-0" + "vite": "^5.0.0", + "vue": "^3.2.25" } }, - "node_modules/@vue/compiler-sfc": { - "version": "2.7.14", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.14.tgz", - "integrity": "sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA==", + "node_modules/@volar/language-core": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.6.tgz", + "integrity": "sha512-FxUfxaB8sCqvY46YjyAAV6c3mMIq/NWQMVvJ+uS4yxr1KzOvyg61gAuOnNvgCvO4TZ7HcLExBEsWcDu4+K4E8A==", + "dev": true, "dependencies": { - "@babel/parser": "^7.18.4", - "postcss": "^8.4.14", - "source-map": "^0.6.1" + "@volar/source-map": "2.4.6" } }, - "node_modules/@vue/compiler-sfc/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/@volar/language-server": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@volar/language-server/-/language-server-2.4.6.tgz", + "integrity": "sha512-ARIbMXapEUPj9UFbZqWqw/iZ+ZuxUcY+vY212+2uutZVo/jrdzhLPu2TfZd9oB9akX8XXuslinT3051DyHLLRA==", + "dev": true, + "dependencies": { + "@volar/language-core": "2.4.6", + "@volar/language-service": "2.4.6", + "@volar/typescript": "2.4.6", + "path-browserify": "^1.0.1", + "request-light": "^0.7.0", + "vscode-languageserver": "^9.0.1", + "vscode-languageserver-protocol": "^3.17.5", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@volar/language-server/node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "node_modules/@volar/language-service": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@volar/language-service/-/language-service-2.4.6.tgz", + "integrity": "sha512-wNeEVBgBKgpP1MfMYPrgTf1K8nhOGEh3ac0+9n6ECyk2N03+j0pWCpQ2i99mRWT/POvo1PgizDmYFH8S67bZOA==", + "dev": true, + "dependencies": { + "@volar/language-core": "2.4.6", + "vscode-languageserver-protocol": "^3.17.5", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.6.tgz", + "integrity": "sha512-Nsh7UW2ruK+uURIPzjJgF0YRGP5CX9nQHypA2OMqdM2FKy7rh+uv3XgPnWPw30JADbKvZ5HuBzG4gSbVDYVtiw==", + "dev": true + }, + "node_modules/@volar/test-utils": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@volar/test-utils/-/test-utils-2.4.6.tgz", + "integrity": "sha512-QIW5BeYvsY4QPRCaRp6ewb/L9i+NZFJTY1fYsbQe4Hi4k7Zqs+Mu4Hz21nbGWTWIF2wHeX6gGMWfJjhR7jFtvw==", + "dev": true, + "dependencies": { + "@volar/language-core": "2.4.6", + "@volar/language-server": "2.4.6", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@volar/typescript": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.6.tgz", + "integrity": "sha512-NMIrA7y5OOqddL9VtngPWYmdQU03htNKFtAYidbYfWA0TOhyGVd9tfcP4TsLWQ+RBWDZCbBqsr8xzU0ZOxYTCQ==", + "dev": true, + "dependencies": { + "@volar/language-core": "2.4.6", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@volar/typescript/node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "node_modules/@vscode/emmet-helper": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/@vscode/emmet-helper/-/emmet-helper-2.9.3.tgz", + "integrity": "sha512-rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==", + "dev": true, + "dependencies": { + "emmet": "^2.4.3", + "jsonc-parser": "^2.3.0", + "vscode-languageserver-textdocument": "^1.0.1", + "vscode-languageserver-types": "^3.15.1", + "vscode-uri": "^2.1.2" + } + }, + "node_modules/@vscode/emmet-helper/node_modules/vscode-uri": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-2.1.2.tgz", + "integrity": "sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==", + "dev": true + }, + "node_modules/@vscode/l10n": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/@vscode/l10n/-/l10n-0.0.18.tgz", + "integrity": "sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==", + "dev": true + }, + "node_modules/@vue-leaflet/vue-leaflet": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@vue-leaflet/vue-leaflet/-/vue-leaflet-0.10.1.tgz", + "integrity": "sha512-RNEDk8TbnwrJl8ujdbKgZRFygLCxd0aBcWLQ05q/pGv4+d0jamE3KXQgQBqGAteE1mbQsk3xoNcqqUgaIGfWVg==", + "dependencies": { + "vue": "^3.2.25" + }, + "peerDependencies": { + "@types/leaflet": "^1.5.7", + "leaflet": "^1.6.0" + }, + "peerDependenciesMeta": { + "@types/leaflet": { + "optional": true + } + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", + "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/shared": "3.5.13", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-core/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "engines": { - "node": ">=0.10.0" + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/@vue/compiler-core/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", + "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", + "dependencies": { + "@vue/compiler-core": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", + "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/compiler-core": "3.5.13", + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.11", + "postcss": "^8.4.48", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-sfc/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz", + "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==", + "dependencies": { + "@vue/compiler-dom": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/compiler-vue2": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", + "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", + "dev": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" } }, "node_modules/@vue/component-compiler-utils": { @@ -4080,6 +5340,163 @@ "node": ">=0.10.0" } }, + "node_modules/@vue/devtools-api": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.1.tgz", + "integrity": "sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==" + }, + "node_modules/@vue/language-core": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.1.6.tgz", + "integrity": "sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg==", + "dev": true, + "dependencies": { + "@volar/language-core": "~2.4.1", + "@vue/compiler-dom": "^3.4.0", + "@vue/compiler-vue2": "^2.7.16", + "@vue/shared": "^3.4.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/language-core/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@vue/language-core/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@vue/language-core/node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "node_modules/@vue/language-server": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@vue/language-server/-/language-server-2.1.6.tgz", + "integrity": "sha512-xRtugvuwFs9KqJ5JMmO9q2b5IrhNLaj/+iqrnBEfWPFRCsywzFABrZFgI7huqsndSdO5uiBkkOkJVcruB0ULFw==", + "dev": true, + "dependencies": { + "@volar/language-core": "~2.4.1", + "@volar/language-server": "~2.4.1", + "@volar/test-utils": "~2.4.1", + "@vue/language-core": "2.1.6", + "@vue/language-service": "2.1.6", + "@vue/typescript-plugin": "2.1.6", + "vscode-languageserver-protocol": "^3.17.5", + "vscode-uri": "^3.0.8" + }, + "bin": { + "vue-language-server": "bin/vue-language-server.js" + } + }, + "node_modules/@vue/language-service": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@vue/language-service/-/language-service-2.1.6.tgz", + "integrity": "sha512-FZ3Fn0MslS/fdBm0U2A/JUmq0HBtvkm/6OcHfw23mE7olm0yCAOV0i8xKqqbrwZeSDoEfk48zzTSEE9Zj6RmBg==", + "dev": true, + "dependencies": { + "@volar/language-core": "~2.4.1", + "@volar/language-service": "~2.4.1", + "@volar/typescript": "~2.4.1", + "@vue/compiler-dom": "^3.4.0", + "@vue/language-core": "2.1.6", + "@vue/shared": "^3.4.0", + "@vue/typescript-plugin": "2.1.6", + "computeds": "^0.0.1", + "path-browserify": "^1.0.1", + "volar-service-css": "0.0.62", + "volar-service-emmet": "0.0.62", + "volar-service-html": "0.0.62", + "volar-service-json": "0.0.62", + "volar-service-pug": "0.0.62", + "volar-service-pug-beautify": "0.0.62", + "volar-service-typescript": "0.0.62", + "volar-service-typescript-twoslash-queries": "0.0.62", + "vscode-html-languageservice": "^5.2.0", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@vue/language-service/node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "node_modules/@vue/reactivity": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.13.tgz", + "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==", + "dependencies": { + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.13.tgz", + "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==", + "dependencies": { + "@vue/reactivity": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz", + "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==", + "dependencies": { + "@vue/reactivity": "3.5.13", + "@vue/runtime-core": "3.5.13", + "@vue/shared": "3.5.13", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz", + "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==", + "dependencies": { + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13" + }, + "peerDependencies": { + "vue": "3.5.13" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz", + "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==" + }, "node_modules/@vue/test-utils": { "version": "1.0.0-beta.29", "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-1.0.0-beta.29.tgz", @@ -4090,58 +5507,223 @@ "lodash": "^4.17.4" } }, - "node_modules/@vue/vue2-jest": { - "version": "27.0.0", - "resolved": "https://registry.npmjs.org/@vue/vue2-jest/-/vue2-jest-27.0.0.tgz", - "integrity": "sha512-r8YGOuqEWpAf2wGfgxfOL6Jce3WYOMcYji2qd8kuDe466ZsybHFeMryMJi6JrELOOI+MCA/8eFsSOx1KoJa7Dg==", + "node_modules/@vue/typescript-plugin": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@vue/typescript-plugin/-/typescript-plugin-2.1.6.tgz", + "integrity": "sha512-FGwinnIuwZPELbRPZmtA+G4YyLT+lxjGSZQpNvgrzvy3MZBJZzm4UU87DIA7Lb2xbbYpTMAM6P6TAWwioCNZIg==", "dev": true, "dependencies": { - "@babel/plugin-transform-modules-commonjs": "^7.2.0", - "@vue/component-compiler-utils": "^3.1.0", - "chalk": "^2.1.0", - "css-tree": "^2.0.1", - "source-map": "0.5.6" + "@volar/typescript": "~2.4.1", + "@vue/language-core": "2.1.6", + "@vue/shared": "^3.4.0" + } + }, + "node_modules/@vueuse/components": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/@vueuse/components/-/components-11.3.0.tgz", + "integrity": "sha512-sqaGtWPgobXvZmv3atcjW8YW0ypecFuB286OEKFXaPrLsA5b2Y+xAvHvq5V7d+VJRKt705gCK3BNBjxu3g1PdQ==", + "dependencies": { + "@vueuse/core": "11.3.0", + "@vueuse/shared": "11.3.0", + "vue-demi": ">=0.14.10" + } + }, + "node_modules/@vueuse/components/node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" }, "peerDependencies": { - "@babel/core": "7.x", - "babel-jest": ">= 27 < 28", - "jest": "27.x", - "ts-jest": ">= 27 < 28", - "vue": "^2.x", - "vue-template-compiler": "^2.x" + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" }, "peerDependenciesMeta": { - "ts-jest": { + "@vue/composition-api": { "optional": true } } }, - "node_modules/@vue/vue2-jest/node_modules/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "dev": true, + "node_modules/@vueuse/core": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-11.3.0.tgz", + "integrity": "sha512-7OC4Rl1f9G8IT6rUfi9JrKiXy4bfmHhZ5x2Ceojy0jnd3mHNEvV4JaRygH362ror6/NZ+Nl+n13LPzGiPN8cKA==", "dependencies": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" + "@types/web-bluetooth": "^0.0.20", + "@vueuse/metadata": "11.3.0", + "@vueuse/shared": "11.3.0", + "vue-demi": ">=0.14.10" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/core/node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" }, "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } } }, - "node_modules/@vue/vue2-jest/node_modules/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "dev": true + "node_modules/@vueuse/integrations": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-11.3.0.tgz", + "integrity": "sha512-5fzRl0apQWrDezmobchoiGTkGw238VWESxZHazfhP3RM7pDSiyXy18QbfYkILoYNTd23HPAfQTJpkUc5QbkwTw==", + "dependencies": { + "@vueuse/core": "11.3.0", + "@vueuse/shared": "11.3.0", + "vue-demi": ">=0.14.10" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "async-validator": "^4", + "axios": "^1", + "change-case": "^5", + "drauu": "^0.4", + "focus-trap": "^7", + "fuse.js": "^7", + "idb-keyval": "^6", + "jwt-decode": "^4", + "nprogress": "^0.2", + "qrcode": "^1.5", + "sortablejs": "^1", + "universal-cookie": "^7" + }, + "peerDependenciesMeta": { + "async-validator": { + "optional": true + }, + "axios": { + "optional": true + }, + "change-case": { + "optional": true + }, + "drauu": { + "optional": true + }, + "focus-trap": { + "optional": true + }, + "fuse.js": { + "optional": true + }, + "idb-keyval": { + "optional": true + }, + "jwt-decode": { + "optional": true + }, + "nprogress": { + "optional": true + }, + "qrcode": { + "optional": true + }, + "sortablejs": { + "optional": true + }, + "universal-cookie": { + "optional": true + } + } }, - "node_modules/@vue/vue2-jest/node_modules/source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", - "dev": true, + "node_modules/@vueuse/integrations/node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@vueuse/metadata": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-11.3.0.tgz", + "integrity": "sha512-pwDnDspTqtTo2HwfLw4Rp6yywuuBdYnPYDq+mO38ZYKGebCUQC/nVj/PXSiK9HX5otxLz8Fn7ECPbjiRz2CC3g==", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-11.3.0.tgz", + "integrity": "sha512-P8gSSWQeucH5821ek2mn/ciCk+MS/zoRKqdQIM3bHq6p7GXDAJLmnRRKmF5F65sAVJIfzQlwR3aDzwCn10s8hA==", + "dependencies": { + "vue-demi": ">=0.14.10" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared/node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } } }, "node_modules/@webassemblyjs/ast": { @@ -4429,18 +6011,17 @@ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, + "node_modules/@yr/monotone-cubic-spline": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@yr/monotone-cubic-spline/-/monotone-cubic-spline-1.0.3.tgz", + "integrity": "sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA==" + }, "node_modules/abab": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", "dev": true }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -4454,17 +6035,7 @@ "node": ">= 0.6" } }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "node_modules/acorn-globals/node_modules/acorn": { + "node_modules/acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", @@ -4476,6 +6047,16 @@ "node": ">=0.4.0" } }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, "node_modules/acorn-walk": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", @@ -4485,43 +6066,6 @@ "node": ">=0.4.0" } }, - "node_modules/adjust-sourcemap-loader": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-2.0.0.tgz", - "integrity": "sha512-4hFsTsn58+YjrU9qKzML2JSSDqKvN8mUGQ0nNIrfPi8hmIONT4L3uUaT6MKdMsZ9AjsU6D2xDkZxCkbQPxChrA==", - "dev": true, - "dependencies": { - "assert": "1.4.1", - "camelcase": "5.0.0", - "loader-utils": "1.2.3", - "object-path": "0.11.4", - "regex-parser": "2.2.10" - } - }, - "node_modules/adjust-sourcemap-loader/node_modules/assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "dev": true, - "dependencies": { - "util": "0.10.3" - } - }, - "node_modules/adjust-sourcemap-loader/node_modules/inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "node_modules/adjust-sourcemap-loader/node_modules/util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "dependencies": { - "inherits": "2.0.1" - } - }, "node_modules/agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", @@ -4534,37 +6078,6 @@ "node": ">= 6.0.0" } }, - "node_modules/agentkeepalive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", - "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -4671,11 +6184,15 @@ "node": ">=4" } }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, "node_modules/anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -4685,56 +6202,22 @@ } }, "node_modules/apexcharts": { - "version": "3.35.4", - "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.35.4.tgz", - "integrity": "sha512-dsXjETHF2OmKtxNv66wBeFGU2qtZQnr6kp/vcNY05GWs4vcBepg54qNgOJ2Gp/gXskiGw/frrmIKGi8lJ/UDnQ==", - "dependencies": { - "svg.draggable.js": "^2.2.2", - "svg.easing.js": "^2.0.0", - "svg.filter.js": "^2.0.2", - "svg.pathmorphing.js": "^0.1.3", - "svg.resize.js": "^1.4.3", - "svg.select.js": "^3.0.1" - } - }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "dev": true, - "optional": true, - "peer": true, + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-4.1.0.tgz", + "integrity": "sha512-TE0q0cXeS5k/AByLqlZAQ/aRQfdD3z0Ajd1uQWWZEjxiIC5qcBpMrTaG+aT+c3golqkvLH3u6kxDW8HBrggpLw==", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10" + "@svgdotjs/svg.draggable.js": "^3.0.4", + "@svgdotjs/svg.filter.js": "^3.0.8", + "@svgdotjs/svg.js": "^3.2.4", + "@svgdotjs/svg.resize.js": "^2.0.2", + "@svgdotjs/svg.select.js": "^4.0.1", + "@yr/monotone-cubic-spline": "^1.0.3" } }, - "node_modules/are-we-there-yet/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" }, "node_modules/argparse": { "version": "1.0.10", @@ -4745,11 +6228,21 @@ "sprintf-js": "~1.0.2" } }, - "node_modules/arity-n": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz", - "integrity": "sha1-2edrEXM+CFacCEeuezmyhgswt0U=", - "dev": true + "node_modules/aria-hidden": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aria-hidden/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/arr-diff": { "version": "4.0.0", @@ -4830,17 +6323,6 @@ "node": ">=0.10.0" } }, - "node_modules/asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, "node_modules/asn1.js": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", @@ -4869,17 +6351,6 @@ "util": "0.10.3" } }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.8" - } - }, "node_modules/assert/node_modules/inherits": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", @@ -4928,17 +6399,6 @@ "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", "dev": true }, - "node_modules/async-foreach": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", - "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": "*" - } - }, "node_modules/async-limiter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", @@ -4948,8 +6408,7 @@ "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "node_modules/atob": { "version": "2.1.2", @@ -4963,57 +6422,54 @@ "node": ">= 4.5.0" } }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "node_modules/autoprefixer": { + "version": "10.4.14", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", + "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", "dev": true, - "optional": true, - "peer": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "dependencies": { + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, "engines": { - "node": "*" + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/axios": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", - "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", + "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", "dependencies": { - "follow-redirects": "1.5.10" + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, - "node_modules/axios/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/axios/node_modules/follow-redirects": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", - "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", - "dependencies": { - "debug": "=3.1.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", - "dev": true, + "node_modules/babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", + "dev": true, "dependencies": { "chalk": "^1.1.3", "esutils": "^2.0.2", @@ -5241,15 +6697,6 @@ "node": ">=0.10.0" } }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.0" - } - }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", @@ -5368,32 +6815,10 @@ "@babel/core": "^7.0.0" } }, - "node_modules/babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dependencies": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "node_modules/babel-runtime/node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.", - "hasInstallScript": true - }, - "node_modules/babel-runtime/node_modules/regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - }, "node_modules/balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "node_modules/base": { "version": "0.11.2", @@ -5484,17 +6909,6 @@ "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", "dev": true }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -5504,6 +6918,14 @@ "node": "*" } }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, "node_modules/bindings": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", @@ -5585,46 +7007,10 @@ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", "dev": true }, - "node_modules/bootstrap": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.0.tgz", - "integrity": "sha512-UnBV3E3v4STVNQdms6jSGO2CvOkjUMdDAVR2V5N4uCMdaIkaQjbcEAMqRimDHIs4uqBYzDAKCQwCB+97tJgHQw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/twbs" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/bootstrap" - } - ], - "peerDependencies": { - "@popperjs/core": "^2.11.7" - } - }, - "node_modules/bootstrap-vue": { - "version": "2.21.2", - "resolved": "https://registry.npmjs.org/bootstrap-vue/-/bootstrap-vue-2.21.2.tgz", - "integrity": "sha512-0Exe+4MZysqhZNXIKf4TzkvXaupxh9EHsoCRez0o5Dc0J7rlafayOEwql63qXv74CgZO8E4U8ugRNJko1vMvNw==", - "dependencies": { - "@nuxt/opencollective": "^0.3.2", - "bootstrap": ">=4.5.3 <5.0.0", - "popper.js": "^1.16.1", - "portal-vue": "^2.1.7", - "vue-functional-data-merge": "^3.1.0" - } - }, - "node_modules/bootstrap-vue/node_modules/bootstrap": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.0.tgz", - "integrity": "sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw==" - }, "node_modules/brace-expansion": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", - "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -5634,7 +7020,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "dependencies": { "fill-range": "^7.0.1" }, @@ -5766,26 +7151,53 @@ } }, "node_modules/browserslist": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.0.tgz", - "integrity": "sha512-bnpOoa+DownbciXj0jVGENf8VYQnE2LNWomhYuCsMmmx9Jd9lwq0WXODuwpSsp8AVdKM2/HorrzxAfbKvWTByQ==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "caniuse-lite": "^1.0.30001313", - "electron-to-chromium": "^1.4.76", - "escalade": "^3.1.1", - "node-releases": "^2.0.2", - "picocolors": "^1.0.0" + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" }, "engines": { "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/browserslist-to-esbuild": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/browserslist-to-esbuild/-/browserslist-to-esbuild-2.1.1.tgz", + "integrity": "sha512-KN+mty6C3e9AN8Z5dI1xeN15ExcRNeISoC3g7V0Kax/MMF9MSoYA2G7lkTTcVUFntiEjkpI0HNgqJC1NjdyNUw==", + "dev": true, + "dependencies": { + "meow": "^13.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" + "bin": { + "browserslist-to-esbuild": "cli/index.js" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "browserslist": "*" } }, "node_modules/bser": { @@ -5812,18 +7224,9 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/buffer-builder/-/buffer-builder-0.2.0.tgz", "integrity": "sha1-MyLNMH2Cltqx9gRhhZOyYaP63o8=", - "dev": true - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", "dev": true, "optional": true, - "peer": true, - "engines": { - "node": "*" - } + "peer": true }, "node_modules/buffer-from": { "version": "1.1.1", @@ -5867,95 +7270,6 @@ "node": ">=8" } }, - "node_modules/cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cacache/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/cacache/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cacache/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cacache/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -6046,34 +7360,12 @@ "node": ">=6" } }, - "node_modules/camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelcase-keys/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "optional": true, - "peer": true, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", "engines": { - "node": ">=6" + "node": ">= 6" } }, "node_modules/caniuse-api": { @@ -6089,20 +7381,29 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001313", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001313.tgz", - "integrity": "sha512-rI1UN0koZUiKINjysQDuRi2VeSCce3bYJNmDcj3PIKREiAmjakugBul1QSkg/fPrlULYl6oWfGg3PbgOSY9X4Q==", + "version": "1.0.30001589", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001589.tgz", + "integrity": "sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==", "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] }, "node_modules/case-anything": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-2.1.10.tgz", - "integrity": "sha512-JczJwVrCP0jPKh05McyVsuOg6AYosrB9XWZKbQzXeDAm2ClE/PJE/BcrrQrVyGYH7Jg8V/LDupmyL4kFlVsVFQ==", - "peer": true, + "version": "2.1.13", + "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-2.1.13.tgz", + "integrity": "sha512-zlOQ80VrQ2Ue+ymH5OuM/DlDq64mEm+B9UTdHULv5osUMD6HalNTblf2b1u/m6QecjsnOkBpqVZ+XPwIVsy7Ng==", "engines": { "node": ">=12.13" }, @@ -6110,14 +7411,6 @@ "url": "https://github.com/sponsors/mesqueeb" } }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -6141,6 +7434,15 @@ "node": ">=10" } }, + "node_modules/character-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", + "integrity": "sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==", + "dev": true, + "dependencies": { + "is-regex": "^1.0.3" + } + }, "node_modules/charenc": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", @@ -6150,15 +7452,41 @@ "node": "*" } }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, - "optional": true, - "peer": true, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, "engines": { - "node": ">=10" + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, "node_modules/chrome-trace-event": { @@ -6210,13 +7538,21 @@ "node": ">=0.10.0" } }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "optional": true, - "peer": true, + "node_modules/class-variance-authority": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.0.tgz", + "integrity": "sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==", + "dependencies": { + "clsx": "2.0.0" + }, + "funding": { + "url": "https://joebell.co.uk" + } + }, + "node_modules/class-variance-authority/node_modules/clsx": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", + "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", "engines": { "node": ">=6" } @@ -6232,6 +7568,14 @@ "wrap-ansi": "^7.0.0" } }, + "node_modules/clsx": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", + "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", + "engines": { + "node": ">=6" + } + }, "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -6325,22 +7669,10 @@ "simple-swizzle": "^0.2.2" } }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "color-support": "bin.js" - } - }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, "dependencies": { "delayed-stream": "~1.0.0" }, @@ -6366,15 +7698,6 @@ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", "dev": true }, - "node_modules/compose-function": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz", - "integrity": "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=", - "dev": true, - "dependencies": { - "arity-n": "^1.0.4" - } - }, "node_modules/compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", @@ -6420,11 +7743,16 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", + "dev": true + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "node_modules/concat-stream": { "version": "1.6.2", @@ -6450,16 +7778,6 @@ "globs": "^0.1.2" } }, - "node_modules/config-chain": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.11.tgz", - "integrity": "sha1-q6CXR9++TD5w52am5BWG4YWfxvI=", - "dev": true, - "dependencies": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, "node_modules/connect-history-api-fallback": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", @@ -6469,25 +7787,12 @@ "node": ">=0.8" } }, - "node_modules/consola": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", - "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==" - }, "node_modules/console-browserify": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", "dev": true }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/consolidate": { "version": "0.15.1", "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz", @@ -6645,9 +7950,10 @@ } }, "node_modules/core-js": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz", - "integrity": "sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==", + "version": "3.36.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.36.0.tgz", + "integrity": "sha512-mt7+TUBbTFg5+GngsAxeKBTl5/VS0guFeJacYge9OmHb+m058UwwIm41SE9T4Den7ClatV57B6TYTuJ0CX1MAw==", + "dev": true, "hasInstallScript": true, "funding": { "type": "opencollective", @@ -6655,28 +7961,18 @@ } }, "node_modules/core-js-compat": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz", - "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==", + "version": "3.36.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.0.tgz", + "integrity": "sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==", "dev": true, "dependencies": { - "browserslist": "^4.19.1", - "semver": "7.0.0" + "browserslist": "^4.22.3" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -6727,10 +8023,9 @@ } }, "node_modules/crelt": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.5.tgz", - "integrity": "sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA==", - "peer": true + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", + "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==" }, "node_modules/cropperjs": { "version": "1.5.12", @@ -6790,18 +8085,6 @@ "node": "*" } }, - "node_modules/css": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", - "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "source-map": "^0.6.1", - "source-map-resolve": "^0.5.2", - "urix": "^0.1.0" - } - }, "node_modules/css-color-names": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", @@ -6920,6 +8203,22 @@ "dev": true, "peer": true }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, "node_modules/css-select-base-adapter": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", @@ -6958,20 +8257,22 @@ "node": ">=0.10.0" } }, - "node_modules/css/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" } }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, "bin": { "cssesc": "bin/cssesc" }, @@ -7087,9 +8388,9 @@ "dev": true }, "node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, "node_modules/cyclist": { "version": "1.0.1", @@ -7097,35 +8398,10 @@ "integrity": "sha512-NJGVKPS81XejHcLhaLJS7plab0fK3slPh11mESeeDq2W4ZI5kUKK/LRRdVDvjJseojbPB7ZwjnyOybg3Igea/A==", "dev": true }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, "node_modules/dash-get": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/dash-get/-/dash-get-1.0.2.tgz", - "integrity": "sha512-4FbVrHDwfOASx7uQVxeiCTo7ggSdYZbqs8lH+WU6ViypPlDbe9y6IP5VVUDQBv9DcnyaiPT5XT0UWHgJ64zLeQ==", - "peer": true - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } + "integrity": "sha512-4FbVrHDwfOASx7uQVxeiCTo7ggSdYZbqs8lH+WU6ViypPlDbe9y6IP5VVUDQBv9DcnyaiPT5XT0UWHgJ64zLeQ==" }, "node_modules/data-urls": { "version": "2.0.0", @@ -7141,26 +8417,6 @@ "node": ">=10" } }, - "node_modules/date-fns": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", - "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==", - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, - "node_modules/date-fns-tz": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/date-fns-tz/-/date-fns-tz-1.3.0.tgz", - "integrity": "sha512-r6ye6PmGEvkF467/41qzU71oGwv9kHTnV3vtSZdyV6VThwPID47ZH7FtR7zQWrhgOUWkYySm2ems2w6ZfNUqoA==", - "peerDependencies": { - "date-fns": ">=2.0.0" - } - }, "node_modules/de-indent": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", @@ -7198,32 +8454,6 @@ "node": ">=0.10.0" } }, - "node_modules/decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/decimal.js": { "version": "10.3.1", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", @@ -7269,9 +8499,9 @@ "dev": true }, "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "engines": { "node": ">=0.10.0" } @@ -7313,23 +8543,19 @@ "node": ">=0.10.0" } }, + "node_modules/defu": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==" + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true, "engines": { "node": ">=0.4.0" } }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -7379,6 +8605,11 @@ "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, "node_modules/diff-sequences": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", @@ -7405,6 +8636,11 @@ "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", "dev": true }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, "node_modules/dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", @@ -7436,6 +8672,32 @@ "integrity": "sha512-2G2Vwi2zXTHBGqXHsJ4+ak/iP0N8Ar+G8a7LiD2oup5o4sQWytwqqrZu/O6hIMV0KMID2PL69OhpshLO0n7UJQ==", "dev": true }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/domain-browser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", @@ -7447,9 +8709,9 @@ } }, "node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "dev": true, "funding": [ { @@ -7479,6 +8741,35 @@ "node": ">=8" } }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, "node_modules/dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", @@ -7491,11 +8782,6 @@ "node": ">=8" } }, - "node_modules/dropzone": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/dropzone/-/dropzone-4.3.0.tgz", - "integrity": "sha1-SLC48q0JKHLktTW2cqfD8aHWfJE=" - }, "node_modules/duplexify": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", @@ -7508,43 +8794,6 @@ "stream-shift": "^1.0.0" } }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/editorconfig": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.13.3.tgz", - "integrity": "sha512-WkjsUNVCu+ITKDj73QDvi0trvpdDWdkDyHybDGSXPfekLCqwmpD7CP7iPbvBgosNuLcI96XTDwNa75JyFl7tEQ==", - "dev": true, - "dependencies": { - "bluebird": "^3.0.5", - "commander": "^2.9.0", - "lru-cache": "^3.2.0", - "semver": "^5.1.0", - "sigmund": "^1.0.1" - }, - "bin": { - "editorconfig": "bin/editorconfig" - } - }, - "node_modules/editorconfig/node_modules/lru-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-3.2.0.tgz", - "integrity": "sha1-cXibO39Tmb7IVl3aOKow0qCX7+4=", - "dev": true, - "dependencies": { - "pseudomap": "^1.0.1" - } - }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -7552,9 +8801,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.76", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.76.tgz", - "integrity": "sha512-3Vftv7cenJtQb+k00McEBZ2vVmZ/x+HEF7pcZONZIkOsESqAqVuACmBxMv0JhzX7u0YltU0vSqRqgBSTAhFUjA==", + "version": "1.4.679", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.679.tgz", + "integrity": "sha512-NhQMsz5k0d6m9z3qAxnsOR/ebal4NAGsrNVRwcDo4Kc/zQ7KdsTKZUxZoygHcVRb0QDW3waEDIcE3isZ79RP6g==", "dev": true }, "node_modules/elliptic": { @@ -7590,6 +8839,22 @@ "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, + "node_modules/emmet": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/emmet/-/emmet-2.4.11.tgz", + "integrity": "sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==", + "dev": true, + "workspaces": [ + "./packages/scanner", + "./packages/abbreviation", + "./packages/css-abbreviation", + "./" + ], + "dependencies": { + "@emmetio/abbreviation": "^2.3.3", + "@emmetio/css-abbreviation": "^2.1.8" + } + }, "node_modules/emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", @@ -7614,31 +8879,6 @@ "node": ">= 0.8" } }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -7671,25 +8911,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/errno": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", @@ -7788,38 +9009,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "dev": true, - "dependencies": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dev": true, - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, "node_modules/es6-templates": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/es6-templates/-/es6-templates-0.2.3.tgz", @@ -7831,9 +9020,9 @@ } }, "node_modules/esbuild": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.16.tgz", - "integrity": "sha512-1xLsOXrDqwdHxyXb/x/SOyg59jpf/SH7YMvU5RNSU7z3TInaASNJWNFJ6iRvLvLETZMasF3d1DdZLg7sgRimRQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, "hasInstallScript": true, "bin": { @@ -7843,28 +9032,29 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.18.16", - "@esbuild/android-arm64": "0.18.16", - "@esbuild/android-x64": "0.18.16", - "@esbuild/darwin-arm64": "0.18.16", - "@esbuild/darwin-x64": "0.18.16", - "@esbuild/freebsd-arm64": "0.18.16", - "@esbuild/freebsd-x64": "0.18.16", - "@esbuild/linux-arm": "0.18.16", - "@esbuild/linux-arm64": "0.18.16", - "@esbuild/linux-ia32": "0.18.16", - "@esbuild/linux-loong64": "0.18.16", - "@esbuild/linux-mips64el": "0.18.16", - "@esbuild/linux-ppc64": "0.18.16", - "@esbuild/linux-riscv64": "0.18.16", - "@esbuild/linux-s390x": "0.18.16", - "@esbuild/linux-x64": "0.18.16", - "@esbuild/netbsd-x64": "0.18.16", - "@esbuild/openbsd-x64": "0.18.16", - "@esbuild/sunos-x64": "0.18.16", - "@esbuild/win32-arm64": "0.18.16", - "@esbuild/win32-ia32": "0.18.16", - "@esbuild/win32-x64": "0.18.16" + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" } }, "node_modules/escalade": { @@ -8100,6 +9290,11 @@ "node": ">= 8" } }, + "node_modules/exifr": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/exifr/-/exifr-7.1.3.tgz", + "integrity": "sha512-g/aje2noHivrRSLbAUtBPWFbxKdKhgj/xr1vATDdUXPOFYJlQ62Ft0oy+72V6XLIpDJfHs6gXLbBLAolqOXYRw==" + }, "node_modules/exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", @@ -8239,29 +9434,6 @@ } ] }, - "node_modules/ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", - "dev": true, - "dependencies": { - "type": "^2.0.0" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz", - "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==", - "dev": true - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", @@ -8361,61 +9533,37 @@ "node": ">=0.10.0" } }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "optional": true, - "peer": true, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" }, "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" + "node": ">=8.6.0" } }, - "node_modules/extract-zip/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "optional": true, - "peer": true, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dependencies": { - "pump": "^3.0.0" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 6" } }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "optional": true, - "peer": true - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, "node_modules/fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", @@ -8434,6 +9582,14 @@ "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", "dev": true }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dependencies": { + "reusify": "^1.0.4" + } + }, "node_modules/faye-websocket": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", @@ -8455,17 +9611,6 @@ "bser": "2.1.1" } }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "pend": "~1.2.0" - } - }, "node_modules/figgy-pudding": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", @@ -8480,18 +9625,17 @@ "optional": true }, "node_modules/filesize": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.1.0.tgz", - "integrity": "sha512-LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-10.1.0.tgz", + "integrity": "sha512-GTLKYyBSDz3nPhlLVPjPWZCnhkd9TrrRArNcy8Z+J2cqScB7h2McAzR6NBX6nYOoWafql0roY8hrocxnZBv9CQ==", "engines": { - "node": ">= 0.4.0" + "node": ">= 10.4.0" } }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -8740,6 +9884,11 @@ "node": ">=0.10.0" } }, + "node_modules/flexsearch": { + "version": "0.7.43", + "resolved": "https://registry.npmjs.org/flexsearch/-/flexsearch-0.7.43.tgz", + "integrity": "sha512-c5o/+Um8aqCSOXGcZoqZOm+NqtVwNsvVpWv6lfmSclU954O3wvQKxxK8zj74fPaSJbXpSLTs4PRhh+wnoCXnKg==" + }, "node_modules/flush-write-stream": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", @@ -8751,10 +9900,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.14.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", - "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", - "dev": true, + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", "funding": [ { "type": "individual", @@ -8784,31 +9932,17 @@ "node": ">=0.10.0" } }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": "*" - } - }, "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "optional": true, - "peer": true, + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "dependencies": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", + "combined-stream": "^1.0.8", "mime-types": "^2.1.12" }, "engines": { - "node": ">= 0.12" + "node": ">= 6" } }, "node_modules/forwarded": { @@ -8820,6 +9954,19 @@ "node": ">= 0.6" } }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, "node_modules/fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", @@ -8851,20 +9998,6 @@ "readable-stream": "^2.0.0" } }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/fs-write-stream-atomic": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", @@ -8880,14 +10013,12 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "hasInstallScript": true, "optional": true, "os": [ @@ -8900,8 +10031,7 @@ "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "node_modules/function.prototype.name": { "version": "1.1.5", @@ -8931,46 +10061,15 @@ } }, "node_modules/fuse.js": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-2.7.4.tgz", - "integrity": "sha1-luQg/efvARrEnCWKYhMU/ldlNvk=" - }, - "node_modules/gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "dev": true, + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.0.0.tgz", + "integrity": "sha512-14F4hBIxqKvD4Zz/XjDc3y94mNZN6pRv3U13Udo0lNLCWRBUsrMv2xwcF/y/Z5sV6+FQW+/ow68cHpm4sunt8Q==", "optional": true, "peer": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - }, "engines": { "node": ">=10" } }, - "node_modules/gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "globule": "^1.0.0" - }, - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -9012,17 +10111,6 @@ "node": ">=8.0.0" } }, - "node_modules/get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -9060,22 +10148,10 @@ "node": ">=0.10.0" } }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, "node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -9086,6 +10162,20 @@ }, "engines": { "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" } }, "node_modules/glob-to-regexp": { @@ -9148,30 +10238,6 @@ "glob": "^7.1.1" } }, - "node_modules/globule": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz", - "integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "glob": "~7.1.1", - "lodash": "~4.17.10", - "minimatch": "~3.0.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/google-protobuf": { - "version": "3.20.1", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.20.1.tgz", - "integrity": "sha512-XMf1+O32FjYIV3CYu6Tuh5PNbfNEU5Xu22X+Xkdb/DUexFlCzhvv7d5Iirm4AOwn8lv4al1YvIhzGrg2j9Zfzw==", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/graceful-fs": { "version": "4.2.9", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", @@ -9190,48 +10256,10 @@ "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "dependencies": { "function-bind": "^1.1.1" }, @@ -9317,14 +10345,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -9593,14 +10613,6 @@ "node": ">=0.10.0" } }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", @@ -9663,23 +10675,6 @@ "node": ">= 6" } }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, "node_modules/https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", @@ -9708,17 +10703,6 @@ "node": ">=10.17.0" } }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ms": "^2.0.0" - } - }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -9766,7 +10750,9 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/import-cwd": { "version": "2.1.0", @@ -9829,17 +10815,6 @@ "node": ">=0.8.19" } }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, "node_modules/indexes-of": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", @@ -9856,7 +10831,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -9865,8 +10839,7 @@ "node_modules/inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "node_modules/ini": { "version": "1.3.8", @@ -10111,6 +11084,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/is-boolean-object": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", @@ -10160,10 +11144,9 @@ } }, "node_modules/is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "dev": true, + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", "dependencies": { "has": "^1.0.3" }, @@ -10251,6 +11234,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-expression": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", + "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", + "dev": true, + "dependencies": { + "acorn": "^7.1.1", + "object-assign": "^4.1.1" + } + }, "node_modules/is-extendable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", @@ -10266,7 +11259,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -10293,7 +11285,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -10301,14 +11292,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/is-negative-zero": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", @@ -10325,7 +11308,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, "engines": { "node": ">=0.12.0" } @@ -10387,17 +11369,6 @@ "node": ">=6" } }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -10547,14 +11518,6 @@ "node": ">=0.10.0" } }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", @@ -12450,29 +13413,12 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/js-beautify": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.7.4.tgz", - "integrity": "sha512-6YX1g+lIl0/JDxjFFbgj7fz6i0bWFa2Hdc7PfGqFhynaEiYe1NJ3R1nda0VGaRiGU82OllR+EGDoWFpGr3k5Kg==", - "dev": true, - "dependencies": { - "config-chain": "~1.1.5", - "editorconfig": "^0.13.2", - "mkdirp": "~0.5.0", - "nopt": "~3.0.1" - }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", "bin": { - "css-beautify": "js/bin/css-beautify.js", - "html-beautify": "js/bin/html-beautify.js", - "js-beautify": "js/bin/js-beautify.js" + "jiti": "bin/jiti.js" } }, "node_modules/js-tokens": { @@ -12494,14 +13440,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/jsdom": { "version": "16.7.0", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", @@ -12598,7 +13536,7 @@ "node_modules/jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "dev": true, "bin": { "jsesc": "bin/jsesc" @@ -12616,36 +13554,17 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, - "node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/json5": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.2.tgz", - "integrity": "sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, "bin": { "json5": "lib/cli.js" }, @@ -12653,22 +13572,16 @@ "node": ">=6" } }, - "node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "optional": true, - "peer": true, - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } + "node_modules/jsonc-parser": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.1.tgz", + "integrity": "sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==", + "dev": true + }, + "node_modules/kdbush": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz", + "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==" }, "node_modules/killable": { "version": "1.0.1", @@ -12697,29 +13610,23 @@ "node": ">=6" } }, - "node_modules/klona": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", - "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, "node_modules/laravel-vite-plugin": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-0.8.0.tgz", - "integrity": "sha512-6VjLI+azBpeK6rWBiKcb/En5GnTdYpL0U4zS8gXYvb2/VSq4mlau5H3NWpSktUDBMM1b97LLgICx5zevi8IY0w==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-1.0.5.tgz", + "integrity": "sha512-Zv+to82YLBknDCZ6g3iwOv9wZ7f6EWStb9pjSm7MGe9Mfoy5ynT2ssZbGsMr1udU6rDg9HOoYEVGw5Qf+p9zbw==", "dev": true, "dependencies": { "picocolors": "^1.0.0", - "vite-plugin-full-reload": "^1.0.5" + "vite-plugin-full-reload": "^1.1.0" + }, + "bin": { + "clean-orphaned-assets": "bin/clean.js" }, "engines": { - "node": ">=14" + "node": "^18.0.0 || >=20.0.0" }, "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0" + "vite": "^5.0.0" } }, "node_modules/last-call-webpack-plugin": { @@ -12745,9 +13652,9 @@ } }, "node_modules/leaflet": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.4.0.tgz", - "integrity": "sha512-x9j9tGY1+PDLN9pcWTx9/y6C5nezoTMB8BLK5jTakx+H7bPlnbCHfi9Hjg+Qt36sgDz/cb9lrSpNQXmk45Tvhw==" + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", + "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==" }, "node_modules/leven": { "version": "3.1.0", @@ -12771,11 +13678,18 @@ "node": ">= 0.8.0" } }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "engines": { + "node": ">=10" + } + }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, "node_modules/linkify-it": { "version": "4.0.1", @@ -12844,10 +13758,10 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "node_modules/lodash.clone": { + "node_modules/lodash.clonedeep": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz", - "integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y=" + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" }, "node_modules/lodash.debounce": { "version": "4.0.8", @@ -12855,6 +13769,11 @@ "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", "dev": true }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -12890,6 +13809,22 @@ "yallist": "^2.1.2" } }, + "node_modules/lucide-vue-next": { + "version": "0.363.0", + "resolved": "https://registry.npmjs.org/lucide-vue-next/-/lucide-vue-next-0.363.0.tgz", + "integrity": "sha512-dc5KgrXhCPMEzKz6voDVvxXkwEr7n+Q4b7qLyS2e3DTlH9GMFydS4fHoSvpZR/a5M7i1EOpFI8/BA8SPjAOwEQ==", + "peerDependencies": { + "vue": ">=3.0.1" + } + }, + "node_modules/magic-string": { + "version": "0.30.12", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", + "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -12917,59 +13852,7 @@ "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "peer": true - }, - "node_modules/make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/make-fetch-happen/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-fetch-happen/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true, - "peer": true + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" }, "node_modules/makeerror": { "version": "1.0.12", @@ -13001,20 +13884,6 @@ "node": ">=0.10.0" } }, - "node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", @@ -13063,11 +13932,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/marker-clusterer-plus": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/marker-clusterer-plus/-/marker-clusterer-plus-2.1.4.tgz", - "integrity": "sha1-+O/3TVmdqzt9Dj/tUmTqDnBPXWc=" - }, "node_modules/md5": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", @@ -13141,268 +14005,17 @@ } }, "node_modules/meow": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", - "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize": "^1.2.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/meow/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/meow/node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/meow/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/meow/node_modules/read-pkg/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/meow/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/meow/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -13437,7 +14050,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, "engines": { "node": ">= 8" } @@ -13452,13 +14064,12 @@ } }, "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, "engines": { "node": ">=8.6" @@ -13499,16 +14110,22 @@ "version": "1.51.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "dev": true, "engines": { "node": ">= 0.6" } }, + "node_modules/mime-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mime-match/-/mime-match-1.0.2.tgz", + "integrity": "sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==", + "dependencies": { + "wildcard": "^1.1.0" + } + }, "node_modules/mime-types": { "version": "2.1.34", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dev": true, "dependencies": { "mime-db": "1.51.0" }, @@ -13525,15 +14142,13 @@ "node": ">=6" } }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "node_modules/mini-svg-data-uri": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", + "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4" + "bin": { + "mini-svg-data-uri": "cli.js" } }, "node_modules/minimalistic-assert": { @@ -13552,7 +14167,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -13569,153 +14183,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/minimist-options/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "optionalDependencies": { - "encoding": "^0.1.12" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minizlib/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/mississippi": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", @@ -13855,7 +14322,14 @@ "node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "dev": true }, "node_modules/multicast-dns": { "version": "6.2.3", @@ -13876,6 +14350,21 @@ "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", "dev": true }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/namespace-emitter": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/namespace-emitter/-/namespace-emitter-2.0.1.tgz", + "integrity": "sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==" + }, "node_modules/nan": { "version": "2.17.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", @@ -13884,9 +14373,9 @@ "optional": true }, "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "funding": [ { "type": "github", @@ -14016,217 +14505,12 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, - "node_modules/next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true - }, "node_modules/nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, - "node_modules/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/node-gyp": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", - "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^9.1.0", - "nopt": "^5.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": ">= 10.12.0" - } - }, - "node_modules/node-gyp/node_modules/are-we-there-yet": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz", - "integrity": "sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/node-gyp/node_modules/gauge": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.2.tgz", - "integrity": "sha512-aSPRm2CvA9R8QyU5eXMFPd+cYkyxLsXHd2l5/FOH2V/eml//M04G6KZOmTap07O1PvEwNcl2NndyLfK8g3QrKA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/node-gyp/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/node-gyp/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-gyp/node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/node-gyp/node_modules/npmlog": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.1.tgz", - "integrity": "sha512-BTHDvY6nrRHuRfyjt1MAufLxYdVXZfd099H4+i1f0lPywNQyI4foeNXJRObB/uy+TYqUW0vAD9gbdSOXPst7Eg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.0", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/node-gyp/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/node-gyp/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-gyp/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/node-gyp/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -14265,175 +14549,15 @@ } }, "node_modules/node-releases": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", - "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, - "node_modules/node-sass": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-7.0.1.tgz", - "integrity": "sha512-uMy+Xt29NlqKCFdFRZyXKOTqGt+QaKHexv9STj2WeLottnlqZEEWx6Bj0MXNthmFRRdM/YwyNo/8Tr46TOM0jQ==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "peer": true, - "dependencies": { - "async-foreach": "^0.1.3", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "gaze": "^1.0.0", - "get-stdin": "^4.0.1", - "glob": "^7.0.3", - "lodash": "^4.17.15", - "meow": "^9.0.0", - "nan": "^2.13.2", - "node-gyp": "^8.4.1", - "npmlog": "^5.0.0", - "request": "^2.88.0", - "sass-graph": "4.0.0", - "stdout-stream": "^1.4.0", - "true-case-path": "^1.0.2" - }, - "bin": { - "node-sass": "bin/node-sass" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/node-sass/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/node-sass/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/node-sass/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/node-sass/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/node-sass/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/node-sass/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/node-sass/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/node-sass/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -14459,68 +14583,21 @@ "node": ">=8" } }, - "node_modules/npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, - "node_modules/null-loader": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/null-loader/-/null-loader-4.0.1.tgz", - "integrity": "sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg==", - "dev": true, - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/null-loader/node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/null-loader/node_modules/loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } + "node_modules/nprogress": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", + "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" }, - "node_modules/null-loader/node_modules/schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" + "boolbase": "^1.0.0" }, - "engines": { - "node": ">= 10.13.0" + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" } }, "node_modules/num2fraction": { @@ -14544,22 +14621,10 @@ "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", "dev": true }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": "*" - } - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -14590,6 +14655,14 @@ "node": ">=0.10.0" } }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, "node_modules/object-inspect": { "version": "1.12.2", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", @@ -14624,15 +14697,6 @@ "node": ">= 0.4" } }, - "node_modules/object-path": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.4.tgz", - "integrity": "sha1-NwrnUvvzfePqcKhhwju6iRVpGUk=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", @@ -14726,6 +14790,11 @@ "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true }, + "node_modules/ohash": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-1.1.4.tgz", + "integrity": "sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==" + }, "node_modules/on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -14751,7 +14820,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "dependencies": { "wrappy": "1" } @@ -15005,23 +15073,6 @@ "node": ">=6" } }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/p-try": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", @@ -15132,7 +15183,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -15155,8 +15205,7 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-to-regexp": { "version": "0.1.7", @@ -15192,32 +15241,15 @@ "node": ">=0.12" } }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, "engines": { "node": ">=8.6" }, @@ -15259,7 +15291,6 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true, "engines": { "node": ">= 6" } @@ -15322,16 +15353,6 @@ "node": ">=8" } }, - "node_modules/popper.js": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", - "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==" - }, - "node_modules/portal-vue": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/portal-vue/-/portal-vue-2.1.7.tgz", - "integrity": "sha512-+yCno2oB3xA7irTt0EU5Ezw22L2J51uKAacE/6hMPMoO/mx3h4rXFkkBkT4GFsMDv/vEe8TNKC3ujJJ0PTwb6g==" - }, "node_modules/portfinder": { "version": "1.0.28", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", @@ -15371,9 +15392,9 @@ } }, "node_modules/postcss": { - "version": "8.4.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.27.tgz", - "integrity": "sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "funding": [ { "type": "opencollective", @@ -15389,14 +15410,84 @@ } ], "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" + }, + "engines": { + "node": ">= 14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/yaml": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", + "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", + "engines": { + "node": ">= 14" + } + }, "node_modules/postcss-modules-extract-imports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", @@ -15460,11 +15551,28 @@ "postcss": "^8.1.0" } }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, "node_modules/postcss-selector-parser": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", - "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", - "dev": true, + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -15476,8 +15584,16 @@ "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "node_modules/preact": { + "version": "10.18.1", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.18.1.tgz", + "integrity": "sha512-mKUD7RRkQQM6s7Rkmi7IFkoEHjuFqRQUaXamO61E6Nn7vqF/bo7EZCmSyrUnp2UWHw0O7XjZ2eeXis+m7tf4lg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } }, "node_modules/prelude-ls": { "version": "1.1.2", @@ -15557,21 +15673,6 @@ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "dev": true }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -15586,28 +15687,25 @@ } }, "node_modules/prosemirror-changeset": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/prosemirror-changeset/-/prosemirror-changeset-2.2.0.tgz", - "integrity": "sha512-QM7ohGtkpVpwVGmFb8wqVhaz9+6IUXcIQBGZ81YNAKYuHiFJ1ShvSzab4pKqTinJhwciZbrtBEk/2WsqSt2PYg==", - "peer": true, + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/prosemirror-changeset/-/prosemirror-changeset-2.2.1.tgz", + "integrity": "sha512-J7msc6wbxB4ekDFj+n9gTW/jav/p53kdlivvuppHsrZXCaQdVgRghoZbSS3kwrRyAstRVQ4/+u5k7YfLgkkQvQ==", "dependencies": { "prosemirror-transform": "^1.0.0" } }, "node_modules/prosemirror-collab": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/prosemirror-collab/-/prosemirror-collab-1.3.0.tgz", - "integrity": "sha512-+S/IJ69G2cUu2IM5b3PBekuxs94HO1CxJIWOFrLQXUaUDKL/JfBx+QcH31ldBlBXyDEUl+k3Vltfi1E1MKp2mA==", - "peer": true, + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/prosemirror-collab/-/prosemirror-collab-1.3.1.tgz", + "integrity": "sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==", "dependencies": { "prosemirror-state": "^1.0.0" } }, "node_modules/prosemirror-commands": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.5.1.tgz", - "integrity": "sha512-ga1ga/RkbzxfAvb6iEXYmrEpekn5NCwTb8w1dr/gmhSoaGcQ0VPuCzOn5qDEpC45ql2oDkKoKQbRxLJwKLpMTQ==", - "peer": true, + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.5.2.tgz", + "integrity": "sha512-hgLcPaakxH8tu6YvVAaILV2tXYsW3rAdDR8WNkeKGcgeMVQg3/TMhPdVoh7iAmfgVjZGtcOSjKiQaoeKjzd2mQ==", "dependencies": { "prosemirror-model": "^1.0.0", "prosemirror-state": "^1.0.0", @@ -15615,10 +15713,9 @@ } }, "node_modules/prosemirror-dropcursor": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/prosemirror-dropcursor/-/prosemirror-dropcursor-1.7.1.tgz", - "integrity": "sha512-GmWk9bAwhfHwA8xmJhBFjPcebxUG9zAPYtqpIr7NTDigWZZEJCgUYyUQeqgyscLr8ZHoh9aeprX9kW7BihUT+w==", - "peer": true, + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.1.tgz", + "integrity": "sha512-M30WJdJZLyXHi3N8vxN6Zh5O8ZBbQCz0gURTfPmTIBNQ5pxrdU7A58QkNqfa98YEjSAL1HUyyU34f6Pm5xBSGw==", "dependencies": { "prosemirror-state": "^1.0.0", "prosemirror-transform": "^1.1.0", @@ -15626,10 +15723,9 @@ } }, "node_modules/prosemirror-gapcursor": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/prosemirror-gapcursor/-/prosemirror-gapcursor-1.3.1.tgz", - "integrity": "sha512-GKTeE7ZoMsx5uVfc51/ouwMFPq0o8YrZ7Hx4jTF4EeGbXxBveUV8CGv46mSHuBBeXGmvu50guoV2kSnOeZZnUA==", - "peer": true, + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/prosemirror-gapcursor/-/prosemirror-gapcursor-1.3.2.tgz", + "integrity": "sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ==", "dependencies": { "prosemirror-keymap": "^1.0.0", "prosemirror-model": "^1.0.0", @@ -15638,31 +15734,29 @@ } }, "node_modules/prosemirror-history": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.3.0.tgz", - "integrity": "sha512-qo/9Wn4B/Bq89/YD+eNWFbAytu6dmIM85EhID+fz9Jcl9+DfGEo8TTSrRhP15+fFEoaPqpHSxlvSzSEbmlxlUA==", - "peer": true, + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.3.2.tgz", + "integrity": "sha512-/zm0XoU/N/+u7i5zepjmZAEnpvjDtzoPWW6VmKptcAnPadN/SStsBjMImdCEbb3seiNTpveziPTIrXQbHLtU1g==", "dependencies": { "prosemirror-state": "^1.2.2", "prosemirror-transform": "^1.0.0", + "prosemirror-view": "^1.31.0", "rope-sequence": "^1.3.0" } }, "node_modules/prosemirror-inputrules": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.2.0.tgz", - "integrity": "sha512-eAW/M/NTSSzpCOxfR8Abw6OagdG0MiDAiWHQMQveIsZtoKVYzm0AflSPq/ymqJd56/Su1YPbwy9lM13wgHOFmQ==", - "peer": true, + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.4.0.tgz", + "integrity": "sha512-6ygpPRuTJ2lcOXs9JkefieMst63wVJBgHZGl5QOytN7oSZs3Co/BYbc3Yx9zm9H37Bxw8kVzCnDsihsVsL4yEg==", "dependencies": { "prosemirror-state": "^1.0.0", "prosemirror-transform": "^1.0.0" } }, "node_modules/prosemirror-keymap": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.1.tgz", - "integrity": "sha512-kVK6WGC+83LZwuSJnuCb9PsADQnFZllt94qPP3Rx/vLcOUV65+IbBeH2nS5cFggPyEVJhGkGrgYFRrG250WhHQ==", - "peer": true, + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.2.tgz", + "integrity": "sha512-EAlXoksqC6Vbocqc0GtzCruZEzYgrn+iiGnNjsJsH4mrnIGex4qbLdWWNza3AW5W36ZRrlBID0eM6bdKH4OStQ==", "dependencies": { "prosemirror-state": "^1.0.0", "w3c-keyname": "^2.2.0" @@ -15728,10 +15822,9 @@ "integrity": "sha512-DffL94LsNOccVn4hyfRe5rdKa273swqeA5DJpMOeFmEn1wCDc7nAbbB0gXlgBCL7TNzeTv6G7XVWzan7iJtfig==" }, "node_modules/prosemirror-menu": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.2.1.tgz", - "integrity": "sha512-sBirXxVfHalZO4f1ZS63WzewINK4182+7dOmoMeBkqYO8wqMBvBS7wQuwVOHnkMWPEh0+N0LJ856KYUN+vFkmQ==", - "peer": true, + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.2.4.tgz", + "integrity": "sha512-S/bXlc0ODQup6aiBbWVsX/eM+xJgCTAfMq/nLqaO5ID/am4wS0tTCIkzwytmao7ypEtjj39i7YbJjAgO20mIqA==", "dependencies": { "crelt": "^1.0.0", "prosemirror-commands": "^1.0.0", @@ -15740,38 +15833,35 @@ } }, "node_modules/prosemirror-model": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.19.0.tgz", - "integrity": "sha512-/CvFGJnwc41EJSfDkQLly1cAJJJmBpZwwUJtwZPTjY2RqZJfM8HVbCreOY/jti8wTRbVyjagcylyGoeJH/g/3w==", + "version": "1.19.4", + "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.19.4.tgz", + "integrity": "sha512-RPmVXxUfOhyFdayHawjuZCxiROsm9L4FCUA6pWI+l7n2yCBsWy9VpdE1hpDHUS8Vad661YLY9AzqfjLhAKQ4iQ==", "dependencies": { "orderedmap": "^2.0.0" } }, "node_modules/prosemirror-schema-basic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.1.tgz", - "integrity": "sha512-vYBdIHsYKSDIqYmPBC7lnwk9DsKn8PnVqK97pMYP5MLEDFqWIX75JiaJTzndBii4bRuNqhC2UfDOfM3FKhlBHg==", - "peer": true, + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.2.tgz", + "integrity": "sha512-/dT4JFEGyO7QnNTe9UaKUhjDXbTNkiWTq/N4VpKaF79bBjSExVV2NXmJpcM7z/gD7mbqNjxbmWW5nf1iNSSGnw==", "dependencies": { "prosemirror-model": "^1.19.0" } }, "node_modules/prosemirror-schema-list": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.2.2.tgz", - "integrity": "sha512-rd0pqSDp86p0MUMKG903g3I9VmElFkQpkZ2iOd3EOVg1vo5Cst51rAsoE+5IPy0LPXq64eGcCYlW1+JPNxOj2w==", - "peer": true, + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.3.0.tgz", + "integrity": "sha512-Hz/7gM4skaaYfRPNgr421CU4GSwotmEwBVvJh5ltGiffUJwm7C8GfN/Bc6DR1EKEp5pDKhODmdXXyi9uIsZl5A==", "dependencies": { "prosemirror-model": "^1.0.0", "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.0.0" + "prosemirror-transform": "^1.7.3" } }, "node_modules/prosemirror-state": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.2.tgz", - "integrity": "sha512-puuzLD2mz/oTdfgd8msFbe0A42j5eNudKAAPDB0+QJRw8cO1ygjLmhLrg9RvDpf87Dkd6D4t93qdef00KKNacQ==", - "peer": true, + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.3.tgz", + "integrity": "sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==", "dependencies": { "prosemirror-model": "^1.0.0", "prosemirror-transform": "^1.0.0", @@ -15779,10 +15869,9 @@ } }, "node_modules/prosemirror-tables": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.3.2.tgz", - "integrity": "sha512-/9JTeN6s58Zq66HXaxP6uf8PAmc7XXKZFPlOGVtLvxEd6xBP6WtzaJB9wBjiGUzwbdhdMEy7V62yuHqk/3VrnQ==", - "peer": true, + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.3.5.tgz", + "integrity": "sha512-JSZ2cCNlApu/ObAhdPyotrjBe2cimniniTpz60YXzbL0kZ+47nEYk2LWbfKU2lKpBkUNquta2PjteoNi4YCluQ==", "dependencies": { "prosemirror-keymap": "^1.1.2", "prosemirror-model": "^1.8.1", @@ -15792,27 +15881,24 @@ } }, "node_modules/prosemirror-trailing-node": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/prosemirror-trailing-node/-/prosemirror-trailing-node-2.0.3.tgz", - "integrity": "sha512-lGrjMrn97KWkjQSW/FjdvnhJmqFACmQIyr6lKYApvHitDnKsCoZz6XzrHB7RZYHni/0NxQmZ01p/2vyK2SkvaA==", - "peer": true, + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/prosemirror-trailing-node/-/prosemirror-trailing-node-2.0.7.tgz", + "integrity": "sha512-8zcZORYj/8WEwsGo6yVCRXFMOfBo0Ub3hCUvmoWIZYfMP26WqENU0mpEP27w7mt8buZWuGrydBewr0tOArPb1Q==", "dependencies": { - "@babel/runtime": "^7.13.10", - "@remirror/core-constants": "^2.0.0", - "@remirror/core-helpers": "^2.0.1", + "@remirror/core-constants": "^2.0.2", + "@remirror/core-helpers": "^3.0.0", "escape-string-regexp": "^4.0.0" }, "peerDependencies": { - "prosemirror-model": "^1", - "prosemirror-state": "^1", - "prosemirror-view": "^1" + "prosemirror-model": "^1.19.0", + "prosemirror-state": "^1.4.2", + "prosemirror-view": "^1.31.2" } }, "node_modules/prosemirror-trailing-node/node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "peer": true, "engines": { "node": ">=10" }, @@ -15821,31 +15907,23 @@ } }, "node_modules/prosemirror-transform": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.7.1.tgz", - "integrity": "sha512-VteoifAfpt46z0yEt6Fc73A5OID9t/y2QIeR5MgxEwTuitadEunD/V0c9jQW8ziT8pbFM54uTzRLJ/nLuQjMxg==", - "peer": true, + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.8.0.tgz", + "integrity": "sha512-BaSBsIMv52F1BVVMvOmp1yzD3u65uC3HTzCBQV1WDPqJRQ2LuHKcyfn0jwqodo8sR9vVzMzZyI+Dal5W9E6a9A==", "dependencies": { "prosemirror-model": "^1.0.0" } }, "node_modules/prosemirror-view": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.30.1.tgz", - "integrity": "sha512-pZUfr7lICJkEY7XwzldAKrkflZDeIvnbfuu2RIS01N5NwJmR/dfZzDzJRzhb3SM2QtT/bM8b4Nnib8X3MGpAhA==", - "peer": true, + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.33.1.tgz", + "integrity": "sha512-62qkYgSJIkwIMMCpuGuPzc52DiK1Iod6TWoIMxP4ja6BTD4yO8kCUL64PZ/WhH/dJ9fW0CDO39FhH1EMyhUFEg==", "dependencies": { "prosemirror-model": "^1.16.0", "prosemirror-state": "^1.0.0", "prosemirror-transform": "^1.1.0" } }, - "node_modules/proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", - "dev": true - }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -15868,6 +15946,11 @@ "node": ">= 0.10" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", @@ -15912,6 +15995,33 @@ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true }, + "node_modules/pug-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.1.0.tgz", + "integrity": "sha512-lv7sU9e5Jk8IeUheHata6/UThZ7RK2jnaaNztxfPYUY+VxZyk/ePVaNZ/vwmH8WqGvDz3LrNYt/+gA55NDg6Pg==", + "dev": true + }, + "node_modules/pug-lexer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz", + "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==", + "dev": true, + "dependencies": { + "character-parser": "^2.2.0", + "is-expression": "^4.0.0", + "pug-error": "^2.0.0" + } + }, + "node_modules/pug-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz", + "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==", + "dev": true, + "dependencies": { + "pug-error": "^2.0.0", + "token-stream": "1.0.0" + } + }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -16002,16 +16112,24 @@ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", "dev": true }, - "node_modules/quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, "node_modules/randombytes": { "version": "2.1.0", @@ -16071,6 +16189,22 @@ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-cache/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", @@ -16086,6 +16220,17 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, "node_modules/recast": { "version": "0.11.23", "resolved": "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz", @@ -16114,21 +16259,6 @@ "node": ">=4" } }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -16136,9 +16266,9 @@ "dev": true }, "node_modules/regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", "dev": true, "dependencies": { "regenerate": "^1.4.2" @@ -16148,14 +16278,14 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, "node_modules/regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, "dependencies": { "@babel/runtime": "^7.8.4" @@ -16187,12 +16317,6 @@ "node": ">=0.10.0" } }, - "node_modules/regex-parser": { - "version": "2.2.10", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.10.tgz", - "integrity": "sha512-8t6074A68gHfU8Neftl0Le6KTDwfGAj7IyjPIMSfikI2wJUTHDMaIq42bUsfVnj8mhx0R+45rdUXHGpN164avA==", - "dev": true - }, "node_modules/regexp.prototype.flags": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", @@ -16211,32 +16335,26 @@ } }, "node_modules/regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, "dependencies": { + "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" + "unicode-match-property-value-ecmascript": "^2.1.0" }, "engines": { "node": ">=4" } }, - "node_modules/regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", - "dev": true - }, "node_modules/regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, "dependencies": { "jsesc": "~0.5.0" @@ -16245,6 +16363,59 @@ "regjsparser": "bin/parser" } }, + "node_modules/reka-ui": { + "version": "1.0.0-alpha.8", + "resolved": "https://registry.npmjs.org/reka-ui/-/reka-ui-1.0.0-alpha.8.tgz", + "integrity": "sha512-FmAUxWFLWtvbheBLvjgotR/RsE1KSjciMJOLmo7wL0Sbe+sW7M35O8K6f141a0Vc1cE0mH57UHcWBuVpeJNQNA==", + "dependencies": { + "@floating-ui/dom": "^1.6.11", + "@floating-ui/vue": "^1.1.5", + "@internationalized/date": "^3.5.6", + "@internationalized/number": "^3.5.4", + "@tanstack/vue-virtual": "^3.10.8", + "@vueuse/core": "^12.0.0", + "@vueuse/shared": "^12.0.0", + "aria-hidden": "^1.2.4", + "defu": "^6.1.4", + "ohash": "^1.1.4" + }, + "peerDependencies": { + "vue": ">= 3.2.0" + } + }, + "node_modules/reka-ui/node_modules/@vueuse/core": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-12.0.0.tgz", + "integrity": "sha512-C12RukhXiJCbx4MGhjmd/gH52TjJsc3G0E0kQj/kb19H3Nt6n1CA4DRWuTdWWcaFRdlTe0npWDS942mvacvNBw==", + "dependencies": { + "@types/web-bluetooth": "^0.0.20", + "@vueuse/metadata": "12.0.0", + "@vueuse/shared": "12.0.0", + "vue": "^3.5.13" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/reka-ui/node_modules/@vueuse/metadata": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-12.0.0.tgz", + "integrity": "sha512-Yzimd1D3sjxTDOlF05HekU5aSGdKjxhuhRFHA7gDWLn57PRbBIh+SF5NmjhJ0WRgF3my7T8LBucyxdFJjIfRJQ==", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/reka-ui/node_modules/@vueuse/shared": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-12.0.0.tgz", + "integrity": "sha512-3i6qtcq2PIio5i/vVYidkkcgvmTjCqrf26u+Fd4LhnbBmIT6FN8y6q/GJERp8lfcB9zVEfjdV0Br0443qZuJpw==", + "dependencies": { + "vue": "^3.5.13" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", @@ -16287,72 +16458,11 @@ "node": ">= 0.10" } }, - "node_modules/request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/request/node_modules/safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/request/node_modules/tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "engines": { - "node": ">=0.8" - } + "node_modules/request-light": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/request-light/-/request-light-0.7.0.tgz", + "integrity": "sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==", + "dev": true }, "node_modules/require-directory": { "version": "2.1.1", @@ -16376,13 +16486,16 @@ "dev": true }, "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -16458,71 +16571,6 @@ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, - "node_modules/resolve-url-loader": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.0.tgz", - "integrity": "sha512-2QcrA+2QgVqsMJ1Hn5NnJXIGCX1clQ1F6QJTqOeiaDw9ACo1G2k+8/shq3mtqne03HOFyskAClqfxKyFBriXZg==", - "dev": true, - "dependencies": { - "adjust-sourcemap-loader": "2.0.0", - "camelcase": "5.0.0", - "compose-function": "3.0.3", - "convert-source-map": "1.6.0", - "es6-iterator": "2.0.3", - "loader-utils": "1.2.3", - "postcss": "7.0.14", - "rework": "1.0.1", - "rework-visit": "1.0.0", - "source-map": "0.6.1" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/resolve-url-loader/node_modules/convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/resolve-url-loader/node_modules/postcss": { - "version": "7.0.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.14.tgz", - "integrity": "sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/resolve-url-loader/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-url-loader/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/resolve.exports": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", @@ -16550,28 +16598,15 @@ "node": ">= 4" } }, - "node_modules/rework": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", - "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", - "dev": true, - "dependencies": { - "convert-source-map": "^0.3.3", - "css": "^2.0.0" + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" } }, - "node_modules/rework-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz", - "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=", - "dev": true - }, - "node_modules/rework/node_modules/convert-source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz", - "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=", - "dev": true - }, "node_modules/rgb-regex": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", @@ -16630,10 +16665,11 @@ } }, "node_modules/rollup": { - "version": "3.26.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.26.3.tgz", - "integrity": "sha512-7Tin0C8l86TkpcMtXvQu6saWH93nhG3dGQ1/+l5V2TDMceTxO7kDiK6GzbfLWNNxqJXm591PcEZUozZm51ogwQ==", + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", "dev": true, + "peer": true, "bin": { "rollup": "dist/bin/rollup" }, @@ -16701,10 +16737,31 @@ } }, "node_modules/rope-sequence": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.2.tgz", - "integrity": "sha512-ku6MFrwEVSVmXLvy3dYph3LAMNS0890K7fabn+0YIRQ2T96T9F4gkFf0vf0WW0JUraNWwGRtInEpH7yO4tbQZg==", - "peer": true + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.4.tgz", + "integrity": "sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==" + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } }, "node_modules/run-queue": { "version": "1.0.3", @@ -16726,6 +16783,8 @@ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "tslib": "^2.1.0" } @@ -16734,7 +16793,9 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/safe-buffer": { "version": "5.1.1", @@ -16777,6 +16838,8 @@ "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.64.1.tgz", "integrity": "sha512-dZSKFPOwITHxM8dYDg8VkwyOYZnKpY2R3rBKwXz+shLvhRCPJlEowsSZLwx19YPUoQFeh7RgqI5lloMzAzrryg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@bufbuild/protobuf": "^1.0.0", "buffer-builder": "^0.2.0", @@ -16799,31 +16862,6 @@ "sass-embedded-win32-x64": "1.64.1" } }, - "node_modules/sass-embedded": { - "version": "1.54.4", - "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.54.4.tgz", - "integrity": "sha512-zsL+LlpCCCnUqIXA6MrnPLuBuOF5zaYbth3u9mmx6jw5yScCfBo39Ax601XLcSWhTek7dBMjj5LdEYzScQkI4A==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "peer": true, - "dependencies": { - "buffer-builder": "^0.2.0", - "extract-zip": "^2.0.1", - "google-protobuf": "^3.11.4", - "immutable": "^4.0.0", - "make-fetch-happen": "^10.1.2", - "rxjs": "^7.4.0", - "semver": "^7.3.5", - "shelljs": "^0.8.4", - "supports-color": "^8.1.1", - "tar": "^6.0.5", - "yaml": "^1.10.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, "node_modules/sass-embedded-darwin-arm64": { "version": "1.64.1", "resolved": "https://registry.npmjs.org/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.64.1.tgz", @@ -16836,6 +16874,7 @@ "os": [ "darwin" ], + "peer": true, "bin": { "sass": "dart-sass/sass" }, @@ -16855,6 +16894,7 @@ "os": [ "darwin" ], + "peer": true, "bin": { "sass": "dart-sass/sass" }, @@ -16874,6 +16914,7 @@ "os": [ "linux" ], + "peer": true, "bin": { "sass": "dart-sass/sass" }, @@ -16893,6 +16934,7 @@ "os": [ "linux" ], + "peer": true, "bin": { "sass": "dart-sass/sass" }, @@ -16912,6 +16954,7 @@ "os": [ "linux" ], + "peer": true, "bin": { "sass": "dart-sass/sass" }, @@ -16931,6 +16974,7 @@ "os": [ "linux" ], + "peer": true, "bin": { "sass": "dart-sass/sass" }, @@ -16950,6 +16994,7 @@ "os": [ "win32" ], + "peer": true, "bin": { "sass": "dart-sass/sass.bat" }, @@ -16969,6 +17014,7 @@ "os": [ "win32" ], + "peer": true, "bin": { "sass": "dart-sass/sass.bat" }, @@ -16976,122 +17022,7 @@ "node": ">=14.0.0" } }, - "node_modules/sass-embedded/node_modules/@npmcli/fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", - "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/sass-embedded/node_modules/@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/sass-embedded/node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/sass-embedded/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/sass-embedded/node_modules/cacache": { - "version": "16.1.2", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.2.tgz", - "integrity": "sha512-Xx+xPlfCZIUHagysjjOAje9nRo8pRDczQCcXb4J2O0BLtH+xeVue6ba4y1kfJfQMAnM2mkcoMIAyOctlaRGWYA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/sass-embedded/node_modules/cacache/node_modules/lru-cache": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", - "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/sass-embedded/node_modules/glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sass-embedded/node_modules/has-flag": { + "node_modules/sass/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -17102,171 +17033,7 @@ "node": ">=8" } }, - "node_modules/sass-embedded/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/sass-embedded/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/sass-embedded/node_modules/make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/sass-embedded/node_modules/make-fetch-happen/node_modules/lru-cache": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", - "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/sass-embedded/node_modules/minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/sass-embedded/node_modules/minipass-fetch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.0.tgz", - "integrity": "sha512-H9U4UVBGXEyyWJnqYDCLp1PwD8XIkJ4akNHp1aGVI+2Ym7wQMlxDKi4IB4JbmyU+pl9pEs/cVrK6cOuvmbK4Sg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/sass-embedded/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/sass-embedded/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/sass-embedded/node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/sass-embedded/node_modules/ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/sass-embedded/node_modules/supports-color": { + "node_modules/sass/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", @@ -17283,96 +17050,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/sass-embedded/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/sass-graph": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-4.0.0.tgz", - "integrity": "sha512-WSO/MfXqKH7/TS8RdkCX3lVkPFQzCgbqdGsmSKq6tlPU+GpGEsa/5aW18JqItnqh+lPtcjifqdZ/VmiILkKckQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "glob": "^7.0.0", - "lodash": "^4.17.11", - "scss-tokenizer": "^0.3.0", - "yargs": "^17.2.1" - }, - "bin": { - "sassgraph": "bin/sassgraph" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/sass-loader": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.0.2.tgz", - "integrity": "sha512-BbiqbVmbfJaWVeOOAu2o7DhYWtcNmTfvroVgFXa6k2hHheMxNAeDHLNoDy/Q5aoaVlz0LH+MbMktKwm9vN/j8Q==", - "dev": true, - "dependencies": { - "klona": "^2.0.4", - "neo-async": "^2.6.2" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "fibers": ">= 3.1.0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", - "sass": "^1.3.0", - "sass-embedded": "*", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "fibers": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - } - } - }, - "node_modules/sass/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/sass/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, "node_modules/sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", @@ -17409,29 +17086,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/scss-tokenizer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.3.0.tgz", - "integrity": "sha512-14Zl9GcbBvOT9057ZKjpz5yPOyUWG2ojd9D5io28wHRYsOrs7U95Q+KNL87+32p8rc+LvDpbu/i9ZYjM9Q+FsQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "js-base64": "^2.4.3", - "source-map": "^0.7.1" - } - }, - "node_modules/scss-tokenizer/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 8" - } - }, "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", @@ -17620,54 +17274,15 @@ "sha.js": "bin.js" } }, - "node_modules/sharp": { - "resolved": "resources/assets/js", - "link": true - }, - "node_modules/sharp-commands": { - "resolved": "packages/commands", - "link": true - }, - "node_modules/sharp-dashboard": { - "resolved": "packages/dashboard", - "link": true - }, - "node_modules/sharp-embeds": { - "resolved": "packages/embeds", - "link": true - }, - "node_modules/sharp-entity-list": { - "resolved": "packages/entity-list", - "link": true - }, - "node_modules/sharp-files": { - "resolved": "packages/files", - "link": true - }, - "node_modules/sharp-filters": { - "resolved": "packages/filters", - "link": true - }, - "node_modules/sharp-form": { - "resolved": "packages/form", - "link": true + "node_modules/shallow-equal": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz", + "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==" }, "node_modules/sharp-plugin": { "resolved": "packages/plugin", "link": true }, - "node_modules/sharp-search": { - "resolved": "packages/search", - "link": true - }, - "node_modules/sharp-show": { - "resolved": "packages/show", - "link": true - }, - "node_modules/sharp-ui": { - "resolved": "packages/ui", - "link": true - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -17689,50 +17304,6 @@ "node": ">=8" } }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/shelljs/node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/shelljs/node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/shellwords": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", @@ -17753,12 +17324,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", - "dev": true - }, "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", @@ -17795,18 +17360,6 @@ "node": ">=8" } }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, "node_modules/snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -17992,42 +17545,10 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/socks": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", - "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ip": "^1.1.5", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz", - "integrity": "sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.1", - "socks": "^2.6.1" - }, - "engines": { - "node": ">= 10" - } - }, "node_modules/sortablejs": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.6.1.tgz", - "integrity": "sha1-0SDRA/u59gx9sngUoThAcubG4IM=" + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.2.tgz", + "integrity": "sha512-FJF5jgdfvoKn1MAKSdGs33bIqLi3LmsgVTliuX6iITj834F+JRQZN90Z93yql8h0K2t0RwDPBmxwlbZfDcxNZA==" }, "node_modules/source-list-map": { "version": "2.0.1", @@ -18045,9 +17566,9 @@ } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "engines": { "node": ">=0.10.0" } @@ -18090,33 +17611,6 @@ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, - "node_modules/spdx-correct": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "spdx-license-ids": "^1.0.2" - } - }, - "node_modules/spdx-expression-parse": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/spdx-license-ids": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/spdy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", @@ -18192,47 +17686,6 @@ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, - "node_modules/sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/stable": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", @@ -18288,17 +17741,6 @@ "node": ">= 0.6" } }, - "node_modules/stdout-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", - "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "readable-stream": "^2.0.1" - } - }, "node_modules/stream-browserify": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", @@ -18438,20 +17880,6 @@ "node": ">=6" } }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -18464,6 +17892,43 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/sucrase": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", + "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/supercluster": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz", + "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==", + "dependencies": { + "kdbush": "^4.0.2" + } + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -18510,146 +17975,181 @@ "node": ">=8" } }, - "node_modules/svg.draggable.js": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz", - "integrity": "sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==", - "dependencies": { - "svg.js": "^2.0.1" - }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/svg.easing.js": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/svg.easing.js/-/svg.easing.js-2.0.0.tgz", - "integrity": "sha1-iqmUawqOJ4V6XEChDrpAkeVpHxI=", - "dependencies": { - "svg.js": ">=2.3.x" + "node": ">= 0.4" }, - "engines": { - "node": ">= 0.8.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/svg.filter.js": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/svg.filter.js/-/svg.filter.js-2.0.2.tgz", - "integrity": "sha1-kQCOFROJ3ZIwd5/L5uLJo2LRwgM=", + "node_modules/svgo": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.2.0.tgz", + "integrity": "sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==", + "dev": true, "dependencies": { - "svg.js": "^2.2.5" + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" }, "engines": { - "node": ">= 0.8.0" + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" } }, - "node_modules/svg.js": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/svg.js/-/svg.js-2.7.1.tgz", - "integrity": "sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==" - }, - "node_modules/svg.pathmorphing.js": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz", - "integrity": "sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==", - "dependencies": { - "svg.js": "^2.4.0" - }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, "engines": { - "node": ">= 0.8.0" + "node": ">= 10" } }, - "node_modules/svg.resize.js": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/svg.resize.js/-/svg.resize.js-1.4.3.tgz", - "integrity": "sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==", + "node_modules/svgo/node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, "dependencies": { - "svg.js": "^2.6.5", - "svg.select.js": "^2.1.2" + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" }, "engines": { - "node": ">= 0.8.0" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" } }, - "node_modules/svg.resize.js/node_modules/svg.select.js": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-2.1.2.tgz", - "integrity": "sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==", + "node_modules/svgo/node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, "dependencies": { - "svg.js": "^2.2.5" + "css-tree": "~2.2.0" }, "engines": { - "node": ">= 0.8.0" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" } }, - "node_modules/svg.select.js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-3.0.1.tgz", - "integrity": "sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==", + "node_modules/svgo/node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, "dependencies": { - "svg.js": "^2.6.5" + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" }, "engines": { - "node": ">= 0.8.0" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" } }, + "node_modules/svgo/node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true + }, + "node_modules/svgo/node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true + }, "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6" - } + "node_modules/systemjs": { + "version": "6.14.3", + "resolved": "https://registry.npmjs.org/systemjs/-/systemjs-6.14.3.tgz", + "integrity": "sha512-hQv45irdhXudAOr8r6SVSpJSGtogdGZUbJBRKCE5nsIS7tsxxvnIHqT4IOPWj+P+HcSzeWzHlGCGpmhPDIKe+w==", + "dev": true }, - "node_modules/tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "dev": true, - "optional": true, - "peer": true, + "node_modules/tailwind-merge": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.2.2.tgz", + "integrity": "sha512-tWANXsnmJzgw6mQ07nE3aCDkCK4QdT3ThPMCzawoYA2Pws7vSTCvz3Vrjg61jVUGfFZPJzxEP+NimbcW+EdaDw==", "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" + "@babel/runtime": "^7.24.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz", + "integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" }, "engines": { - "node": ">= 10" + "node": ">=14.0.0" } }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "node_modules/tailwindcss-animate": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", + "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, - "optional": true, "peer": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, "engines": { - "node": ">=10" + "node": ">=6" } }, - "node_modules/tar/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/terminal-link": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", @@ -18818,6 +18318,25 @@ "resolved": "https://registry.npmjs.org/text-clipper/-/text-clipper-1.3.0.tgz", "integrity": "sha512-6MjWFsTsXI8VyqqpGxTkb7685IPUInyJzG8sNhHHD2xbrnwv9xENQg5dAAabaFLIUa1QXDtRd406HYTauM010Q==" }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/throat": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", @@ -18828,7 +18347,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz", "integrity": "sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==", - "peer": true, "engines": { "node": ">=10" } @@ -18882,14 +18400,14 @@ } }, "node_modules/tiptap-markdown": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/tiptap-markdown/-/tiptap-markdown-0.8.8.tgz", - "integrity": "sha512-I2w/IpvCZ1BoR3nQzG0wRK3uGmDv+Ohyr++G24Ma6RzoDYd0TVGXZp0BOODX5Jj4c6heVY8eksahSeAwJMZBeg==", + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/tiptap-markdown/-/tiptap-markdown-0.7.3.tgz", + "integrity": "sha512-w97BYjSSfFMYK27YLgpESNQYNVLfUQRZj0SIJaPN2aXcIrB6PJuHdtNnLYI3Fa6GTDxza+GEbXFDvkZARFkEaQ==", "dependencies": { "@types/markdown-it": "^12.2.3", "markdown-it": "^13.0.1", "markdown-it-task-lists": "^2.1.1", - "prosemirror-markdown": "^1.11.1" + "prosemirror-markdown": "^1.11.0" }, "peerDependencies": { "@tiptap/core": "^2.0.3" @@ -18950,7 +18468,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "dependencies": { "is-number": "^7.0.0" }, @@ -19040,6 +18557,12 @@ "node": ">=0.6" } }, + "node_modules/token-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz", + "integrity": "sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==", + "dev": true + }, "node_modules/tough-cookie": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", @@ -19093,27 +18616,10 @@ "node": ">=6" } }, - "node_modules/trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/true-case-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", - "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "glob": "^7.1.2" - } + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" }, "node_modules/tslib": { "version": "1.14.1", @@ -19127,34 +18633,6 @@ "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", "dev": true }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true - }, "node_modules/type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", @@ -19177,14 +18655,11 @@ } }, "node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true, - "optional": true, - "peer": true, + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", "engines": { - "node": ">=10" + "node": ">=12.20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -19218,6 +18693,40 @@ "is-typedarray": "^1.0.0" } }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "devOptional": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-auto-import-cache": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/typescript-auto-import-cache/-/typescript-auto-import-cache-0.3.3.tgz", + "integrity": "sha512-ojEC7+Ci1ij9eE6hp8Jl9VUNnsEKzztktP5gtYNRMrTmfXVwA1PITYYAkpxCvvupdSYa/Re51B6KMcv1CTZEUA==", + "dev": true, + "dependencies": { + "semver": "^7.3.8" + } + }, + "node_modules/typescript-auto-import-cache/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/uc.micro": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", @@ -19263,6 +18772,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -19286,18 +18801,18 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true, "engines": { "node": ">=4" @@ -19430,6 +18945,36 @@ "yarn": "*" } }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, "node_modules/upper-case": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", @@ -19507,8 +19052,7 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "node_modules/util.promisify": { "version": "1.0.1", @@ -19543,21 +19087,6 @@ "uuid": "bin/uuid" } }, - "node_modules/v-calendar": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/v-calendar/-/v-calendar-2.4.1.tgz", - "integrity": "sha512-nhzOlHM2cinv+8jIcnAx+nTo63U40szv3Ig41uLMpGK1U5sApgCP6ggigprsnlMOM5VRq1G/1B8rNHkRrLbGjw==", - "dependencies": { - "core-js": "^3.15.2", - "date-fns": "^2.22.1", - "date-fns-tz": "^1.1.4", - "lodash": "^4.17.21" - }, - "peerDependencies": { - "@popperjs/core": "^2.4.0", - "vue": "^2.5.18" - } - }, "node_modules/v8-compile-cache": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", @@ -19587,23 +19116,13 @@ "node": ">= 8" } }, - "node_modules/validate-npm-package-license": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "spdx-correct": "~1.0.0", - "spdx-expression-parse": "~1.0.0" - } - }, "node_modules/varint": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/vary": { "version": "1.1.2", @@ -19624,49 +19143,34 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "optional": true, - "peer": true, - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, "node_modules/vite": { - "version": "4.4.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.6.tgz", - "integrity": "sha512-EY6Mm8vJ++S3D4tNAckaZfw3JwG3wa794Vt70M6cNJ6NxT87yhq7EC8Rcap3ahyHdo8AhCmV9PTk+vG1HiYn1A==", + "version": "5.4.9", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.9.tgz", + "integrity": "sha512-20OVpJHh0PAM0oSOELa5GaZNWeDjcAvQjGXy2Uyr+Tp+/D2/Hdz6NLgpJLsarPTA2QJ6v8mX2P1ZfbsSKvdMkg==", "dev": true, "dependencies": { - "esbuild": "^0.18.10", - "postcss": "^8.4.26", - "rollup": "^3.25.2" + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": "^18.0.0 || >=20.0.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" }, "optionalDependencies": { - "fsevents": "~2.3.2" + "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": ">= 14", + "@types/node": "^18.0.0 || >=20.0.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", + "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" @@ -19684,6 +19188,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, @@ -19708,17 +19215,141 @@ "vite-bundle-visualizer": "bin.js" } }, + "node_modules/vite-plugin-circular-dependency": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/vite-plugin-circular-dependency/-/vite-plugin-circular-dependency-0.4.1.tgz", + "integrity": "sha512-xMvrFuadDXrUYdQ8acYmYDR0hnNTTBY5y4is4AnFW04DM0kWyLxujV6omrMYOGwZDHaAjLVfbZiwUMxuhqHM3w==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.1.0", + "chalk": "^4.1.2" + } + }, + "node_modules/vite-plugin-circular-dependency/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/vite-plugin-circular-dependency/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/vite-plugin-circular-dependency/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/vite-plugin-circular-dependency/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/vite-plugin-circular-dependency/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/vite-plugin-circular-dependency/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/vite-plugin-full-reload": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.0.5.tgz", - "integrity": "sha512-kVZFDFWr0DxiHn6MuDVTQf7gnWIdETGlZh0hvTiMXzRN80vgF4PKbONSq8U1d0WtHsKaFODTQgJeakLacoPZEQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.1.0.tgz", + "integrity": "sha512-3cObNDzX6DdfhD9E7kf6w2mNunFpD7drxyNgHLw+XwIYAgb+Xt16SEXo0Up4VH+TMf3n+DSVJZtW2POBGcBYAA==", "dev": true, "dependencies": { "picocolors": "^1.0.0", "picomatch": "^2.3.1" + } + }, + "node_modules/vite-svg-loader": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/vite-svg-loader/-/vite-svg-loader-5.1.0.tgz", + "integrity": "sha512-M/wqwtOEjgb956/+m5ZrYT/Iq6Hax0OakWbokj8+9PXOnB7b/4AxESHieEtnNEy7ZpjsjYW1/5nK8fATQMmRxw==", + "dev": true, + "dependencies": { + "svgo": "^3.0.2" }, "peerDependencies": { - "vite": "^2 || ^3 || ^4" + "vue": ">=3.2.13" + } + }, + "node_modules/vite/node_modules/rollup": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", + "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.24.0", + "@rollup/rollup-android-arm64": "4.24.0", + "@rollup/rollup-darwin-arm64": "4.24.0", + "@rollup/rollup-darwin-x64": "4.24.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", + "@rollup/rollup-linux-arm-musleabihf": "4.24.0", + "@rollup/rollup-linux-arm64-gnu": "4.24.0", + "@rollup/rollup-linux-arm64-musl": "4.24.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", + "@rollup/rollup-linux-riscv64-gnu": "4.24.0", + "@rollup/rollup-linux-s390x-gnu": "4.24.0", + "@rollup/rollup-linux-x64-gnu": "4.24.0", + "@rollup/rollup-linux-x64-musl": "4.24.0", + "@rollup/rollup-win32-arm64-msvc": "4.24.0", + "@rollup/rollup-win32-ia32-msvc": "4.24.0", + "@rollup/rollup-win32-x64-msvc": "4.24.0", + "fsevents": "~2.3.2" } }, "node_modules/vm-browserify": { @@ -19727,27 +19358,287 @@ "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "dev": true }, - "node_modules/vue": { - "version": "2.7.14", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.14.tgz", - "integrity": "sha512-b2qkFyOM0kwqWFuQmgd4o+uHGU7T+2z3T+WQp8UBjADfEv2n4FEMffzBmCKNP0IGzOEEfYjvtcC62xaSKeQDrQ==", + "node_modules/volar-service-css": { + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-css/-/volar-service-css-0.0.62.tgz", + "integrity": "sha512-JwNyKsH3F8PuzZYuqPf+2e+4CTU8YoyUHEHVnoXNlrLe7wy9U3biomZ56llN69Ris7TTy/+DEX41yVxQpM4qvg==", + "dev": true, "dependencies": { - "@vue/compiler-sfc": "2.7.14", - "csstype": "^3.1.0" + "vscode-css-languageservice": "^6.3.0", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" + }, + "peerDependencies": { + "@volar/language-service": "~2.4.0" + }, + "peerDependenciesMeta": { + "@volar/language-service": { + "optional": true + } } }, - "node_modules/vue-apexcharts": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/vue-apexcharts/-/vue-apexcharts-1.6.0.tgz", - "integrity": "sha512-sT6tuVTLBwfH3TA7azecDNS/W70bmz14ZJI7aE7QIqcG9I6OywyH7x3hcOeY1v1DxttI8Svc5RuYj4Dd+A5F4g==" + "node_modules/volar-service-emmet": { + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-emmet/-/volar-service-emmet-0.0.62.tgz", + "integrity": "sha512-U4dxWDBWz7Pi4plpbXf4J4Z/ss6kBO3TYrACxWNsE29abu75QzVS0paxDDhI6bhqpbDFXlpsDhZ9aXVFpnfGRQ==", + "dev": true, + "dependencies": { + "@emmetio/css-parser": "^0.4.0", + "@emmetio/html-matcher": "^1.3.0", + "@vscode/emmet-helper": "^2.9.3", + "vscode-uri": "^3.0.8" + }, + "peerDependencies": { + "@volar/language-service": "~2.4.0" + }, + "peerDependenciesMeta": { + "@volar/language-service": { + "optional": true + } + } }, - "node_modules/vue-clip": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vue-clip/-/vue-clip-1.0.0.tgz", - "integrity": "sha1-woOZ6kyklXo5EIZYTVBUinQ0CYA=", + "node_modules/volar-service-html": { + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-html/-/volar-service-html-0.0.62.tgz", + "integrity": "sha512-Zw01aJsZRh4GTGUjveyfEzEqpULQUdQH79KNEiKVYHZyuGtdBRYCHlrus1sueSNMxwwkuF5WnOHfvBzafs8yyQ==", + "dev": true, + "dependencies": { + "vscode-html-languageservice": "^5.3.0", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" + }, + "peerDependencies": { + "@volar/language-service": "~2.4.0" + }, + "peerDependenciesMeta": { + "@volar/language-service": { + "optional": true + } + } + }, + "node_modules/volar-service-json": { + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-json/-/volar-service-json-0.0.62.tgz", + "integrity": "sha512-Ot+jP+/LzKcaGF7nzrn+gwpzAleb4ej5buO05M8KxfwfODte7o1blARKRoJ3Nv7ls0DBM38Dd5vjzvA9c/9Jtg==", + "dev": true, + "dependencies": { + "vscode-json-languageservice": "^5.4.0", + "vscode-uri": "^3.0.8" + }, + "peerDependencies": { + "@volar/language-service": "~2.4.0" + }, + "peerDependenciesMeta": { + "@volar/language-service": { + "optional": true + } + } + }, + "node_modules/volar-service-pug": { + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-pug/-/volar-service-pug-0.0.62.tgz", + "integrity": "sha512-C0/O8uGnRfijWKE0zFXxJ/o7BbLebzretsEaiMkvBDIxm5oe7HRDzQr6CgknV/WVgiohZ74v+0CwBPl2YmcPUQ==", + "dev": true, "dependencies": { - "dropzone": "^4.3.0", - "lodash.clone": "^4.5.0" + "@volar/language-service": "~2.4.0", + "muggle-string": "^0.4.1", + "pug-lexer": "^5.0.1", + "pug-parser": "^6.0.0", + "volar-service-html": "0.0.62", + "vscode-html-languageservice": "^5.3.0", + "vscode-languageserver-textdocument": "^1.0.11" + } + }, + "node_modules/volar-service-pug-beautify": { + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-pug-beautify/-/volar-service-pug-beautify-0.0.62.tgz", + "integrity": "sha512-dAFNuNEwTnnVthYoNJhoStwhf/PojzglwCrdhOb2nBegTG3xXMWRFmQzb0JfIlt2wq2wfUq5j+JJswgSD3KluQ==", + "dev": true, + "dependencies": { + "@johnsoncodehk/pug-beautify": "^0.2.2" + }, + "peerDependencies": { + "@volar/language-service": "~2.4.0" + }, + "peerDependenciesMeta": { + "@volar/language-service": { + "optional": true + } + } + }, + "node_modules/volar-service-typescript": { + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-typescript/-/volar-service-typescript-0.0.62.tgz", + "integrity": "sha512-p7MPi71q7KOsH0eAbZwPBiKPp9B2+qrdHAd6VY5oTo9BUXatsOAdakTm9Yf0DUj6uWBAaOT01BSeVOPwucMV1g==", + "dev": true, + "dependencies": { + "path-browserify": "^1.0.1", + "semver": "^7.6.2", + "typescript-auto-import-cache": "^0.3.3", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-nls": "^5.2.0", + "vscode-uri": "^3.0.8" + }, + "peerDependencies": { + "@volar/language-service": "~2.4.0" + }, + "peerDependenciesMeta": { + "@volar/language-service": { + "optional": true + } + } + }, + "node_modules/volar-service-typescript-twoslash-queries": { + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-typescript-twoslash-queries/-/volar-service-typescript-twoslash-queries-0.0.62.tgz", + "integrity": "sha512-KxFt4zydyJYYI0kFAcWPTh4u0Ha36TASPZkAnNY784GtgajerUqM80nX/W1d0wVhmcOFfAxkVsf/Ed+tiYU7ng==", + "dev": true, + "dependencies": { + "vscode-uri": "^3.0.8" + }, + "peerDependencies": { + "@volar/language-service": "~2.4.0" + }, + "peerDependenciesMeta": { + "@volar/language-service": { + "optional": true + } + } + }, + "node_modules/volar-service-typescript/node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "node_modules/volar-service-typescript/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vscode-css-languageservice": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.3.1.tgz", + "integrity": "sha512-1BzTBuJfwMc3A0uX4JBdJgoxp74cjj4q2mDJdp49yD/GuAq4X0k5WtK6fNcMYr+FfJ9nqgR6lpfCSZDkARJ5qQ==", + "dev": true, + "dependencies": { + "@vscode/l10n": "^0.0.18", + "vscode-languageserver-textdocument": "^1.0.12", + "vscode-languageserver-types": "3.17.5", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/vscode-html-languageservice": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-5.3.1.tgz", + "integrity": "sha512-ysUh4hFeW/WOWz/TO9gm08xigiSsV/FOAZ+DolgJfeLftna54YdmZ4A+lIn46RbdO3/Qv5QHTn1ZGqmrXQhZyA==", + "dev": true, + "dependencies": { + "@vscode/l10n": "^0.0.18", + "vscode-languageserver-textdocument": "^1.0.12", + "vscode-languageserver-types": "^3.17.5", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/vscode-json-languageservice": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-5.4.1.tgz", + "integrity": "sha512-5czFGNyVPxz3ZJYl8R3a3SuIj5gjhmGF4Wv05MRPvD4DEnHK6b8km4VbNMJNHBlTCh7A0aHzUbPVzo+0C18mCA==", + "dev": true, + "dependencies": { + "@vscode/l10n": "^0.0.18", + "jsonc-parser": "^3.3.1", + "vscode-languageserver-textdocument": "^1.0.12", + "vscode-languageserver-types": "^3.17.5", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/vscode-json-languageservice/node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "dev": true + }, + "node_modules/vscode-jsonrpc": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", + "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/vscode-languageserver": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz", + "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==", + "dev": true, + "dependencies": { + "vscode-languageserver-protocol": "3.17.5" + }, + "bin": { + "installServerIntoExtension": "bin/installServerIntoExtension" + } + }, + "node_modules/vscode-languageserver-protocol": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", + "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", + "dev": true, + "dependencies": { + "vscode-jsonrpc": "8.2.0", + "vscode-languageserver-types": "3.17.5" + } + }, + "node_modules/vscode-languageserver-textdocument": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz", + "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==", + "dev": true + }, + "node_modules/vscode-languageserver-types": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", + "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", + "dev": true + }, + "node_modules/vscode-nls": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.2.0.tgz", + "integrity": "sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==", + "dev": true + }, + "node_modules/vscode-uri": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", + "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", + "dev": true + }, + "node_modules/vue": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz", + "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==", + "dependencies": { + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-sfc": "3.5.13", + "@vue/runtime-dom": "3.5.13", + "@vue/server-renderer": "3.5.13", + "@vue/shared": "3.5.13" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/vue-cropperjs": { @@ -19758,10 +19649,30 @@ "cropperjs": "^1.5.6" } }, - "node_modules/vue-functional-data-merge": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/vue-functional-data-merge/-/vue-functional-data-merge-3.1.0.tgz", - "integrity": "sha512-leT4kdJVQyeZNY1kmnS1xiUlQ9z1B/kdBFCILIjYYQDqZgLqCLa0UhjSSeRX6c3mUe6U5qYeM8LrEqkHJ1B4LA==" + "node_modules/vue-demi": { + "version": "0.14.7", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.7.tgz", + "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } }, "node_modules/vue-hot-reload-api": { "version": "2.3.1", @@ -19813,6 +19724,11 @@ "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.4.9.tgz", "integrity": "sha512-CGAKWN44RqXW06oC+u4mPgHLQQi2t6vLD/JbGRDAXm0YpMv0bgpKuU5bBd7AvMgfTz9kXVRIWKHqRwGEb8xFkA==" }, + "node_modules/vue-sonner": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vue-sonner/-/vue-sonner-1.1.2.tgz", + "integrity": "sha512-yg4f5s0a3oiiI7cNvO0Dajux1Y7s04lxww3vnQtnwQawJ3KqaKA9RIRMdI9wGTosRGIOwgYFniFRGl4+IuKPZw==" + }, "node_modules/vue-style-loader": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz", @@ -19838,47 +19754,13 @@ "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", "dev": true }, - "node_modules/vue-ts-types": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/vue-ts-types/-/vue-ts-types-1.6.1.tgz", - "integrity": "sha512-Fee0nT2LSm/Drf7Gghpy8ssK4eGWtNgsPjgvC691lkMFWFtWRvgrD2+nFjRvd6aKJQhjcvY+SIPUCJpQpsyScA==", + "node_modules/vue3-apexcharts": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/vue3-apexcharts/-/vue3-apexcharts-1.8.0.tgz", + "integrity": "sha512-5tSD4mXTBbIJ9ir+58qHE6oNtIe0RNgqIRYMKpcsIaxkKtwUww4JhvPkpUFlmiW4OJbbdklgjleXq1lfcM4gdA==", "peerDependencies": { - "vue": "^2.6 || ^3.2" - } - }, - "node_modules/vue2-animate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/vue2-animate/-/vue2-animate-2.0.0.tgz", - "integrity": "sha512-DLz2irhZRpgiOmcGECEh8T0ybaS6US75Q6OijLX3d9wmtXpJ4/3BqPmLEbHA9hrxAwxLH0NYbooB/2kXnpxPvQ==" - }, - "node_modules/vue2-google-maps": { - "version": "0.10.7", - "resolved": "https://registry.npmjs.org/vue2-google-maps/-/vue2-google-maps-0.10.7.tgz", - "integrity": "sha512-y5aBJTAsfGvpsbfgPaeWU7o7QbOeINZKsP6SB9qrBe8U8EYBFO/bTWo3rcMq/NOtgT/XssV3Nwg/2u3no6jWbw==", - "dependencies": { - "babel-runtime": "^6.26.0", - "marker-clusterer-plus": "^2.1.4" - } - }, - "node_modules/vue2-leaflet": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/vue2-leaflet/-/vue2-leaflet-2.0.2.tgz", - "integrity": "sha512-8KAU0mbUp5CDwb5NBlpEoyCO/x+Rv1KeA4599HJqpHeOrzY0+PBoUabM80riUUWJWGhRi3yhV4DJ8Kf1QHRelQ==" - }, - "node_modules/vue2-timepicker": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/vue2-timepicker/-/vue2-timepicker-0.1.4.tgz", - "integrity": "sha1-CAnZsH6chkLeNgBEtqFMK38gOBU=", - "dependencies": { - "vue": "^2.0.1" - } - }, - "node_modules/vuedraggable": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/vuedraggable/-/vuedraggable-2.14.1.tgz", - "integrity": "sha1-A04eBS4luTiEKa6W25628sOxDYc=", - "dependencies": { - "sortablejs": "^1.6.0" + "apexcharts": ">=4.0.0", + "vue": ">=3.0.0" } }, "node_modules/vuejs-datepicker": { @@ -19891,9 +19773,15 @@ } }, "node_modules/vuex": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.5.1.tgz", - "integrity": "sha512-w7oJzmHQs0FM9LXodfskhw9wgKBiaB+totOdb8sNzbTB2KDCEEwEs29NzBZFh/lmEK1t5tDmM1vtsO7ubG1DFw==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vuex/-/vuex-4.1.0.tgz", + "integrity": "sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ==", + "dependencies": { + "@vue/devtools-api": "^6.0.0-beta.11" + }, + "peerDependencies": { + "vue": "^3.2.0" + } }, "node_modules/w3c-hr-time": { "version": "1.0.2", @@ -19905,10 +19793,9 @@ } }, "node_modules/w3c-keyname": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.4.tgz", - "integrity": "sha512-tOhfEwEzFLJzf6d1ZPkYfGj+FWhIpBux9ppoP3rlclw3Z0BZv3N7b7030Z1kYth+6rDuAsXUFr+d0VE6Ed1ikw==", - "peer": true + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", + "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==" }, "node_modules/w3c-xmlserializer": { "version": "2.0.0", @@ -20640,16 +20527,10 @@ "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", "dev": true }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } + "node_modules/wildcard": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-1.1.2.tgz", + "integrity": "sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==" }, "node_modules/word-wrap": { "version": "1.2.3", @@ -20722,8 +20603,7 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "node_modules/write-file-atomic": { "version": "3.0.3", @@ -20782,17 +20662,6 @@ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", @@ -20843,74 +20712,41 @@ "node": ">=12" } }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, "packages/commands": { - "name": "sharp-commands", - "version": "1.0.0", - "dependencies": { - "sharp-form": "file:../form", - "sharp-ui": "file:../ui" - } + "name": "@sharp/commands", + "version": "1.0.0" }, "packages/dashboard": { - "name": "sharp-dashboard", - "version": "1.0.0", - "dependencies": { - "sharp-commands": "file:../commands", - "sharp-filters": "file:../filters", - "sharp-ui": "file:../ui" - } + "name": "@sharp/dashboard", + "version": "1.0.0" }, "packages/embeds": { - "name": "sharp-embeds", - "version": "1.0.0" + "name": "@sharp/embeds", + "version": "1.0.0", + "extraneous": true }, "packages/entity-list": { - "name": "sharp-entity-list", - "version": "1.0.0", - "dependencies": { - "sharp-commands": "file:../commands", - "sharp-filters": "file:../filters", - "sharp-ui": "file:../ui" - } + "name": "@sharp/entity-list", + "version": "1.0.0" }, "packages/files": { - "name": "sharp-files", - "version": "1.0.0" + "name": "@sharp/files", + "version": "1.0.0", + "extraneous": true }, "packages/filters": { - "name": "sharp-filters", - "version": "1.0.0", - "dependencies": { - "sharp-form": "file:../form", - "sharp-ui": "file:../ui" - } + "name": "@sharp/filters", + "version": "1.0.0" }, "packages/form": { - "name": "sharp-form", - "version": "1.0.0", - "dependencies": { - "sharp-files": "file:../files", - "sharp-ui": "file:../ui" - } + "name": "@sharp/form", + "version": "1.0.0" }, "packages/plugin": { "name": "sharp-plugin", "version": "0.0.2", "license": "ISC", "devDependencies": { - "core-js": "^2.5.6", "laravel-mix": "^4.1.2" } }, @@ -21251,14 +21087,6 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "packages/plugin/node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", - "dev": true, - "hasInstallScript": true - }, "packages/plugin/node_modules/cosmiconfig": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", @@ -24208,97 +24036,112 @@ "dev": true }, "packages/search": { - "name": "sharp-search", - "version": "1.0.0" + "name": "@sharp/search", + "version": "1.0.0", + "extraneous": true }, "packages/show": { - "name": "sharp-show", - "version": "1.0.0", - "dependencies": { - "sharp-commands": "file:../commands", - "sharp-entity-list": "file:../entity-list", - "sharp-filters": "file:../filters", - "sharp-ui": "file:../ui" - } + "name": "@sharp/show", + "version": "1.0.0" }, "packages/test-utils": { "name": "@sharp/test-utils", "version": "1.0.0" }, "packages/ui": { - "name": "sharp-ui", + "name": "@sharp/ui", "version": "1.0.0" }, "resources/assets/js": { "name": "sharp", - "version": "1.0.0" + "version": "1.0.0", + "extraneous": true + }, + "resources/js": { + "name": "sharp", + "version": "1.0.0", + "extraneous": true } }, "dependencies": { + "@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==" + }, "@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, "requires": { - "@jridgewell/trace-mapping": "^0.3.0" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" } }, "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", "dev": true, "requires": { - "@babel/highlight": "^7.16.7" + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" } }, "@babel/compat-data": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz", - "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", "dev": true }, "@babel/core": { - "version": "7.17.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.5.tgz", - "integrity": "sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.17.2", - "@babel/parser": "^7.17.3", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0", - "convert-source-map": "^1.7.0", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz", + "integrity": "sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.4", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.4", + "@babel/parser": "^7.24.4", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "dependencies": { + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } }, "@babel/generator": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.3.tgz", - "integrity": "sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.4.tgz", + "integrity": "sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==", "dev": true, "requires": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.24.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" }, "dependencies": { "jsesc": { @@ -24310,67 +24153,101 @@ } }, "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.15" } }, "@babel/helper-compilation-targets": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", - "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", - "semver": "^6.3.0" + "@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" }, "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true } } }, "@babel/helper-create-class-features-plugin": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz", - "integrity": "sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==", + "version": "7.23.10", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz", + "integrity": "sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" + "@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/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", - "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } } }, "@babel/helper-define-polyfill-provider": { @@ -24398,196 +24275,173 @@ } }, "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true }, "@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" } }, "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", - "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.23.0" } }, "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.15" } }, "@babel/helper-module-transforms": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.6.tgz", - "integrity": "sha512-2ULmRdqoOMpdvkbT8jONrZML/XALfzxlb052bldftkicAUy8AxSCkD5trDPQcwHNmolcl7wP6ehNqMlyUw6AaA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" } }, "@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" } }, "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "dev": true }, "@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" } }, "@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" } }, "@babel/helper-simple-access": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", - "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" } }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, "requires": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.22.5" } }, "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" } }, + "@babel/helper-string-parser": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz", + "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==" + }, "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz", + "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==" }, "@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", "dev": true }, "@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" } }, "@babel/helpers": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz", - "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.4.tgz", + "integrity": "sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==", "dev": true, "requires": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.0", - "@babel/types": "^7.17.0" + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0" } }, "@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", + "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "dependencies": { "js-tokens": { @@ -24599,120 +24453,41 @@ } }, "@babel/parser": { - "version": "7.22.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz", - "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==" - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", - "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", - "dev": true, + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.8.tgz", + "integrity": "sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" + "@babel/types": "^7.25.8" } }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + "@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/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz", + "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-proposal-object-rest-spread": { @@ -24728,58 +24503,12 @@ "@babel/plugin-transform-parameters": "^7.16.7" } }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, "@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } + "requires": {} }, "@babel/plugin-syntax-async-generators": { "version": "7.8.4", @@ -24835,6 +24564,24 @@ "@babel/helper-plugin-utils": "^7.8.3" } }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-import-attributes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, "@babel/plugin-syntax-import-meta": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", @@ -24934,253 +24681,413 @@ "@babel/helper-plugin-utils": "^7.16.7" } }, + "@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, "@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-async-generator-functions": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz", + "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", + "@babel/plugin-transform-class-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", + "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-class-static-block": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", + "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz", + "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" } }, "@babel/plugin-transform-destructuring": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.3.tgz", - "integrity": "sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-dynamic-import": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", + "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-export-namespace-from": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", + "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, "@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", + "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" } }, "@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", "dev": true, "requires": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-json-strings": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", + "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" } }, "@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-logical-assignment-operators": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", + "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz", - "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", - "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz", + "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", - "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", + "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-transform-numeric-separator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", + "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-transform-object-rest-spread": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", + "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.23.3" } }, "@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" + } + }, + "@babel/plugin-transform-optional-catch-binding": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", + "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-transform-optional-chaining": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", + "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "dev": true, + "requires": { + "@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/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-private-methods": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", + "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-private-property-in-object": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", + "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } }, "@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-regenerator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", - "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", "dev": true, "requires": { - "regenerator-transform": "^0.14.2" + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-runtime": { @@ -25206,102 +25113,112 @@ } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-unicode-property-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/preset-env": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "@babel/plugin-transform-unicode-sets-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", "dev": true, "requires": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/preset-env": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.9.tgz", + "integrity": "sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -25311,120 +25228,182 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", - "semver": "^6.3.0" - }, - "dependencies": { + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.9", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.4", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.4", + "@babel/plugin-transform-classes": "^7.23.8", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.4", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.4", + "@babel/plugin-transform-for-of": "^7.23.6", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.4", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.9", + "@babel/plugin-transform-modules-umd": "^7.23.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", + "@babel/plugin-transform-numeric-separator": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.23.4", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.4", + "@babel/plugin-transform-optional-chaining": "^7.23.4", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.4", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.8", + "babel-plugin-polyfill-corejs3": "^0.9.0", + "babel-plugin-polyfill-regenerator": "^0.5.5", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "dependencies": { + "@babel/helper-define-polyfill-provider": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", + "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz", + "integrity": "sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.5.0", + "semver": "^6.3.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz", + "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.5.0", + "core-js-compat": "^3.34.0" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", + "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.5.0" + } + }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } }, "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" } }, + "@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, "@babel/runtime": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz", - "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.1.tgz", + "integrity": "sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==", "requires": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.14.0" } }, "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", "dev": true, "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" } }, "@babel/traverse": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", - "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.3", - "@babel/types": "^7.17.0", - "debug": "^4.1.0", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", + "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.24.1", + "@babel/generator": "^7.24.1", + "@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.24.1", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.8.tgz", + "integrity": "sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==", "requires": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-string-parser": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", "to-fast-properties": "^2.0.0" }, "dependencies": { "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" } } }, @@ -25438,174 +25417,399 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-1.3.0.tgz", "integrity": "sha512-G372ods0pLt46yxVRsnP/e2btVPuuzArcMPFpIDeIwiGPuuglEs9y75iG0HMvZgncsj5TvbYRWqbVyOe3PLCWQ==", + "dev": true, + "optional": true, + "peer": true + }, + "@csstools/color-helpers": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.1.tgz", + "integrity": "sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==", + "dev": true + }, + "@csstools/css-calc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.0.2.tgz", + "integrity": "sha512-N70YZw+R6WDP9EEd5xAT3xd+SgZFZsllXR6kclq6U8e2thlakNpWCKhuOiWfCKU8HpeWOyL+2ArSX8uDszMytA==", + "dev": true, + "requires": {} + }, + "@csstools/css-color-parser": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.3.tgz", + "integrity": "sha512-mnOTQ6KbQ6GHfdVHVTNXffroW0r5P5531h73bIyEzWAScGjMPQi+1XYgAydYVaZiKeXlQ4GHG9dnBWq9h7xFIQ==", + "dev": true, + "requires": { + "@csstools/color-helpers": "^5.0.1", + "@csstools/css-calc": "^2.0.2" + } + }, + "@csstools/css-parser-algorithms": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.2.tgz", + "integrity": "sha512-6tC/MnlEvs5suR4Ahef4YlBccJDHZuxGsAlxXmybWjZ5jPxlzLSMlRZ9mVHSRvlD+CmtE7+hJ+UQbfXrws/rUQ==", + "dev": true, + "requires": {} + }, + "@csstools/css-tokenizer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.2.tgz", + "integrity": "sha512-IuTRcD53WHsXPCZ6W7ubfGqReTJ9Ra0yRRFmXYP/Re8hFYYfoIYIK4080X5luslVLWimhIeFq0hj09urVMQzTw==", + "dev": true + }, + "@csstools/postcss-oklab-function": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.3.tgz", + "integrity": "sha512-BrhnL98OSpWt5EOMk5Hm+kL0kjA8BhBc9DGG0jYgww1GhWItn+L/McQ4WgHE2cm9+jSUE2OMy/31WvSRKhWpnQ==", + "dev": true, + "requires": { + "@csstools/css-color-parser": "^3.0.3", + "@csstools/css-parser-algorithms": "^3.0.2", + "@csstools/css-tokenizer": "^3.0.2", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + } + }, + "@csstools/postcss-progressive-custom-properties": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.0.0.tgz", + "integrity": "sha512-XQPtROaQjomnvLUSy/bALTR5VCtTVUFwYs1SblvYgLSeTo2a/bMNwUwo2piXw5rTv/FEYiy5yPSXBqg9OKUx7Q==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/utilities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@csstools/utilities/-/utilities-2.0.0.tgz", + "integrity": "sha512-5VdOr0Z71u+Yp3ozOx8T11N703wIFGVRgOWbOZMKgglPJsWA54MRIoMNVMa7shUToIhx5J8vX4sOZgD2XiihiQ==", + "dev": true, + "requires": {} + }, + "@emmetio/abbreviation": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@emmetio/abbreviation/-/abbreviation-2.3.3.tgz", + "integrity": "sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==", + "dev": true, + "requires": { + "@emmetio/scanner": "^1.0.4" + } + }, + "@emmetio/css-abbreviation": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@emmetio/css-abbreviation/-/css-abbreviation-2.1.8.tgz", + "integrity": "sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==", + "dev": true, + "requires": { + "@emmetio/scanner": "^1.0.4" + } + }, + "@emmetio/css-parser": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@emmetio/css-parser/-/css-parser-0.4.0.tgz", + "integrity": "sha512-z7wkxRSZgrQHXVzObGkXG+Vmj3uRlpM11oCZ9pbaz0nFejvCDmAiNDpY75+wgXOcffKpj4rzGtwGaZxfJKsJxw==", + "dev": true, + "requires": { + "@emmetio/stream-reader": "^2.2.0", + "@emmetio/stream-reader-utils": "^0.1.0" + } + }, + "@emmetio/html-matcher": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@emmetio/html-matcher/-/html-matcher-1.3.0.tgz", + "integrity": "sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==", + "dev": true, + "requires": { + "@emmetio/scanner": "^1.0.0" + } + }, + "@emmetio/scanner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@emmetio/scanner/-/scanner-1.0.4.tgz", + "integrity": "sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==", + "dev": true + }, + "@emmetio/stream-reader": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@emmetio/stream-reader/-/stream-reader-2.2.0.tgz", + "integrity": "sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==", + "dev": true + }, + "@emmetio/stream-reader-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@emmetio/stream-reader-utils/-/stream-reader-utils-0.1.0.tgz", + "integrity": "sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==", "dev": true }, + "@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "dev": true, + "optional": true + }, "@esbuild/android-arm": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.16.tgz", - "integrity": "sha512-gCHjjQmA8L0soklKbLKA6pgsLk1byULuHe94lkZDzcO3/Ta+bbeewJioEn1Fr7kgy9NWNFy/C+MrBwC6I/WCug==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", "dev": true, "optional": true }, "@esbuild/android-arm64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.16.tgz", - "integrity": "sha512-wsCqSPqLz+6Ov+OM4EthU43DyYVVyfn15S4j1bJzylDpc1r1jZFFfJQNfDuT8SlgwuqpmpJXK4uPlHGw6ve7eA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", "dev": true, "optional": true }, "@esbuild/android-x64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.16.tgz", - "integrity": "sha512-ldsTXolyA3eTQ1//4DS+E15xl0H/3DTRJaRL0/0PgkqDsI0fV/FlOtD+h0u/AUJr+eOTlZv4aC9gvfppo3C4sw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", "dev": true, "optional": true }, "@esbuild/darwin-arm64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.16.tgz", - "integrity": "sha512-aBxruWCII+OtluORR/KvisEw0ALuw/qDQWvkoosA+c/ngC/Kwk0lLaZ+B++LLS481/VdydB2u6tYpWxUfnLAIw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", "dev": true, "optional": true }, "@esbuild/darwin-x64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.16.tgz", - "integrity": "sha512-6w4Dbue280+rp3LnkgmriS1icOUZDyPuZo/9VsuMUTns7SYEiOaJ7Ca1cbhu9KVObAWfmdjUl4gwy9TIgiO5eA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", "dev": true, "optional": true }, "@esbuild/freebsd-arm64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.16.tgz", - "integrity": "sha512-x35fCebhe9s979DGKbVAwXUOcTmCIE32AIqB9CB1GralMIvxdnMLAw5CnID17ipEw9/3MvDsusj/cspYt2ZLNQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", "dev": true, "optional": true }, "@esbuild/freebsd-x64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.16.tgz", - "integrity": "sha512-YM98f+PeNXF3GbxIJlUsj+McUWG1irguBHkszCIwfr3BXtXZsXo0vqybjUDFfu9a8Wr7uUD/YSmHib+EeGAFlg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", "dev": true, "optional": true }, "@esbuild/linux-arm": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.16.tgz", - "integrity": "sha512-b5ABb+5Ha2C9JkeZXV+b+OruR1tJ33ePmv9ZwMeETSEKlmu/WJ45XTTG+l6a2KDsQtJJ66qo/hbSGBtk0XVLHw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", "dev": true, "optional": true }, "@esbuild/linux-arm64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.16.tgz", - "integrity": "sha512-XIqhNUxJiuy+zsR77+H5Z2f7s4YRlriSJKtvx99nJuG5ATuJPjmZ9n0ANgnGlPCpXGSReFpgcJ7O3SMtzIFeiQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", "dev": true, "optional": true }, "@esbuild/linux-ia32": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.16.tgz", - "integrity": "sha512-no+pfEpwnRvIyH+txbBAWtjxPU9grslmTBfsmDndj7bnBmr55rOo/PfQmRfz7Qg9isswt1FP5hBbWb23fRWnow==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", "dev": true, "optional": true }, "@esbuild/linux-loong64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.16.tgz", - "integrity": "sha512-Zbnczs9ZXjmo0oZSS0zbNlJbcwKXa/fcNhYQjahDs4Xg18UumpXG/lwM2lcSvHS3mTrRyCYZvJbmzYc4laRI1g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", "dev": true, "optional": true }, "@esbuild/linux-mips64el": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.16.tgz", - "integrity": "sha512-YMF7hih1HVR/hQVa/ot4UVffc5ZlrzEb3k2ip0nZr1w6fnYypll9td2qcoMLvd3o8j3y6EbJM3MyIcXIVzXvQQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", "dev": true, "optional": true }, "@esbuild/linux-ppc64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.16.tgz", - "integrity": "sha512-Wkz++LZ29lDwUyTSEnzDaaP5OveOgTU69q9IyIw9WqLRxM4BjTBjz9un4G6TOvehWpf/J3gYVFN96TjGHrbcNQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", "dev": true, "optional": true }, "@esbuild/linux-riscv64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.16.tgz", - "integrity": "sha512-LFMKZ30tk78/mUv1ygvIP+568bwf4oN6reG/uczXnz6SvFn4e2QUFpUpZY9iSJT6Qpgstrhef/nMykIXZtZWGQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", "dev": true, "optional": true }, "@esbuild/linux-s390x": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.16.tgz", - "integrity": "sha512-3ZC0BgyYHYKfZo3AV2/66TD/I9tlSBaW7eWTEIkrQQKfJIifKMMttXl9FrAg+UT0SGYsCRLI35Gwdmm96vlOjg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", "dev": true, "optional": true }, "@esbuild/linux-x64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.16.tgz", - "integrity": "sha512-xu86B3647DihHJHv/wx3NCz2Dg1gjQ8bbf9cVYZzWKY+gsvxYmn/lnVlqDRazObc3UMwoHpUhNYaZset4X8IPA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", "dev": true, "optional": true }, "@esbuild/netbsd-x64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.16.tgz", - "integrity": "sha512-uVAgpimx9Ffw3xowtg/7qQPwHFx94yCje+DoBx+LNm2ePDpQXHrzE+Sb0Si2VBObYz+LcRps15cq+95YM7gkUw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", "dev": true, "optional": true }, "@esbuild/openbsd-x64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.16.tgz", - "integrity": "sha512-6OjCQM9wf7z8/MBi6BOWaTL2AS/SZudsZtBziXMtNI8r/U41AxS9x7jn0ATOwVy08OotwkPqGRMkpPR2wcTJXA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", "dev": true, "optional": true }, "@esbuild/sunos-x64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.16.tgz", - "integrity": "sha512-ZoNkruFYJp9d1LbUYCh8awgQDvB9uOMZqlQ+gGEZR7v6C+N6u7vPr86c+Chih8niBR81Q/bHOSKGBK3brJyvkQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", "dev": true, "optional": true }, "@esbuild/win32-arm64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.16.tgz", - "integrity": "sha512-+j4anzQ9hrs+iqO+/wa8UE6TVkKua1pXUb0XWFOx0FiAj6R9INJ+WE//1/Xo6FG1vB5EpH3ko+XcgwiDXTxcdw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", "dev": true, "optional": true }, "@esbuild/win32-ia32": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.16.tgz", - "integrity": "sha512-5PFPmq3sSKTp9cT9dzvI67WNfRZGvEVctcZa1KGjDDu4n3H8k59Inbk0du1fz0KrAbKKNpJbdFXQMDUz7BG4rQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", "dev": true, "optional": true }, "@esbuild/win32-x64": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.16.tgz", - "integrity": "sha512-sCIVrrtcWN5Ua7jYXNG1xD199IalrbfV2+0k/2Zf2OyV2FtnQnMgdzgpRAbi4AWlKJj1jkX+M+fEGPQj6BQB4w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", "dev": true, "optional": true }, + "@fawmi/vue-google-maps": { + "version": "0.9.79", + "resolved": "https://registry.npmjs.org/@fawmi/vue-google-maps/-/vue-google-maps-0.9.79.tgz", + "integrity": "sha512-SnITonfrBfT/7uESF8SCs1DRWHSJyr/K0bPv9taONAUp/YiggmlwHOwAzA63UeDl8vP0bBmT56MYC1bZmAdUjQ==", + "requires": { + "@googlemaps/markerclusterer": "^2.0.3" + } + }, + "@floating-ui/core": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.8.tgz", + "integrity": "sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==", + "requires": { + "@floating-ui/utils": "^0.2.8" + } + }, + "@floating-ui/dom": { + "version": "1.6.12", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.12.tgz", + "integrity": "sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==", + "requires": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.8" + } + }, + "@floating-ui/utils": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.8.tgz", + "integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==" + }, + "@floating-ui/vue": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@floating-ui/vue/-/vue-1.1.5.tgz", + "integrity": "sha512-ynL1p5Z+woPVSwgMGqeDrx6HrJfGIDzFyESFkyqJKilGW1+h/8yVY29Khn0LaU6wHBRwZ13ntG6reiHWK6jyzw==", + "requires": { + "@floating-ui/dom": "^1.0.0", + "@floating-ui/utils": "^0.2.8", + "vue-demi": ">=0.13.0" + } + }, "@fortawesome/fontawesome-free": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.4.0.tgz", "integrity": "sha512-0NyytTlPJwB/BF5LtRV8rrABDbe3TdTXqNB3PdZ+UUUZAEIrdOJdmABqKjt4AXwIoJNaRVVZEXxpNrqvE1GAYQ==" }, - "@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true, - "optional": true, - "peer": true + "@googlemaps/js-api-loader": { + "version": "1.16.8", + "resolved": "https://registry.npmjs.org/@googlemaps/js-api-loader/-/js-api-loader-1.16.8.tgz", + "integrity": "sha512-CROqqwfKotdO6EBjZO/gQGVTbeDps5V7Mt9+8+5Q+jTg5CRMi3Ii/L9PmV3USROrt2uWxtGzJHORmByxyo9pSQ==" + }, + "@googlemaps/markerclusterer": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@googlemaps/markerclusterer/-/markerclusterer-2.5.0.tgz", + "integrity": "sha512-WpHLCZxP7QmB4Hc5kyODGdTfJPsZiOIbcvbYhcS/VeiRNDVjf6CRQ8ViQjwrG5OySC66rtOdj4RVhUXsd1tNTQ==", + "requires": { + "fast-deep-equal": "^3.1.3", + "supercluster": "^8.0.1" + } + }, + "@headlessui/vue": { + "version": "1.7.19", + "resolved": "https://registry.npmjs.org/@headlessui/vue/-/vue-1.7.19.tgz", + "integrity": "sha512-VFjKPybogux/5/QYGSq4zgG/x3RcxId15W8uguAJAjPBxelI23dwjOjTx/mIiMkM/Hd3rzFxcf2aIp56eEWRcA==", + "requires": { + "@tanstack/vue-virtual": "^3.0.0-beta.60" + } + }, + "@heroicons/vue": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/@heroicons/vue/-/vue-2.0.18.tgz", + "integrity": "sha512-BcTC9nq2TkwNSfQuqo96J7ehx4etezypc2YeTq7KsXWxrcrerhkgjLrxGRBnStN0wrXo0Gv4BInybqz5uBG6Cw==", + "requires": {} + }, + "@inertiajs/core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@inertiajs/core/-/core-2.0.0.tgz", + "integrity": "sha512-2kvlk731NjwfXUku/ZoXsZNcOzx985icHtTC1dgN+8sAZtJfEg9QBrQ7sBjeLYiWtKgobJdwwpeDaexEneAtLQ==", + "requires": { + "axios": "^1.6.0", + "deepmerge": "^4.0.0", + "qs": "^6.9.0" + } + }, + "@inertiajs/vue3": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@inertiajs/vue3/-/vue3-2.0.0.tgz", + "integrity": "sha512-U38EM8jqlfX2WmVK/vJWZr+jD71qvnmNPnUuZ+4mS2QNFdNmUeg2M/HbLmvR4WLWsxIl+7GYQySy4sW3tu/uTA==", + "requires": { + "@inertiajs/core": "2.0.0", + "lodash.clonedeep": "^4.5.0", + "lodash.isequal": "^4.5.0" + } + }, + "@internationalized/date": { + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.6.tgz", + "integrity": "sha512-jLxQjefH9VI5P9UQuqB6qNKnvFt1Ky1TPIzHGsIlCi7sZZoMR8SdYbBGRvM0y+Jtb+ez4ieBzmiAUcpmPYpyOw==", + "requires": { + "@swc/helpers": "^0.5.0" + } + }, + "@internationalized/number": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.5.4.tgz", + "integrity": "sha512-h9huwWjNqYyE2FXZZewWqmCdkw1HeFds5q4Siuoms3hUQC5iPJK3aBmkFZoDSLN4UD0Bl8G22L/NdHpeOr+/7A==", + "requires": { + "@swc/helpers": "^0.5.0" + } }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", @@ -26134,34 +26338,46 @@ } } }, - "@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "@johnsoncodehk/pug-beautify": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@johnsoncodehk/pug-beautify/-/pug-beautify-0.2.2.tgz", + "integrity": "sha512-qqNS/YD0Nck5wtQLCPHAfGVgWbbGafxSPjNh0ekYPFSNNqnDH2kamnduzYly8IiADmeVx/MfAE1njMEjVeHTMA==", "dev": true }, + "@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "requires": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==" + }, + "@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==" + }, "@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", - "dev": true + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" }, "@jridgewell/trace-mapping": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", - "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", - "dev": true, + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "@linaria/core": { - "version": "3.0.0-beta.13", - "resolved": "https://registry.npmjs.org/@linaria/core/-/core-3.0.0-beta.13.tgz", - "integrity": "sha512-3zEi5plBCOsEzUneRVuQb+2SAx3qaC1dj0FfFAI6zIJQoDWu0dlSwKijMRack7oO9tUWrchfj3OkKQAd1LBdVg==", - "peer": true - }, "@mrmlnc/readdir-enhanced": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", @@ -26180,125 +26396,27 @@ } } }, - "@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "dev": true, - "optional": true, - "peer": true, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "requires": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true, - "peer": true - } + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" } }, - "@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "optional": true, - "peer": true - } - } + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" }, - "@nuxt/opencollective": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@nuxt/opencollective/-/opencollective-0.3.2.tgz", - "integrity": "sha512-XG7rUdXG9fcafu9KTDIYjJSkRO38EwjlKYIb5TQ/0WDbiTUTtUtgncMscKOYzfsY86kGs05pAuMOR+3Fi0aN3A==", + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "requires": { - "chalk": "^4.1.0", - "consola": "^2.15.0", - "node-fetch": "^2.6.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" } }, "@popperjs/core": { @@ -26307,30 +26425,23 @@ "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==" }, "@remirror/core-constants": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@remirror/core-constants/-/core-constants-2.0.0.tgz", - "integrity": "sha512-vpePPMecHJllBqCWXl6+FIcZqS+tRUM2kSCCKFeEo1H3XUEv3ocijBIPhnlSAa7g6maX+12ATTgxrOsLpWVr2g==", - "peer": true, - "requires": { - "@babel/runtime": "^7.13.10" - } + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@remirror/core-constants/-/core-constants-2.0.2.tgz", + "integrity": "sha512-dyHY+sMF0ihPus3O27ODd4+agdHMEmuRdyiZJ2CCWjPV5UFmn17ZbElvk6WOGVE4rdCJKZQCrPV2BcikOMLUGQ==" }, "@remirror/core-helpers": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@remirror/core-helpers/-/core-helpers-2.0.1.tgz", - "integrity": "sha512-s8M1pn33aBUhduvD1QR02uUQMegnFkGaTr4c1iBzxTTyg0rbQstzuQ7Q8TkL6n64JtgCdJS9jLz2dONb2meBKQ==", - "peer": true, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@remirror/core-helpers/-/core-helpers-3.0.0.tgz", + "integrity": "sha512-tusEgQJIqg4qKj6HSBUFcyRnWnziw3neh4T9wOmsPGHFC3w9kl5KSrDb9UAgE8uX6y32FnS7vJ955mWOl3n50A==", "requires": { - "@babel/runtime": "^7.13.10", - "@linaria/core": "3.0.0-beta.13", - "@remirror/core-constants": "^2.0.0", - "@remirror/types": "^1.0.0", + "@remirror/core-constants": "^2.0.2", + "@remirror/types": "^1.0.1", "@types/object.omit": "^3.0.0", - "@types/object.pick": "^1.3.1", + "@types/object.pick": "^1.3.2", "@types/throttle-debounce": "^2.1.0", - "case-anything": "^2.1.10", + "case-anything": "^2.1.13", "dash-get": "^1.0.2", - "deepmerge": "^4.2.2", + "deepmerge": "^4.3.1", "fast-deep-equal": "^3.1.3", "make-error": "^1.3.6", "object.omit": "^3.0.0", @@ -26339,25 +26450,168 @@ } }, "@remirror/types": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@remirror/types/-/types-1.0.0.tgz", - "integrity": "sha512-7HQbW7k8VxrAtfzs9FxwO6XSDabn8tSFDi1wwzShOnU+cvaYpfxu0ygyTk3TpXsag1hgFKY3ZIlAfB4WVz2LkQ==", - "peer": true, + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@remirror/types/-/types-1.0.1.tgz", + "integrity": "sha512-VlZQxwGnt1jtQ18D6JqdIF+uFZo525WEqrfp9BOc3COPpK4+AWCgdnAWL+ho6imWcoINlGjR/+3b6y5C1vBVEA==", + "requires": { + "type-fest": "^2.19.0" + } + }, + "@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, "requires": { - "type-fest": "^2.0.0" + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" }, "dependencies": { - "type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "peer": true + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true } } }, + "@rollup/rollup-android-arm-eabi": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", + "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-android-arm64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", + "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-darwin-arm64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", + "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-darwin-x64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", + "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", + "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm-musleabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", + "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", + "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm64-musl": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", + "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", + "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-riscv64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", + "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-s390x-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", + "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-x64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", + "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-x64-musl": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", + "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-arm64-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", + "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-ia32-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", + "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-x64-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", + "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", + "dev": true, + "optional": true + }, + "@sharp/commands": { + "version": "file:packages/commands" + }, + "@sharp/dashboard": { + "version": "file:packages/dashboard" + }, + "@sharp/entity-list": { + "version": "file:packages/entity-list" + }, + "@sharp/filters": { + "version": "file:packages/filters" + }, + "@sharp/form": { + "version": "file:packages/form" + }, + "@sharp/show": { + "version": "file:packages/show" + }, "@sharp/test-utils": { "version": "file:packages/test-utils" }, + "@sharp/ui": { + "version": "file:packages/ui" + }, "@sinonjs/commons": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", @@ -26376,258 +26630,331 @@ "@sinonjs/commons": "^1.7.0" } }, + "@svgdotjs/svg.draggable.js": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@svgdotjs/svg.draggable.js/-/svg.draggable.js-3.0.4.tgz", + "integrity": "sha512-vWi/Col5Szo74HJVBgMHz23kLVljt3jvngmh0DzST45iO2ubIZ487uUAHIxSZH2tVRyiaaTL+Phaasgp4gUD2g==", + "requires": {} + }, + "@svgdotjs/svg.filter.js": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@svgdotjs/svg.filter.js/-/svg.filter.js-3.0.8.tgz", + "integrity": "sha512-YshF2YDaeRA2StyzAs5nUPrev7npQ38oWD0eTRwnsciSL2KrRPMoUw8BzjIXItb3+dccKGTX3IQOd2NFzmHkog==", + "requires": { + "@svgdotjs/svg.js": "^3.1.1" + } + }, + "@svgdotjs/svg.js": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@svgdotjs/svg.js/-/svg.js-3.2.4.tgz", + "integrity": "sha512-BjJ/7vWNowlX3Z8O4ywT58DqbNRyYlkk6Yz/D13aB7hGmfQTvGX4Tkgtm/ApYlu9M7lCQi15xUEidqMUmdMYwg==" + }, + "@svgdotjs/svg.resize.js": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@svgdotjs/svg.resize.js/-/svg.resize.js-2.0.5.tgz", + "integrity": "sha512-4heRW4B1QrJeENfi7326lUPYBCevj78FJs8kfeDxn5st0IYPIRXoTtOSYvTzFWgaWWXd3YCDE6ao4fmv91RthA==", + "requires": {} + }, + "@svgdotjs/svg.select.js": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@svgdotjs/svg.select.js/-/svg.select.js-4.0.2.tgz", + "integrity": "sha512-5gWdrvoQX3keo03SCmgaBbD+kFftq0F/f2bzCbNnpkkvW6tk4rl4MakORzFuNjvXPWwB4az9GwuvVxQVnjaK2g==", + "requires": {} + }, + "@swc/helpers": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz", + "integrity": "sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==", + "requires": { + "tslib": "^2.4.0" + }, + "dependencies": { + "tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + } + } + }, + "@tailwindcss/container-queries": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/container-queries/-/container-queries-0.1.1.tgz", + "integrity": "sha512-p18dswChx6WnTSaJCSGx6lTmrGzNNvm2FtXmiO6AuA1V4U5REyoqwmT6kgAsIMdjo07QdAfYXHJ4hnMtfHzWgA==", + "dev": true, + "requires": {} + }, + "@tailwindcss/forms": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.4.tgz", + "integrity": "sha512-YAm12D3R7/9Mh4jFbYSMnsd6jG++8KxogWgqs7hbdo/86aWjjlIEvL7+QYdVELmAI0InXTpZqFIg5e7aDVWI2Q==", + "dev": true, + "requires": { + "mini-svg-data-uri": "^1.2.3" + } + }, + "@tanstack/virtual-core": { + "version": "3.10.8", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.10.8.tgz", + "integrity": "sha512-PBu00mtt95jbKFi6Llk9aik8bnR3tR/oQP1o3TSi+iG//+Q2RTIzCEgKkHG8BB86kxMNW6O8wku+Lmi+QFR6jA==" + }, + "@tanstack/vue-virtual": { + "version": "3.10.8", + "resolved": "https://registry.npmjs.org/@tanstack/vue-virtual/-/vue-virtual-3.10.8.tgz", + "integrity": "sha512-DB5QA8c/LfqOqIUCpSs3RdOTVroRRdqeHMqBkYrcashSZtOzIv8xbiqHgg7RYxDfkH5F3Y+e0MkuuyGNDVB0BQ==", + "requires": { + "@tanstack/virtual-core": "3.10.8" + } + }, "@tiptap/core": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.1.13.tgz", - "integrity": "sha512-cMC8bgTN63dj1Mv82iDeeLl6sa9kY0Pug8LSalxVEptRmyFVsVxGgu2/6Y3T+9aCYScxfS06EkA8SdzFMAwYTQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.2.2.tgz", + "integrity": "sha512-fec26LtNgYFGhKzEA9+Of+qLKIKUxDL/XZQofoPcxP71NffcmpZ+ZjAx9NjnvuYtvylUSySZiPauY6WhN3aprw==", "requires": {} }, "@tiptap/extension-blockquote": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.1.13.tgz", - "integrity": "sha512-oe6wSQACmODugoP9XH3Ouffjy4BsOBWfTC+dETHNCG6ZED6ShHN3CB9Vr7EwwRgmm2WLaKAjMO1sVumwH+Z1rg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.2.2.tgz", + "integrity": "sha512-ENCGx/yhNdUQ0epGOeTN4HFeUSfQDK2CQBy2szkQVtzG/Vhv8ExxBWTxHJcMoeSfEVmKag4B506vfRkKH24IMA==", "requires": {} }, "@tiptap/extension-bold": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.1.13.tgz", - "integrity": "sha512-6cHsQTh/rUiG4jkbJer3vk7g60I5tBwEBSGpdxmEHh83RsvevD8+n92PjA24hYYte5RNlATB011E1wu8PVhSvw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.2.2.tgz", + "integrity": "sha512-8/KLpPHwO+GXlWsXEION7ppLfFIaSpnw5m2QYXz/LGRK32hzpTavbdXV3rx9+Vu+7Z+0yQF9G/ro1z9dqTQHpw==", "requires": {} }, "@tiptap/extension-bubble-menu": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.1.13.tgz", - "integrity": "sha512-Hm7e1GX3AI6lfaUmr6WqsS9MMyXIzCkhh+VQi6K8jj4Q4s8kY4KPoAyD/c3v9pZ/dieUtm2TfqrOCkbHzsJQBg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.2.2.tgz", + "integrity": "sha512-W3OvoHxgBdQSrlX8FXvIs5wA+eHXe/0jGsqQdwLXPtqZOSR4Ks9OLmxDk2+O8ci0KCLPb6/doJYg7j/8Ic4KRg==", "requires": { "tippy.js": "^6.3.7" } }, "@tiptap/extension-bullet-list": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.1.13.tgz", - "integrity": "sha512-NkWlQ5bLPUlcROj6G/d4oqAxMf3j3wfndGOPp0z8OoXJtVbVoXl/aMSlLbVgE6n8r6CS8MYxKhXNxrb7Ll2foA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.2.2.tgz", + "integrity": "sha512-mZznxwymWitQRHYxEN8LX7theJdQ1/O6kUsvwDyHw42+jaCsZumTHEWGckBwkxk3BWWKbrkRGv/cC78sa3cNJw==", "requires": {} }, "@tiptap/extension-character-count": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-character-count/-/extension-character-count-2.1.13.tgz", - "integrity": "sha512-FxPxS/Uqd4MgndInxXOcgNd225541Nsk1lT5e2uNTSNiQnG7dj7cSFG5KXGcSGLpGGt6e/E28WR6KLV+0/u+WA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-character-count/-/extension-character-count-2.2.2.tgz", + "integrity": "sha512-aObDoKXxVEi3sLaJFfaFLtKMH6e3zgKCkPhXOROUsrdapmvn/ubTuEXdVjiV9YZ7U6t57IYjlXV/jiVwDSgIjA==", "requires": {} }, "@tiptap/extension-code": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.1.13.tgz", - "integrity": "sha512-f5fLYlSgliVVa44vd7lQGvo49+peC+Z2H0Fn84TKNCH7tkNZzouoJsHYn0/enLaQ9Sq+24YPfqulfiwlxyiT8w==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.2.2.tgz", + "integrity": "sha512-CHMHK76fGFrY3TpsyNmPB393VvRgjnvLVOfc0Qx4KKEkntDQ1v2jg90XupLf0+H0aq0KQBHlSooW0Bh+7SxbmQ==", "requires": {} }, "@tiptap/extension-code-block": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.1.13.tgz", - "integrity": "sha512-E3tweNExPOV+t1ODKX0MDVsS0aeHGWc1ECt+uyp6XwzsN0bdF2A5+pttQqM7sTcMnQkVACGFbn9wDeLRRcfyQg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.2.2.tgz", + "integrity": "sha512-CKn4xqhpCfwkVdkj//A+LVf0hFrRkBbDx8u3KG+I7cegjXxvDSqb2OGhn/tXpFatLAE50GJiPIvqf+TmhIWBvA==", "requires": {} }, "@tiptap/extension-document": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.1.13.tgz", - "integrity": "sha512-wLwiTWsVmZTGIE5duTcHRmW4ulVxNW4nmgfpk95+mPn1iKyNGtrVhGWleLhBlTj+DWXDtcfNWZgqZkZNzhkqYQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.2.2.tgz", + "integrity": "sha512-eUhpYq8ErVAlxuTg5wslc96mniEQs+VN+tFmRrx9Q0n0nG/aDKUQFDgcSMpAMpHK7+h7tGc/rDq+ydpzZhFXlQ==", "requires": {} }, "@tiptap/extension-dropcursor": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.1.13.tgz", - "integrity": "sha512-NAyJi4BJxH7vl/2LNS1X0ndwFKjEtX+cRgshXCnMyh7qNpIRW6Plczapc/W1OiMncOEhZJfpZfkRSfwG01FWFg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.2.2.tgz", + "integrity": "sha512-HxXEf6m+W3PnT63Ib49qAmcwmapZvmyWgq9cvB5kSfl/znQT04wBgShEigkgUBLqgcM/R/RI8NS1GQl1Zpv9iQ==", "requires": {} }, "@tiptap/extension-floating-menu": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-2.1.13.tgz", - "integrity": "sha512-9Oz7pk1Nts2+EyY+rYfnREGbLzQ5UFazAvRhF6zAJdvyuDmAYm0Jp6s0GoTrpV0/dJEISoFaNpPdMJOb9EBNRw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-2.2.2.tgz", + "integrity": "sha512-DRz9kzcPt7S8s22EQC+KS/ghnHRV6j7Qequ+0kLjfLYPdqj2u4G5xTrFM7sWfzUqf2HdH8SS8Yo9WFMYm69D9w==", "requires": { "tippy.js": "^6.3.7" } }, "@tiptap/extension-gapcursor": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.1.13.tgz", - "integrity": "sha512-Cl5apsoTcyPPCgE3ThufxQxZ1wyqqh+9uxUN9VF9AbeTkid6oPZvKXwaILf6AFnkSy+SuKrb9kZD2iaezxpzXw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.2.2.tgz", + "integrity": "sha512-qsE8yI9nZOLHg6XdFwn4BYMhR2f/50gppHJdsHx53575y2ci6uowMI+WjdEentl6yR9ctgV1jelHLs9ShmPzwQ==", "requires": {} }, "@tiptap/extension-hard-break": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.1.13.tgz", - "integrity": "sha512-TGkMzMQayuKg+vN4du0x1ahEItBLcCT1jdWeRsjdM8gHfzbPLdo4PQhVsvm1I0xaZmbJZelhnVsUwRZcIu1WNA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.2.2.tgz", + "integrity": "sha512-zbG6/7xyMim2fnRESIx2FiFHjdY7BXKMe+GUgLGPnRfXrJqSZhdVguBrtYGBnBFCnuSiOZZ6rFy+k5uORGSrhA==", "requires": {} }, "@tiptap/extension-heading": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.1.13.tgz", - "integrity": "sha512-PEmc19QLmlVUTiHWoF0hpgNTNPNU0nlaFmMKskzO+cx5Df4xvHmv/UqoIwp7/UFbPMkfVJT1ozQU7oD1IWn9Hg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.2.2.tgz", + "integrity": "sha512-oCd8VsLnrqJFY+lgA+5I/2EjBa4mQzB5DFLzCI460PfZnQJ2DmaNUdpY38BpHUv8E2PbBXzxxWS9h88yycW6yw==", "requires": {} }, "@tiptap/extension-highlight": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-highlight/-/extension-highlight-2.1.13.tgz", - "integrity": "sha512-ZivjJma5WwPYcG0rpnynVDGis32OGdtpTwETEb+2OOjZBCBlyYQ4tcRk5gS3nzBAjLl/Qu84VVbawLhHXB6few==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-highlight/-/extension-highlight-2.2.2.tgz", + "integrity": "sha512-tNDx0u54H/cnBVfGflq7a9WHzPTOdDgz0BzSj3ujHT8xAZG+yQWhm8bnq0BZc+7xODbGIQ22ZEzypIC7KNUzZQ==", "requires": {} }, "@tiptap/extension-history": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.1.13.tgz", - "integrity": "sha512-1ouitThGTBUObqw250aDwGLMNESBH5PRXIGybsCFO1bktdmWtEw7m72WY41EuX2BH8iKJpcYPerl3HfY1vmCNw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.2.2.tgz", + "integrity": "sha512-hcCEh7mP5H38ZY3YtbyyUOTNfKWAvITkJhVqjKbrRI3E+FOlG3pWPH3wz4srW5bHK38oUsiKwyP9FqC3C2Mixg==", "requires": {} }, "@tiptap/extension-horizontal-rule": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.1.13.tgz", - "integrity": "sha512-7OgjgNqZXvBejgULNdMSma2M1nzv4bbZG+FT5XMFZmEOxR9IB1x/RzChjPdeicff2ZK2sfhMBc4Y9femF5XkUg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.2.2.tgz", + "integrity": "sha512-5hun56M9elO6slOoDH03q2of06KB1rX8MLvfiKpfAvjbhmuQJav20fz2MQ2lCunek0D8mUIySwhfMvBrTcd90A==", "requires": {} }, "@tiptap/extension-image": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-2.1.13.tgz", - "integrity": "sha512-7oVAos+BU4KR/zQsfltrd8hgIxKxyxZ19dhwb1BJI2Nt3Mnx+yFPRlRSehID6RT9dYqgW4UW5d6vh/3HQcYYYw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-2.2.2.tgz", + "integrity": "sha512-fqZ2VB3K/c/Mi/2QTfav6CmTe33yGRkeQEivllSCCxgDD+kNYGto/P9maHSIJSG3RZWZHYfIPHmUJKfUlJRTXQ==", "requires": {} }, "@tiptap/extension-italic": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.1.13.tgz", - "integrity": "sha512-HyDJfuDn5hzwGKZiANcvgz6wcum6bEgb4wmJnfej8XanTMJatNVv63TVxCJ10dSc9KGpPVcIkg6W8/joNXIEbw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.2.2.tgz", + "integrity": "sha512-l9NZK4vYqYY9Y5UskLQpdbvi0sXG4I/MuhRxPdjitK8E3SVhZxMnoNwCTkq0+I1xBjCD/jSrDMV4FqkKesrl2w==", "requires": {} }, "@tiptap/extension-link": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-2.1.13.tgz", - "integrity": "sha512-wuGMf3zRtMHhMrKm9l6Tft5M2N21Z0UP1dZ5t1IlOAvOeYV2QZ5UynwFryxGKLO0NslCBLF/4b/HAdNXbfXWUA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-2.2.2.tgz", + "integrity": "sha512-hk2cxSWeFagv2erxVI4UUN9kTLqhTSLhtHKVNbKOW50dtkDqjzp9tri1+LYYpiObxDKoFFKfKjE6ojVtqMyn2w==", "requires": { "linkifyjs": "^4.1.0" } }, "@tiptap/extension-list-item": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.1.13.tgz", - "integrity": "sha512-6e8iiCWXOiJTl1XOwVW2tc0YG18h70HUtEHFCx2m5HspOGFKsFEaSS3qYxOheM9HxlmQeDt8mTtqftRjEFRxPQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.2.2.tgz", + "integrity": "sha512-VuHlbhLePXvKTx55X0iIZ1EXARAoOf6lpbKJK8180jny2gpYxGhk7rwG1G8s6G6ZDST+kyVa04gncxz8F/z6oA==", "requires": {} }, "@tiptap/extension-ordered-list": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.1.13.tgz", - "integrity": "sha512-UO4ZAL5Vrr1WwER5VjgmeNIWHpqy9cnIRo1En07gZ0OWTjs1eITPcu+4TCn1ZG6DhoFvAQzE5DTxxdhIotg+qw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.2.2.tgz", + "integrity": "sha512-TgG+mJyQB5CfeqCD65B9CLesl2IQTjc7tAKm8ZxRzF80GrCrmWNnoXi424TWmSF6cUV/4TY0G5dTkc9kB+S2tw==", "requires": {} }, "@tiptap/extension-paragraph": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.1.13.tgz", - "integrity": "sha512-cEoZBJrsQn69FPpUMePXG/ltGXtqKISgypj70PEHXt5meKDjpmMVSY4/8cXvFYEYsI9GvIwyAK0OrfAHiSoROA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.2.2.tgz", + "integrity": "sha512-USTzajni/hsQXsBF0Lbw++FyPJKCDlROyaKbZi77QQoUsU2MbJIka7k4tGc0kwyTB04aAl+E6+0iS4xIhC3rug==", "requires": {} }, "@tiptap/extension-placeholder": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-placeholder/-/extension-placeholder-2.1.13.tgz", - "integrity": "sha512-vIY7y7UbqsrAW/y8bDE9eRenbQEU16kNHB5Wri8RU1YiUZpkPgdXP/pLqyjIIq95SwP/vdTIHjHoQ77VLRl1hA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-placeholder/-/extension-placeholder-2.2.2.tgz", + "integrity": "sha512-dPN15nVu+HlONJSCiKjEl9n5/61CltTLSefhyRVQJeE7lmtMUGrsErUdOYMxGskehDQWIQW1VM0OiF63ln/3sA==", "requires": {} }, "@tiptap/extension-strike": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.1.13.tgz", - "integrity": "sha512-VN6zlaCNCbyJUCDyBFxavw19XmQ4LkCh8n20M8huNqW77lDGXA2A7UcWLHaNBpqAijBRu9mWI8l4Bftyf2fcAw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.2.2.tgz", + "integrity": "sha512-0wsqiZPatw9QrK3DJ1jCMukenc8DRQtEXo4/dQjtnzNDhe7ZySed6kPpGO9A4lASG7NV7GmYZ/k5iEELr+iE6Q==", "requires": {} }, "@tiptap/extension-superscript": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-superscript/-/extension-superscript-2.1.13.tgz", - "integrity": "sha512-wZr9Ls7YYvzbVInBqqpQkn+/YwG3b78Rg3U1TldCcbg0IprwFyPsFHvu0NZnqYEG4MHhaF3F1sZRtPdZ0hDy8g==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-superscript/-/extension-superscript-2.2.2.tgz", + "integrity": "sha512-hCO6Wr1gtl/nOyC/6L1s7qf3IF9TDdv2J2HqprD05PCcxGZbP0i6rm/SavmlOaGmZwDGv7ckx9mTqBDDpQjSsA==", "requires": {} }, "@tiptap/extension-table": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-table/-/extension-table-2.1.13.tgz", - "integrity": "sha512-yMWt2LqotOsWJhLwFNo8fyTwJNLPtnk+eCUxKLlMXP23mJ/lpF+jvTihhHVVic5GqV9vLYZFU2Tn+5k/Vd5P1w==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table/-/extension-table-2.2.2.tgz", + "integrity": "sha512-XuqshbaodbfUJct6ZaVypxtXtK0JQoufcSeCgmz1GS6OQM+5FCIhM1LIRUja4CT453sXKa3yEy1zBhK0l7sMbQ==", "requires": {} }, "@tiptap/extension-table-cell": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-table-cell/-/extension-table-cell-2.1.13.tgz", - "integrity": "sha512-30pyVt2PxGAk8jmsXKxDheql8K/xIRA9FiDo++kS2Kr6Y7I42/kNPQttJ2W+Q1JdRJvedNfQtziQfKWDRLLCNA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table-cell/-/extension-table-cell-2.2.2.tgz", + "integrity": "sha512-wBWvAwv6ZMBJG7oCQpNnyck6ZvAuwric4xdwboX4sDL5glNPylb9CXM77kMOo7krjn+I4zrEOxc9DoUUYa88wA==", "requires": {} }, "@tiptap/extension-table-header": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-table-header/-/extension-table-header-2.1.13.tgz", - "integrity": "sha512-FwIV5iso5kmpu01QyvrPCjJqZfqxRTjtjMsDyut2uIgx9v5TXk0V5XvMWobx435ANIDJoGTYCMRlIqcgtyqwAQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table-header/-/extension-table-header-2.2.2.tgz", + "integrity": "sha512-rJUJkHJpTgSaYTRCDm8TA5XDy6IXgFIID/m0UAPaZ9i/GWj53BSBYYidu89uLjxssvr0VcGtGWdQlGmlIib3CQ==", "requires": {} }, "@tiptap/extension-table-row": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-table-row/-/extension-table-row-2.1.13.tgz", - "integrity": "sha512-27Mb9/oYbiLd+/BUFMhQzRIqMd2Z5j1BZMYsktwtDG8vGdYVlaW257UVaoNR9TmiXyIzd3Dh1mOil8G35+HRHg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table-row/-/extension-table-row-2.2.2.tgz", + "integrity": "sha512-4ReboyIQl6uCi++5SzukOj4HNSAcI4Q3kCeptT/yk9dYAToIfxG1GF4iSCudwMPyq8maEa/DOYsprzcqvuLOqw==", "requires": {} }, "@tiptap/extension-text": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.1.13.tgz", - "integrity": "sha512-zzsTTvu5U67a8WjImi6DrmpX2Q/onLSaj+LRWPh36A1Pz2WaxW5asZgaS+xWCnR+UrozlCALWa01r7uv69jq0w==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.2.2.tgz", + "integrity": "sha512-Zj53Vp/9MSQj5uiaObFaD3y7grUpMy+PfHmrK5XAZSFhRx+QpGUp+oItlKod6IJEIu8rq4dChgE7i6kT9uwWlA==", "requires": {} }, "@tiptap/pm": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-2.0.3.tgz", - "integrity": "sha512-I9dsInD89Agdm1QjFRO9dmJtU1ldVSILNPW0pEhv9wYqYVvl4HUj/JMtYNqu2jWrCHNXQcaX/WkdSdvGJtmg5g==", - "peer": true, - "requires": { - "prosemirror-changeset": "^2.2.0", - "prosemirror-collab": "^1.3.0", - "prosemirror-commands": "^1.3.1", - "prosemirror-dropcursor": "^1.5.0", - "prosemirror-gapcursor": "^1.3.1", - "prosemirror-history": "^1.3.0", - "prosemirror-inputrules": "^1.2.0", - "prosemirror-keymap": "^1.2.0", - "prosemirror-markdown": "^1.10.1", - "prosemirror-menu": "^1.2.1", - "prosemirror-model": "^1.18.1", - "prosemirror-schema-basic": "^1.2.0", - "prosemirror-schema-list": "^1.2.2", - "prosemirror-state": "^1.4.1", - "prosemirror-tables": "^1.3.0", - "prosemirror-trailing-node": "^2.0.2", - "prosemirror-transform": "^1.7.0", - "prosemirror-view": "^1.28.2" + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-2.2.4.tgz", + "integrity": "sha512-Po0klR165zgtinhVp1nwMubjyKx6gAY9kH3IzcniYLCkqhPgiqnAcCr61TBpp4hfK8YURBS4ihvCB1dyfCyY8A==", + "requires": { + "prosemirror-changeset": "^2.2.1", + "prosemirror-collab": "^1.3.1", + "prosemirror-commands": "^1.5.2", + "prosemirror-dropcursor": "^1.8.1", + "prosemirror-gapcursor": "^1.3.2", + "prosemirror-history": "^1.3.2", + "prosemirror-inputrules": "^1.3.0", + "prosemirror-keymap": "^1.2.2", + "prosemirror-markdown": "^1.12.0", + "prosemirror-menu": "^1.2.4", + "prosemirror-model": "^1.19.4", + "prosemirror-schema-basic": "^1.2.2", + "prosemirror-schema-list": "^1.3.0", + "prosemirror-state": "^1.4.3", + "prosemirror-tables": "^1.3.5", + "prosemirror-trailing-node": "^2.0.7", + "prosemirror-transform": "^1.8.0", + "prosemirror-view": "^1.32.7" } }, "@tiptap/starter-kit": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.1.13.tgz", - "integrity": "sha512-ph/mUR/OwPtPkZ5rNHINxubpABn8fHnvJSdhXFrY/q6SKoaO11NZXgegRaiG4aL7O6Sz4LsZVw6Sm0Ae+GJmrg==", - "requires": { - "@tiptap/core": "^2.1.13", - "@tiptap/extension-blockquote": "^2.1.13", - "@tiptap/extension-bold": "^2.1.13", - "@tiptap/extension-bullet-list": "^2.1.13", - "@tiptap/extension-code": "^2.1.13", - "@tiptap/extension-code-block": "^2.1.13", - "@tiptap/extension-document": "^2.1.13", - "@tiptap/extension-dropcursor": "^2.1.13", - "@tiptap/extension-gapcursor": "^2.1.13", - "@tiptap/extension-hard-break": "^2.1.13", - "@tiptap/extension-heading": "^2.1.13", - "@tiptap/extension-history": "^2.1.13", - "@tiptap/extension-horizontal-rule": "^2.1.13", - "@tiptap/extension-italic": "^2.1.13", - "@tiptap/extension-list-item": "^2.1.13", - "@tiptap/extension-ordered-list": "^2.1.13", - "@tiptap/extension-paragraph": "^2.1.13", - "@tiptap/extension-strike": "^2.1.13", - "@tiptap/extension-text": "^2.1.13" - } - }, - "@tiptap/vue-2": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@tiptap/vue-2/-/vue-2-2.1.13.tgz", - "integrity": "sha512-OsCINarPGyT3sDIXDrhVyaoH0I0VxeDDm+NgS5P0fPbBCnsHZ8csvxD9UB9/KZ/UoxYDfJ1zLplKQn1AIlnRzg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.2.2.tgz", + "integrity": "sha512-J8nbrVBggGJwO7CPEwdUqG6Q8btiQJjjnYWZEs+ImM9GMUfXJ8lyaGT0My3wDvTeq537N9BjTEcQ88pMtOqbOw==", + "requires": { + "@tiptap/core": "^2.2.2", + "@tiptap/extension-blockquote": "^2.2.2", + "@tiptap/extension-bold": "^2.2.2", + "@tiptap/extension-bullet-list": "^2.2.2", + "@tiptap/extension-code": "^2.2.2", + "@tiptap/extension-code-block": "^2.2.2", + "@tiptap/extension-document": "^2.2.2", + "@tiptap/extension-dropcursor": "^2.2.2", + "@tiptap/extension-gapcursor": "^2.2.2", + "@tiptap/extension-hard-break": "^2.2.2", + "@tiptap/extension-heading": "^2.2.2", + "@tiptap/extension-history": "^2.2.2", + "@tiptap/extension-horizontal-rule": "^2.2.2", + "@tiptap/extension-italic": "^2.2.2", + "@tiptap/extension-list-item": "^2.2.2", + "@tiptap/extension-ordered-list": "^2.2.2", + "@tiptap/extension-paragraph": "^2.2.2", + "@tiptap/extension-strike": "^2.2.2", + "@tiptap/extension-text": "^2.2.2" + } + }, + "@tiptap/vue-3": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tiptap/vue-3/-/vue-3-2.2.2.tgz", + "integrity": "sha512-4QNjruL7qiOgSANczipKtbYmMZS/gGuqV2UeBKKXTXIGFr5qA5R5n9Icy+El0oJOUZ8MNDFOVSGaHh/ts+pY3g==", "requires": { - "@tiptap/extension-bubble-menu": "^2.1.13", - "@tiptap/extension-floating-menu": "^2.1.13", - "vue-ts-types": "^1.6.0" + "@tiptap/extension-bubble-menu": "^2.2.2", + "@tiptap/extension-floating-menu": "^2.2.2" } }, "@tootallnate/once": { @@ -26636,6 +26963,17 @@ "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", "dev": true }, + "@transloadit/prettier-bytes": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/@transloadit/prettier-bytes/-/prettier-bytes-0.0.9.tgz", + "integrity": "sha512-pCvdmea/F3Tn4hAtHqNXmjcixSaroJJ+L3STXlYJdir1g1m2mRQpWbN8a4SvgQtaw2930Ckhdx8qXdXBFMKbAA==" + }, + "@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true + }, "@types/babel__core": { "version": "7.1.18", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz", @@ -26700,11 +27038,16 @@ } }, "@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true, - "peer": true + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, + "@types/geojson": { + "version": "7946.0.11", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.11.tgz", + "integrity": "sha512-L7A0AINMXQpVwxHJ4jxD6/XjZ4NDufaRlUJHjNIFKYUFBH1SvOW+neaqb0VTRSLW5suSrSu19ObFEFnfNcr+qg==", + "devOptional": true }, "@types/glob": { "version": "7.2.0", @@ -26716,6 +27059,12 @@ "@types/node": "*" } }, + "@types/google.maps": { + "version": "3.58.1", + "resolved": "https://registry.npmjs.org/@types/google.maps/-/google.maps-3.58.1.tgz", + "integrity": "sha512-X9QTSvGJ0nCfMzYOnaVs/k6/4L+7F5uCS+4iUmkLEls6J9S/Phv+m/i3mDeyc49ZBgwab3EFO1HEoBY7k98EGQ==", + "dev": true + }, "@types/graceful-fs": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", @@ -26874,11 +27223,26 @@ "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", "dev": true }, + "@types/leaflet": { + "version": "1.9.6", + "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.9.6.tgz", + "integrity": "sha512-HakGTK5LBBWegNWsAmTlG55zN1zszYec7aG47/z6SzT90bW2vqjmbqk3YKAbrtveO+G7fSTKTYqVbIwAFnTrbg==", + "devOptional": true, + "requires": { + "@types/geojson": "*" + } + }, "@types/linkify-it": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==" }, + "@types/lodash": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.13.tgz", + "integrity": "sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==", + "dev": true + }, "@types/markdown-it": { "version": "12.2.3", "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", @@ -26899,39 +27263,30 @@ "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", "dev": true }, - "@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "@types/node": { + "version": "20.11.30", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.30.tgz", + "integrity": "sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==", "dev": true, - "optional": true, - "peer": true + "requires": { + "undici-types": "~5.26.4" + } }, - "@types/node": { - "version": "14.11.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.11.8.tgz", - "integrity": "sha512-KPcKqKm5UKDkaYPTuXSx8wEP7vE9GnuaXIZKijwRYcePpZFDVuy2a57LarFKiORbHOuTOOwYzxVxcUzsh2P2Pw==", + "@types/nprogress": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@types/nprogress/-/nprogress-0.2.3.tgz", + "integrity": "sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA==", "dev": true }, - "@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true, - "optional": true, - "peer": true - }, "@types/object.omit": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/object.omit/-/object.omit-3.0.0.tgz", - "integrity": "sha512-I27IoPpH250TUzc9FzXd0P1BV/BMJuzqD3jOz98ehf9dQqGkxlq+hO1bIqZGWqCg5bVOy0g4AUVJtnxe0klDmw==", - "peer": true + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/object.omit/-/object.omit-3.0.3.tgz", + "integrity": "sha512-xrq4bQTBGYY2cw+gV4PzoG2Lv3L0pjZ1uXStRRDQoATOYW1lCsFQHhQ+OkPhIcQoqLjAq7gYif7D14Qaa6Zbew==" }, "@types/object.pick": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/object.pick/-/object.pick-1.3.2.tgz", - "integrity": "sha512-sn7L+qQ6RLPdXRoiaE7bZ/Ek+o4uICma/lBFPyJEKDTPTBP1W8u0c4baj3EiS4DiqLs+Hk+KUGvMVJtAw3ePJg==", - "peer": true + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@types/object.pick/-/object.pick-1.3.4.tgz", + "integrity": "sha512-5PjwB0uP2XDp3nt5u5NJAG2DORHIRClPzWT/TTZhJ2Ekwe8M5bA9tvPdi9NO/n2uvu2/ictat8kgqvLfcIE1SA==" }, "@types/prettier": { "version": "2.4.4", @@ -26945,6 +27300,18 @@ "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==", "dev": true }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "@types/sortablejs": { + "version": "1.15.8", + "resolved": "https://registry.npmjs.org/@types/sortablejs/-/sortablejs-1.15.8.tgz", + "integrity": "sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg==", + "dev": true + }, "@types/stack-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", @@ -26954,8 +27321,12 @@ "@types/throttle-debounce": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@types/throttle-debounce/-/throttle-debounce-2.1.0.tgz", - "integrity": "sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ==", - "peer": true + "integrity": "sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ==" + }, + "@types/web-bluetooth": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz", + "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==" }, "@types/yargs": { "version": "16.0.4", @@ -26972,41 +27343,327 @@ "integrity": "sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg==", "dev": true }, - "@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "@uppy/companion-client": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@uppy/companion-client/-/companion-client-3.4.1.tgz", + "integrity": "sha512-aUCJuZR+u+yWdfNblu08WVZ6thkLQdf9MTo0orNsj4xzc0PZVtX7gbjjvgmv71iA3Losy5ltOXhg/+dYOosBtA==", + "requires": { + "@uppy/utils": "^5.5.1", + "namespace-emitter": "^2.0.1" + } + }, + "@uppy/core": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@uppy/core/-/core-3.5.1.tgz", + "integrity": "sha512-iaHn2JG6HgwQMxRAwzEeqRoJGElnUerAh/coDF30Ha92lAPe8xkjFIqIHjaCtEMJqjQAm1msZX4v5Vi7M9hzsw==", + "requires": { + "@transloadit/prettier-bytes": "0.0.9", + "@uppy/store-default": "^3.0.4", + "@uppy/utils": "^5.5.1", + "lodash": "^4.17.21", + "mime-match": "^1.0.2", + "namespace-emitter": "^2.0.1", + "nanoid": "^4.0.0", + "preact": "^10.5.13" + }, + "dependencies": { + "nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" + } + } + }, + "@uppy/drag-drop": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@uppy/drag-drop/-/drag-drop-3.0.3.tgz", + "integrity": "sha512-0bCgQKxg+9vkxQipTgrX9yQIuK9a0hZrkipm1+Ynq6jTeig49b7II1bWYnoKdiYhi6nRE4UnDJf4z09yCAU7rA==", + "requires": { + "@uppy/utils": "^5.4.3", + "preact": "^10.5.13" + } + }, + "@uppy/drop-target": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@uppy/drop-target/-/drop-target-2.0.1.tgz", + "integrity": "sha512-FMO8wj+0dx4mlwXKxFWSTUF+irgr0BVXadyc4qaoBBtZ3vEcwc3jP7SQfwk3JizV/D5MYG8MRICRbPAIrY9M8w==", + "requires": { + "@uppy/utils": "^5.0.2" + } + }, + "@uppy/file-input": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@uppy/file-input/-/file-input-3.0.3.tgz", + "integrity": "sha512-tYmbQIWjNPnKFFzBmZcNHFyMkfPAPSOrse+3qnmSWYzGKWaZfKP1zM0MiABZO/AH5X6hhLIQDRY8TsyiPfmJ9w==", + "requires": { + "@uppy/utils": "^5.4.3", + "preact": "^10.5.13" + } + }, + "@uppy/store-default": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@uppy/store-default/-/store-default-3.0.4.tgz", + "integrity": "sha512-DOqDZBfz2TMBdpzVdk6ehVCgj2bQ7p66CcVtAm31XL39nCvHI4Miy9IjnqRi2Okmou7JoPH52WX9A2dNZrAYZA==" + }, + "@uppy/thumbnail-generator": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@uppy/thumbnail-generator/-/thumbnail-generator-3.0.5.tgz", + "integrity": "sha512-XHt5/S7719PSVGi8nCB5SeJlE++1649WcpNtTn5jmxsEQExRMt1Z6JkwfbMB9W61U7qrbajUgpFq//0ln3hZ9g==", + "requires": { + "@uppy/utils": "^5.5.1", + "exifr": "^7.0.0" + } + }, + "@uppy/utils": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/@uppy/utils/-/utils-5.5.1.tgz", + "integrity": "sha512-iGLYSp9DHH54TXIoTxcArjPFEPNyWxSyMxXso9qRi3eY4wB8+Vflj/BGj4nm3sGzE+NSuat48nDa55vboYCn3g==", + "requires": { + "lodash": "^4.17.21", + "preact": "^10.5.13" + } + }, + "@uppy/vue": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@uppy/vue/-/vue-1.0.2.tgz", + "integrity": "sha512-wKDf8dWP+Klf09ms9LT060LuwIdOY/uQfPRaJVi1EBWoL/ESvtL2rjycBbyjbNg798Dy10lrSsrrHoCFcDcWSQ==", + "requires": { + "shallow-equal": "^1.2.1" + } + }, + "@uppy/xhr-upload": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@uppy/xhr-upload/-/xhr-upload-3.4.1.tgz", + "integrity": "sha512-vmAkvwxAfHyX4I03y68GZfNvZT54s5/GZpQSa169367jFEmS7ODR9TVdSzRKhZ9m7oGQr39AYUZns5o0Ko4RkQ==", + "requires": { + "@uppy/companion-client": "^3.4.1", + "@uppy/utils": "^5.5.1", + "nanoid": "^4.0.0" + }, + "dependencies": { + "nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" + } + } + }, + "@vitejs/plugin-legacy": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-legacy/-/plugin-legacy-5.3.2.tgz", + "integrity": "sha512-8moCOrIMaZ/Rjln0Q6GsH6s8fAt1JOI3k8nmfX4tXUxE5KAExVctSyOBk+A25GClsdSWqIk2yaUthH3KJ2X4tg==", "dev": true, - "optional": true, - "peer": true, "requires": { - "@types/node": "*" + "@babel/core": "^7.23.9", + "@babel/preset-env": "^7.23.9", + "browserslist": "^4.23.0", + "browserslist-to-esbuild": "^2.1.1", + "core-js": "^3.36.0", + "magic-string": "^0.30.7", + "regenerator-runtime": "^0.14.1", + "systemjs": "^6.14.3" } }, - "@vitejs/plugin-vue2": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue2/-/plugin-vue2-2.2.0.tgz", - "integrity": "sha512-1km7zEuZ/9QRPvzXSjikbTYGQPG86Mq1baktpC4sXqsXlb02HQKfi+fl8qVS703JM7cgm24Ga9j+RwKmvFn90A==", + "@vitejs/plugin-vue": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.1.4.tgz", + "integrity": "sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A==", "dev": true, "requires": {} }, - "@vue/compiler-sfc": { - "version": "2.7.14", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.14.tgz", - "integrity": "sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA==", + "@volar/language-core": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.6.tgz", + "integrity": "sha512-FxUfxaB8sCqvY46YjyAAV6c3mMIq/NWQMVvJ+uS4yxr1KzOvyg61gAuOnNvgCvO4TZ7HcLExBEsWcDu4+K4E8A==", + "dev": true, "requires": { - "@babel/parser": "^7.18.4", - "postcss": "^8.4.14", - "source-map": "^0.6.1" + "@volar/source-map": "2.4.6" + } + }, + "@volar/language-server": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@volar/language-server/-/language-server-2.4.6.tgz", + "integrity": "sha512-ARIbMXapEUPj9UFbZqWqw/iZ+ZuxUcY+vY212+2uutZVo/jrdzhLPu2TfZd9oB9akX8XXuslinT3051DyHLLRA==", + "dev": true, + "requires": { + "@volar/language-core": "2.4.6", + "@volar/language-service": "2.4.6", + "@volar/typescript": "2.4.6", + "path-browserify": "^1.0.1", + "request-light": "^0.7.0", + "vscode-languageserver": "^9.0.1", + "vscode-languageserver-protocol": "^3.17.5", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" }, "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + } + } + }, + "@volar/language-service": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@volar/language-service/-/language-service-2.4.6.tgz", + "integrity": "sha512-wNeEVBgBKgpP1MfMYPrgTf1K8nhOGEh3ac0+9n6ECyk2N03+j0pWCpQ2i99mRWT/POvo1PgizDmYFH8S67bZOA==", + "dev": true, + "requires": { + "@volar/language-core": "2.4.6", + "vscode-languageserver-protocol": "^3.17.5", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" + } + }, + "@volar/source-map": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.6.tgz", + "integrity": "sha512-Nsh7UW2ruK+uURIPzjJgF0YRGP5CX9nQHypA2OMqdM2FKy7rh+uv3XgPnWPw30JADbKvZ5HuBzG4gSbVDYVtiw==", + "dev": true + }, + "@volar/test-utils": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@volar/test-utils/-/test-utils-2.4.6.tgz", + "integrity": "sha512-QIW5BeYvsY4QPRCaRp6ewb/L9i+NZFJTY1fYsbQe4Hi4k7Zqs+Mu4Hz21nbGWTWIF2wHeX6gGMWfJjhR7jFtvw==", + "dev": true, + "requires": { + "@volar/language-core": "2.4.6", + "@volar/language-server": "2.4.6", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" + } + }, + "@volar/typescript": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.6.tgz", + "integrity": "sha512-NMIrA7y5OOqddL9VtngPWYmdQU03htNKFtAYidbYfWA0TOhyGVd9tfcP4TsLWQ+RBWDZCbBqsr8xzU0ZOxYTCQ==", + "dev": true, + "requires": { + "@volar/language-core": "2.4.6", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + }, + "dependencies": { + "path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + } + } + }, + "@vscode/emmet-helper": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/@vscode/emmet-helper/-/emmet-helper-2.9.3.tgz", + "integrity": "sha512-rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==", + "dev": true, + "requires": { + "emmet": "^2.4.3", + "jsonc-parser": "^2.3.0", + "vscode-languageserver-textdocument": "^1.0.1", + "vscode-languageserver-types": "^3.15.1", + "vscode-uri": "^2.1.2" + }, + "dependencies": { + "vscode-uri": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-2.1.2.tgz", + "integrity": "sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==", + "dev": true + } + } + }, + "@vscode/l10n": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/@vscode/l10n/-/l10n-0.0.18.tgz", + "integrity": "sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==", + "dev": true + }, + "@vue-leaflet/vue-leaflet": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@vue-leaflet/vue-leaflet/-/vue-leaflet-0.10.1.tgz", + "integrity": "sha512-RNEDk8TbnwrJl8ujdbKgZRFygLCxd0aBcWLQ05q/pGv4+d0jamE3KXQgQBqGAteE1mbQsk3xoNcqqUgaIGfWVg==", + "requires": { + "vue": "^3.2.25" + } + }, + "@vue/compiler-core": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", + "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", + "requires": { + "@babel/parser": "^7.25.3", + "@vue/shared": "3.5.13", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + }, + "dependencies": { + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + } + } + }, + "@vue/compiler-dom": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", + "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", + "requires": { + "@vue/compiler-core": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "@vue/compiler-sfc": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", + "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", + "requires": { + "@babel/parser": "^7.25.3", + "@vue/compiler-core": "3.5.13", + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.11", + "postcss": "^8.4.48", + "source-map-js": "^1.2.0" + }, + "dependencies": { + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" } } }, + "@vue/compiler-ssr": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz", + "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==", + "requires": { + "@vue/compiler-dom": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "@vue/compiler-vue2": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", + "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", + "dev": true, + "requires": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, "@vue/component-compiler-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz", @@ -27048,72 +27705,263 @@ } } }, - "@vue/test-utils": { - "version": "1.0.0-beta.29", - "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-1.0.0-beta.29.tgz", - "integrity": "sha512-yX4sxEIHh4M9yAbLA/ikpEnGKMNBCnoX98xE1RwxfhQVcn0MaXNSj1Qmac+ZydTj6VBSEVukchBogXBTwc+9iA==", - "dev": true, - "requires": { - "dom-event-types": "^1.0.0", - "lodash": "^4.17.4" - } + "@vue/devtools-api": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.1.tgz", + "integrity": "sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==" }, - "@vue/vue2-jest": { - "version": "27.0.0", - "resolved": "https://registry.npmjs.org/@vue/vue2-jest/-/vue2-jest-27.0.0.tgz", - "integrity": "sha512-r8YGOuqEWpAf2wGfgxfOL6Jce3WYOMcYji2qd8kuDe466ZsybHFeMryMJi6JrELOOI+MCA/8eFsSOx1KoJa7Dg==", + "@vue/language-core": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.1.6.tgz", + "integrity": "sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg==", "dev": true, "requires": { - "@babel/plugin-transform-modules-commonjs": "^7.2.0", - "@vue/component-compiler-utils": "^3.1.0", - "chalk": "^2.1.0", - "css-tree": "^2.0.1", - "source-map": "0.5.6" + "@volar/language-core": "~2.4.1", + "@vue/compiler-dom": "^3.4.0", + "@vue/compiler-vue2": "^2.7.16", + "@vue/shared": "^3.4.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1" }, "dependencies": { - "css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "requires": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" + "balanced-match": "^1.0.0" } }, - "mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "dev": true + "minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } }, - "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", "dev": true } } }, - "@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "@vue/language-server": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@vue/language-server/-/language-server-2.1.6.tgz", + "integrity": "sha512-xRtugvuwFs9KqJ5JMmO9q2b5IrhNLaj/+iqrnBEfWPFRCsywzFABrZFgI7huqsndSdO5uiBkkOkJVcruB0ULFw==", "dev": true, - "peer": true, "requires": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "@volar/language-core": "~2.4.1", + "@volar/language-server": "~2.4.1", + "@volar/test-utils": "~2.4.1", + "@vue/language-core": "2.1.6", + "@vue/language-service": "2.1.6", + "@vue/typescript-plugin": "2.1.6", + "vscode-languageserver-protocol": "^3.17.5", + "vscode-uri": "^3.0.8" } }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", - "dev": true, - "peer": true + "@vue/language-service": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@vue/language-service/-/language-service-2.1.6.tgz", + "integrity": "sha512-FZ3Fn0MslS/fdBm0U2A/JUmq0HBtvkm/6OcHfw23mE7olm0yCAOV0i8xKqqbrwZeSDoEfk48zzTSEE9Zj6RmBg==", + "dev": true, + "requires": { + "@volar/language-core": "~2.4.1", + "@volar/language-service": "~2.4.1", + "@volar/typescript": "~2.4.1", + "@vue/compiler-dom": "^3.4.0", + "@vue/language-core": "2.1.6", + "@vue/shared": "^3.4.0", + "@vue/typescript-plugin": "2.1.6", + "computeds": "^0.0.1", + "path-browserify": "^1.0.1", + "volar-service-css": "0.0.62", + "volar-service-emmet": "0.0.62", + "volar-service-html": "0.0.62", + "volar-service-json": "0.0.62", + "volar-service-pug": "0.0.62", + "volar-service-pug-beautify": "0.0.62", + "volar-service-typescript": "0.0.62", + "volar-service-typescript-twoslash-queries": "0.0.62", + "vscode-html-languageservice": "^5.2.0", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" + }, + "dependencies": { + "path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + } + } }, - "@webassemblyjs/helper-api-error": { + "@vue/reactivity": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.13.tgz", + "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==", + "requires": { + "@vue/shared": "3.5.13" + } + }, + "@vue/runtime-core": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.13.tgz", + "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==", + "requires": { + "@vue/reactivity": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "@vue/runtime-dom": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz", + "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==", + "requires": { + "@vue/reactivity": "3.5.13", + "@vue/runtime-core": "3.5.13", + "@vue/shared": "3.5.13", + "csstype": "^3.1.3" + } + }, + "@vue/server-renderer": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz", + "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==", + "requires": { + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "@vue/shared": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz", + "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==" + }, + "@vue/test-utils": { + "version": "1.0.0-beta.29", + "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-1.0.0-beta.29.tgz", + "integrity": "sha512-yX4sxEIHh4M9yAbLA/ikpEnGKMNBCnoX98xE1RwxfhQVcn0MaXNSj1Qmac+ZydTj6VBSEVukchBogXBTwc+9iA==", + "dev": true, + "requires": { + "dom-event-types": "^1.0.0", + "lodash": "^4.17.4" + } + }, + "@vue/typescript-plugin": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@vue/typescript-plugin/-/typescript-plugin-2.1.6.tgz", + "integrity": "sha512-FGwinnIuwZPELbRPZmtA+G4YyLT+lxjGSZQpNvgrzvy3MZBJZzm4UU87DIA7Lb2xbbYpTMAM6P6TAWwioCNZIg==", + "dev": true, + "requires": { + "@volar/typescript": "~2.4.1", + "@vue/language-core": "2.1.6", + "@vue/shared": "^3.4.0" + } + }, + "@vueuse/components": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/@vueuse/components/-/components-11.3.0.tgz", + "integrity": "sha512-sqaGtWPgobXvZmv3atcjW8YW0ypecFuB286OEKFXaPrLsA5b2Y+xAvHvq5V7d+VJRKt705gCK3BNBjxu3g1PdQ==", + "requires": { + "@vueuse/core": "11.3.0", + "@vueuse/shared": "11.3.0", + "vue-demi": ">=0.14.10" + }, + "dependencies": { + "vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "requires": {} + } + } + }, + "@vueuse/core": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-11.3.0.tgz", + "integrity": "sha512-7OC4Rl1f9G8IT6rUfi9JrKiXy4bfmHhZ5x2Ceojy0jnd3mHNEvV4JaRygH362ror6/NZ+Nl+n13LPzGiPN8cKA==", + "requires": { + "@types/web-bluetooth": "^0.0.20", + "@vueuse/metadata": "11.3.0", + "@vueuse/shared": "11.3.0", + "vue-demi": ">=0.14.10" + }, + "dependencies": { + "vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "requires": {} + } + } + }, + "@vueuse/integrations": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-11.3.0.tgz", + "integrity": "sha512-5fzRl0apQWrDezmobchoiGTkGw238VWESxZHazfhP3RM7pDSiyXy18QbfYkILoYNTd23HPAfQTJpkUc5QbkwTw==", + "requires": { + "@vueuse/core": "11.3.0", + "@vueuse/shared": "11.3.0", + "vue-demi": ">=0.14.10" + }, + "dependencies": { + "vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "requires": {} + } + } + }, + "@vueuse/metadata": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-11.3.0.tgz", + "integrity": "sha512-pwDnDspTqtTo2HwfLw4Rp6yywuuBdYnPYDq+mO38ZYKGebCUQC/nVj/PXSiK9HX5otxLz8Fn7ECPbjiRz2CC3g==" + }, + "@vueuse/shared": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-11.3.0.tgz", + "integrity": "sha512-P8gSSWQeucH5821ek2mn/ciCk+MS/zoRKqdQIM3bHq6p7GXDAJLmnRRKmF5F65sAVJIfzQlwR3aDzwCn10s8hA==", + "requires": { + "vue-demi": ">=0.14.10" + }, + "dependencies": { + "vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "requires": {} + } + } + }, + "@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "peer": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true, + "peer": true + }, + "@webassemblyjs/helper-api-error": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", @@ -27386,18 +28234,17 @@ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, + "@yr/monotone-cubic-spline": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@yr/monotone-cubic-spline/-/monotone-cubic-spline-1.0.3.tgz", + "integrity": "sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA==" + }, "abab": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", "dev": true }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, "accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -27408,6 +28255,12 @@ "negotiator": "0.6.3" } }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, "acorn-globals": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", @@ -27416,14 +28269,6 @@ "requires": { "acorn": "^7.1.1", "acorn-walk": "^7.1.1" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - } } }, "acorn-walk": { @@ -27432,45 +28277,6 @@ "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", "dev": true }, - "adjust-sourcemap-loader": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-2.0.0.tgz", - "integrity": "sha512-4hFsTsn58+YjrU9qKzML2JSSDqKvN8mUGQ0nNIrfPi8hmIONT4L3uUaT6MKdMsZ9AjsU6D2xDkZxCkbQPxChrA==", - "dev": true, - "requires": { - "assert": "1.4.1", - "camelcase": "5.0.0", - "loader-utils": "1.2.3", - "object-path": "0.11.4", - "regex-parser": "2.2.10" - }, - "dependencies": { - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "dev": true, - "requires": { - "util": "0.10.3" - } - }, - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, "agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", @@ -27480,31 +28286,6 @@ "debug": "4" } }, - "agentkeepalive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", - "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -27580,63 +28361,37 @@ "color-convert": "^1.9.0" } }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, "anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "apexcharts": { - "version": "3.35.4", - "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.35.4.tgz", - "integrity": "sha512-dsXjETHF2OmKtxNv66wBeFGU2qtZQnr6kp/vcNY05GWs4vcBepg54qNgOJ2Gp/gXskiGw/frrmIKGi8lJ/UDnQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-4.1.0.tgz", + "integrity": "sha512-TE0q0cXeS5k/AByLqlZAQ/aRQfdD3z0Ajd1uQWWZEjxiIC5qcBpMrTaG+aT+c3golqkvLH3u6kxDW8HBrggpLw==", "requires": { - "svg.draggable.js": "^2.2.2", - "svg.easing.js": "^2.0.0", - "svg.filter.js": "^2.0.2", - "svg.pathmorphing.js": "^0.1.3", - "svg.resize.js": "^1.4.3", - "svg.select.js": "^3.0.1" + "@svgdotjs/svg.draggable.js": "^3.0.4", + "@svgdotjs/svg.filter.js": "^3.0.8", + "@svgdotjs/svg.js": "^3.2.4", + "@svgdotjs/svg.resize.js": "^2.0.2", + "@svgdotjs/svg.select.js": "^4.0.1", + "@yr/monotone-cubic-spline": "^1.0.3" } }, - "aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true, - "optional": true, - "peer": true - }, - "are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } + "arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" }, "argparse": { "version": "1.0.10", @@ -27647,11 +28402,20 @@ "sprintf-js": "~1.0.2" } }, - "arity-n": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz", - "integrity": "sha1-2edrEXM+CFacCEeuezmyhgswt0U=", - "dev": true + "aria-hidden": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "requires": { + "tslib": "^2.0.0" + }, + "dependencies": { + "tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + } + } }, "arr-diff": { "version": "4.0.0", @@ -27708,17 +28472,6 @@ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, "asn1.js": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", @@ -27766,14 +28519,6 @@ } } }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true, - "peer": true - }, "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", @@ -27801,14 +28546,6 @@ "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", "dev": true }, - "async-foreach": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", - "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", - "dev": true, - "optional": true, - "peer": true - }, "async-limiter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", @@ -27818,8 +28555,7 @@ "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "atob": { "version": "2.1.2", @@ -27827,46 +28563,28 @@ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true, - "optional": true, - "peer": true - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "autoprefixer": { + "version": "10.4.14", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", + "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", "dev": true, - "optional": true, - "peer": true + "requires": { + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + } }, "axios": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", - "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", + "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", "requires": { - "follow-redirects": "1.5.10" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "follow-redirects": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", - "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", - "requires": { - "debug": "=3.1.0" - } - } + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, "babel-code-frame": { @@ -28048,15 +28766,6 @@ } } }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "requires": { - "object.assign": "^4.1.0" - } - }, "babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", @@ -28150,32 +28859,10 @@ "babel-preset-current-node-syntax": "^1.0.0" } }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - }, - "dependencies": { - "core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - } - } - }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base": { "version": "0.11.2", @@ -28250,23 +28937,17 @@ "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", "dev": true }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, "big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, "bindings": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", @@ -28344,36 +29025,10 @@ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", "dev": true }, - "bootstrap": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.0.tgz", - "integrity": "sha512-UnBV3E3v4STVNQdms6jSGO2CvOkjUMdDAVR2V5N4uCMdaIkaQjbcEAMqRimDHIs4uqBYzDAKCQwCB+97tJgHQw==", - "requires": {} - }, - "bootstrap-vue": { - "version": "2.21.2", - "resolved": "https://registry.npmjs.org/bootstrap-vue/-/bootstrap-vue-2.21.2.tgz", - "integrity": "sha512-0Exe+4MZysqhZNXIKf4TzkvXaupxh9EHsoCRez0o5Dc0J7rlafayOEwql63qXv74CgZO8E4U8ugRNJko1vMvNw==", - "requires": { - "@nuxt/opencollective": "^0.3.2", - "bootstrap": ">=4.5.3 <5.0.0", - "popper.js": "^1.16.1", - "portal-vue": "^2.1.7", - "vue-functional-data-merge": "^3.1.0" - }, - "dependencies": { - "bootstrap": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.0.tgz", - "integrity": "sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw==" - } - } - }, "brace-expansion": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", - "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -28383,7 +29038,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "requires": { "fill-range": "^7.0.1" } @@ -28515,16 +29169,24 @@ } }, "browserslist": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.0.tgz", - "integrity": "sha512-bnpOoa+DownbciXj0jVGENf8VYQnE2LNWomhYuCsMmmx9Jd9lwq0WXODuwpSsp8AVdKM2/HorrzxAfbKvWTByQ==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001313", - "electron-to-chromium": "^1.4.76", - "escalade": "^3.1.1", - "node-releases": "^2.0.2", - "picocolors": "^1.0.0" + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + } + }, + "browserslist-to-esbuild": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/browserslist-to-esbuild/-/browserslist-to-esbuild-2.1.1.tgz", + "integrity": "sha512-KN+mty6C3e9AN8Z5dI1xeN15ExcRNeISoC3g7V0Kax/MMF9MSoYA2G7lkTTcVUFntiEjkpI0HNgqJC1NjdyNUw==", + "dev": true, + "requires": { + "meow": "^13.0.0" } }, "bser": { @@ -28551,12 +29213,6 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/buffer-builder/-/buffer-builder-0.2.0.tgz", "integrity": "sha1-MyLNMH2Cltqx9gRhhZOyYaP63o8=", - "dev": true - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", "dev": true, "optional": true, "peer": true @@ -28597,79 +29253,6 @@ "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", "dev": true }, - "cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "dependencies": { - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "optional": true, - "peer": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true, - "peer": true - } - } - }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -28741,28 +29324,10 @@ "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", "dev": true }, - "camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "optional": true, - "peer": true - } - } + "camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" }, "caniuse-api": { "version": "3.0.0", @@ -28777,24 +29342,15 @@ } }, "caniuse-lite": { - "version": "1.0.30001313", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001313.tgz", - "integrity": "sha512-rI1UN0koZUiKINjysQDuRi2VeSCce3bYJNmDcj3PIKREiAmjakugBul1QSkg/fPrlULYl6oWfGg3PbgOSY9X4Q==", + "version": "1.0.30001589", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001589.tgz", + "integrity": "sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==", "dev": true }, "case-anything": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-2.1.10.tgz", - "integrity": "sha512-JczJwVrCP0jPKh05McyVsuOg6AYosrB9XWZKbQzXeDAm2ClE/PJE/BcrrQrVyGYH7Jg8V/LDupmyL4kFlVsVFQ==", - "peer": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true, - "optional": true, - "peer": true + "version": "2.1.13", + "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-2.1.13.tgz", + "integrity": "sha512-zlOQ80VrQ2Ue+ymH5OuM/DlDq64mEm+B9UTdHULv5osUMD6HalNTblf2b1u/m6QecjsnOkBpqVZ+XPwIVsy7Ng==" }, "chalk": { "version": "2.4.2", @@ -28813,19 +29369,45 @@ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true }, + "character-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", + "integrity": "sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==", + "dev": true, + "requires": { + "is-regex": "^1.0.3" + } + }, "charenc": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", "dev": true }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, - "optional": true, - "peer": true + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + } + } }, "chrome-trace-event": { "version": "1.0.2", @@ -28870,13 +29452,20 @@ "static-extend": "^0.1.1" } }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "optional": true, - "peer": true + "class-variance-authority": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.0.tgz", + "integrity": "sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==", + "requires": { + "clsx": "2.0.0" + }, + "dependencies": { + "clsx": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", + "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==" + } + } }, "cliui": { "version": "7.0.4", @@ -28889,6 +29478,11 @@ "wrap-ansi": "^7.0.0" } }, + "clsx": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", + "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==" + }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -28969,19 +29563,10 @@ "simple-swizzle": "^0.2.2" } }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true, - "optional": true, - "peer": true - }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, "requires": { "delayed-stream": "~1.0.0" } @@ -29004,15 +29589,6 @@ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", "dev": true }, - "compose-function": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz", - "integrity": "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=", - "dev": true, - "requires": { - "arity-n": "^1.0.4" - } - }, "compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", @@ -29054,11 +29630,16 @@ } } }, + "computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", + "dev": true + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { "version": "1.6.2", @@ -29081,41 +29662,18 @@ "globs": "^0.1.2" } }, - "config-chain": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.11.tgz", - "integrity": "sha1-q6CXR9++TD5w52am5BWG4YWfxvI=", - "dev": true, - "requires": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, "connect-history-api-fallback": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", "dev": true }, - "consola": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", - "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==" - }, "console-browserify": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", "dev": true }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true, - "optional": true, - "peer": true - }, "consolidate": { "version": "0.15.1", "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz", @@ -29236,26 +29794,18 @@ "dev": true }, "core-js": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz", - "integrity": "sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==" + "version": "3.36.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.36.0.tgz", + "integrity": "sha512-mt7+TUBbTFg5+GngsAxeKBTl5/VS0guFeJacYge9OmHb+m058UwwIm41SE9T4Den7ClatV57B6TYTuJ0CX1MAw==", + "dev": true }, "core-js-compat": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz", - "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==", + "version": "3.36.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.0.tgz", + "integrity": "sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==", "dev": true, "requires": { - "browserslist": "^4.19.1", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } + "browserslist": "^4.22.3" } }, "core-util-is": { @@ -29310,10 +29860,9 @@ } }, "crelt": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.5.tgz", - "integrity": "sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA==", - "peer": true + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", + "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==" }, "cropperjs": { "version": "1.5.12", @@ -29364,26 +29913,6 @@ "randomfill": "^1.0.3" } }, - "css": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", - "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "source-map": "^0.6.1", - "source-map-resolve": "^0.5.2", - "urix": "^0.1.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, "css-color-names": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", @@ -29469,6 +29998,19 @@ } } }, + "css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + } + }, "css-select-base-adapter": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", @@ -29503,11 +30045,16 @@ } } }, + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true + }, "cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" }, "cssnano-util-get-arguments": { "version": "4.0.0", @@ -29593,9 +30140,9 @@ } }, "csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, "cyclist": { "version": "1.0.1", @@ -29603,32 +30150,10 @@ "integrity": "sha512-NJGVKPS81XejHcLhaLJS7plab0fK3slPh11mESeeDq2W4ZI5kUKK/LRRdVDvjJseojbPB7ZwjnyOybg3Igea/A==", "dev": true }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, "dash-get": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/dash-get/-/dash-get-1.0.2.tgz", - "integrity": "sha512-4FbVrHDwfOASx7uQVxeiCTo7ggSdYZbqs8lH+WU6ViypPlDbe9y6IP5VVUDQBv9DcnyaiPT5XT0UWHgJ64zLeQ==", - "peer": true - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "assert-plus": "^1.0.0" - } + "integrity": "sha512-4FbVrHDwfOASx7uQVxeiCTo7ggSdYZbqs8lH+WU6ViypPlDbe9y6IP5VVUDQBv9DcnyaiPT5XT0UWHgJ64zLeQ==" }, "data-urls": { "version": "2.0.0", @@ -29641,17 +30166,6 @@ "whatwg-url": "^8.0.0" } }, - "date-fns": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", - "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==" - }, - "date-fns-tz": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/date-fns-tz/-/date-fns-tz-1.3.0.tgz", - "integrity": "sha512-r6ye6PmGEvkF467/41qzU71oGwv9kHTnV3vtSZdyV6VThwPID47ZH7FtR7zQWrhgOUWkYySm2ems2w6ZfNUqoA==", - "requires": {} - }, "de-indent": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", @@ -29680,28 +30194,6 @@ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true, - "optional": true, - "peer": true - } - } - }, "decimal.js": { "version": "10.3.1", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", @@ -29741,9 +30233,9 @@ "dev": true }, "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==" }, "define-lazy-prop": { "version": "2.0.0", @@ -29770,19 +30262,15 @@ "is-descriptor": "^0.1.0" } }, + "defu": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==" + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true, - "optional": true, - "peer": true + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "depd": { "version": "1.1.2", @@ -29824,6 +30312,11 @@ "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true }, + "didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, "diff-sequences": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", @@ -29849,6 +30342,11 @@ } } }, + "dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, "dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", @@ -29880,6 +30378,25 @@ "integrity": "sha512-2G2Vwi2zXTHBGqXHsJ4+ak/iP0N8Ar+G8a7LiD2oup5o4sQWytwqqrZu/O6hIMV0KMID2PL69OhpshLO0n7UJQ==", "dev": true }, + "dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "requires": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "dependencies": { + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true + } + } + }, "domain-browser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", @@ -29887,9 +30404,9 @@ "dev": true }, "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "dev": true }, "domexception": { @@ -29909,6 +30426,26 @@ } } }, + "domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "requires": { + "domelementtype": "^2.3.0" + } + }, + "domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "requires": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + } + }, "dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", @@ -29918,11 +30455,6 @@ "is-obj": "^2.0.0" } }, - "dropzone": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/dropzone/-/dropzone-4.3.0.tgz", - "integrity": "sha1-SLC48q0JKHLktTW2cqfD8aHWfJE=" - }, "duplexify": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", @@ -29935,42 +30467,6 @@ "stream-shift": "^1.0.0" } }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "editorconfig": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.13.3.tgz", - "integrity": "sha512-WkjsUNVCu+ITKDj73QDvi0trvpdDWdkDyHybDGSXPfekLCqwmpD7CP7iPbvBgosNuLcI96XTDwNa75JyFl7tEQ==", - "dev": true, - "requires": { - "bluebird": "^3.0.5", - "commander": "^2.9.0", - "lru-cache": "^3.2.0", - "semver": "^5.1.0", - "sigmund": "^1.0.1" - }, - "dependencies": { - "lru-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-3.2.0.tgz", - "integrity": "sha1-cXibO39Tmb7IVl3aOKow0qCX7+4=", - "dev": true, - "requires": { - "pseudomap": "^1.0.1" - } - } - } - }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -29978,9 +30474,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.76", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.76.tgz", - "integrity": "sha512-3Vftv7cenJtQb+k00McEBZ2vVmZ/x+HEF7pcZONZIkOsESqAqVuACmBxMv0JhzX7u0YltU0vSqRqgBSTAhFUjA==", + "version": "1.4.679", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.679.tgz", + "integrity": "sha512-NhQMsz5k0d6m9z3qAxnsOR/ebal4NAGsrNVRwcDo4Kc/zQ7KdsTKZUxZoygHcVRb0QDW3waEDIcE3isZ79RP6g==", "dev": true }, "elliptic": { @@ -30012,6 +30508,16 @@ "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", "dev": true }, + "emmet": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/emmet/-/emmet-2.4.11.tgz", + "integrity": "sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==", + "dev": true, + "requires": { + "@emmetio/abbreviation": "^2.3.3", + "@emmetio/css-abbreviation": "^2.1.8" + } + }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", @@ -30030,30 +30536,6 @@ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", "dev": true }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "iconv-lite": "^0.6.2" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -30080,22 +30562,6 @@ "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", "dev": true }, - "env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "optional": true, - "peer": true - }, - "err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true, - "optional": true, - "peer": true - }, "errno": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", @@ -30179,38 +30645,6 @@ "is-symbol": "^1.0.2" } }, - "es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "dev": true, - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dev": true, - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, "es6-templates": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/es6-templates/-/es6-templates-0.2.3.tgz", @@ -30222,33 +30656,34 @@ } }, "esbuild": { - "version": "0.18.16", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.16.tgz", - "integrity": "sha512-1xLsOXrDqwdHxyXb/x/SOyg59jpf/SH7YMvU5RNSU7z3TInaASNJWNFJ6iRvLvLETZMasF3d1DdZLg7sgRimRQ==", - "dev": true, - "requires": { - "@esbuild/android-arm": "0.18.16", - "@esbuild/android-arm64": "0.18.16", - "@esbuild/android-x64": "0.18.16", - "@esbuild/darwin-arm64": "0.18.16", - "@esbuild/darwin-x64": "0.18.16", - "@esbuild/freebsd-arm64": "0.18.16", - "@esbuild/freebsd-x64": "0.18.16", - "@esbuild/linux-arm": "0.18.16", - "@esbuild/linux-arm64": "0.18.16", - "@esbuild/linux-ia32": "0.18.16", - "@esbuild/linux-loong64": "0.18.16", - "@esbuild/linux-mips64el": "0.18.16", - "@esbuild/linux-ppc64": "0.18.16", - "@esbuild/linux-riscv64": "0.18.16", - "@esbuild/linux-s390x": "0.18.16", - "@esbuild/linux-x64": "0.18.16", - "@esbuild/netbsd-x64": "0.18.16", - "@esbuild/openbsd-x64": "0.18.16", - "@esbuild/sunos-x64": "0.18.16", - "@esbuild/win32-arm64": "0.18.16", - "@esbuild/win32-ia32": "0.18.16", - "@esbuild/win32-x64": "0.18.16" + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "requires": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" } }, "escalade": { @@ -30423,6 +30858,11 @@ } } }, + "exifr": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/exifr/-/exifr-7.1.3.tgz", + "integrity": "sha512-g/aje2noHivrRSLbAUtBPWFbxKdKhgj/xr1vATDdUXPOFYJlQ62Ft0oy+72V6XLIpDJfHs6gXLbBLAolqOXYRw==" + }, "exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", @@ -30537,31 +30977,6 @@ } } }, - "ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", - "dev": true, - "requires": { - "type": "^2.0.0" - }, - "dependencies": { - "type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz", - "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==", - "dev": true - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true, - "optional": true, - "peer": true - }, "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", @@ -30641,46 +31056,33 @@ } } }, - "extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "optional": true, - "peer": true, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", "requires": { - "@types/yauzl": "^2.9.1", - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" }, "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "optional": true, - "peer": true, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "requires": { - "pump": "^3.0.0" + "is-glob": "^4.0.1" } } } }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true, - "optional": true, - "peer": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, "fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", @@ -30699,6 +31101,14 @@ "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", "dev": true }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "requires": { + "reusify": "^1.0.4" + } + }, "faye-websocket": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", @@ -30717,17 +31127,6 @@ "bser": "2.1.1" } }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "pend": "~1.2.0" - } - }, "figgy-pudding": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", @@ -30742,15 +31141,14 @@ "optional": true }, "filesize": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.1.0.tgz", - "integrity": "sha512-LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg==" + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-10.1.0.tgz", + "integrity": "sha512-GTLKYyBSDz3nPhlLVPjPWZCnhkd9TrrRArNcy8Z+J2cqScB7h2McAzR6NBX6nYOoWafql0roY8hrocxnZBv9CQ==" }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "requires": { "to-regex-range": "^5.0.1" } @@ -30953,6 +31351,11 @@ } } }, + "flexsearch": { + "version": "0.7.43", + "resolved": "https://registry.npmjs.org/flexsearch/-/flexsearch-0.7.43.tgz", + "integrity": "sha512-c5o/+Um8aqCSOXGcZoqZOm+NqtVwNsvVpWv6lfmSclU954O3wvQKxxK8zj74fPaSJbXpSLTs4PRhh+wnoCXnKg==" + }, "flush-write-stream": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", @@ -30964,10 +31367,9 @@ } }, "follow-redirects": { - "version": "1.14.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", - "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", - "dev": true + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==" }, "font-awesome-filetypes": { "version": "2.1.0", @@ -30980,24 +31382,13 @@ "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", "dev": true }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true, - "optional": true, - "peer": true - }, "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "optional": true, - "peer": true, + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "requires": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", + "combined-stream": "^1.0.8", "mime-types": "^2.1.12" } }, @@ -31007,6 +31398,12 @@ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "dev": true }, + "fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true + }, "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", @@ -31032,17 +31429,6 @@ "readable-stream": "^2.0.0" } }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "minipass": "^3.0.0" - } - }, "fs-write-stream-atomic": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", @@ -31058,21 +31444,18 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "optional": true }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "function.prototype.name": { "version": "1.1.5", @@ -31093,39 +31476,11 @@ "dev": true }, "fuse.js": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-2.7.4.tgz", - "integrity": "sha1-luQg/efvARrEnCWKYhMU/ldlNvk=" - }, - "gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - } - }, - "gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", - "dev": true, + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.0.0.tgz", + "integrity": "sha512-14F4hBIxqKvD4Zz/XjDc3y94mNZN6pRv3U13Udo0lNLCWRBUsrMv2xwcF/y/Z5sV6+FQW+/ow68cHpm4sunt8Q==", "optional": true, - "peer": true, - "requires": { - "globule": "^1.0.0" - } + "peer": true }, "gensync": { "version": "1.0.0-beta.2", @@ -31156,14 +31511,6 @@ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true, - "optional": true, - "peer": true - }, "get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -31186,22 +31533,10 @@ "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", "dev": true }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -31211,6 +31546,14 @@ "path-is-absolute": "^1.0.0" } }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "requires": { + "is-glob": "^4.0.3" + } + }, "glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", @@ -31261,27 +31604,6 @@ "glob": "^7.1.1" } }, - "globule": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz", - "integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "glob": "~7.1.1", - "lodash": "~4.17.10", - "minimatch": "~3.0.2" - } - }, - "google-protobuf": { - "version": "3.20.1", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.20.1.tgz", - "integrity": "sha512-XMf1+O32FjYIV3CYu6Tuh5PNbfNEU5Xu22X+Xkdb/DUexFlCzhvv7d5Iirm4AOwn8lv4al1YvIhzGrg2j9Zfzw==", - "dev": true, - "optional": true, - "peer": true - }, "graceful-fs": { "version": "4.2.9", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", @@ -31300,39 +31622,10 @@ "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true, - "optional": true, - "peer": true - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, - "hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true, - "optional": true, - "peer": true - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "requires": { "function-bind": "^1.1.1" } @@ -31390,14 +31683,6 @@ "has-symbols": "^1.0.2" } }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true, - "optional": true, - "peer": true - }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -31635,14 +31920,6 @@ } } }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true, - "optional": true, - "peer": true - }, "http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", @@ -31698,19 +31975,6 @@ "debug": "4" } }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, "https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", @@ -31733,17 +31997,6 @@ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true }, - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "ms": "^2.0.0" - } - }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -31783,7 +32036,9 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "import-cwd": { "version": "2.1.0", @@ -31827,14 +32082,6 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "optional": true, - "peer": true - }, "indexes-of": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", @@ -31851,7 +32098,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -31860,8 +32106,7 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { "version": "1.3.8", @@ -32050,6 +32295,14 @@ "has-bigints": "^1.0.1" } }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, "is-boolean-object": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", @@ -32087,10 +32340,9 @@ } }, "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "dev": true, + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", "requires": { "has": "^1.0.3" } @@ -32152,6 +32404,16 @@ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true }, + "is-expression": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", + "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "object-assign": "^4.1.1" + } + }, "is-extendable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", @@ -32163,8 +32425,7 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-fullwidth-code-point": { "version": "3.0.0", @@ -32182,19 +32443,10 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, "requires": { "is-extglob": "^2.1.1" } }, - "is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", - "dev": true, - "optional": true, - "peer": true - }, "is-negative-zero": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", @@ -32204,8 +32456,7 @@ "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "is-number-object": { "version": "1.0.7", @@ -32248,14 +32499,6 @@ } } }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true, - "optional": true, - "peer": true - }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -32363,14 +32606,6 @@ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true, - "optional": true, - "peer": true - }, "istanbul-lib-coverage": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", @@ -33788,25 +34023,10 @@ } } }, - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", - "dev": true, - "optional": true, - "peer": true - }, - "js-beautify": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.7.4.tgz", - "integrity": "sha512-6YX1g+lIl0/JDxjFFbgj7fz6i0bWFa2Hdc7PfGqFhynaEiYe1NJ3R1nda0VGaRiGU82OllR+EGDoWFpGr3k5Kg==", - "dev": true, - "requires": { - "config-chain": "~1.1.5", - "editorconfig": "^0.13.2", - "mkdirp": "~0.5.0", - "nopt": "~3.0.1" - } + "jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==" }, "js-tokens": { "version": "3.0.2", @@ -33824,14 +34044,6 @@ "esprima": "^4.0.0" } }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "optional": true, - "peer": true - }, "jsdom": { "version": "16.7.0", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", @@ -33896,7 +34108,7 @@ "jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "dev": true }, "json-parse-better-errors": { @@ -33911,50 +34123,28 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true, - "optional": true, - "peer": true - }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true, - "optional": true, - "peer": true - }, "json5": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.2.tgz", - "integrity": "sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } + "jsonc-parser": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.1.tgz", + "integrity": "sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==", + "dev": true + }, + "kdbush": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz", + "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==" }, "killable": { "version": "1.0.1", @@ -33977,20 +34167,14 @@ "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true }, - "klona": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", - "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", - "dev": true - }, "laravel-vite-plugin": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-0.8.0.tgz", - "integrity": "sha512-6VjLI+azBpeK6rWBiKcb/En5GnTdYpL0U4zS8gXYvb2/VSq4mlau5H3NWpSktUDBMM1b97LLgICx5zevi8IY0w==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-1.0.5.tgz", + "integrity": "sha512-Zv+to82YLBknDCZ6g3iwOv9wZ7f6EWStb9pjSm7MGe9Mfoy5ynT2ssZbGsMr1udU6rDg9HOoYEVGw5Qf+p9zbw==", "dev": true, "requires": { "picocolors": "^1.0.0", - "vite-plugin-full-reload": "^1.0.5" + "vite-plugin-full-reload": "^1.1.0" } }, "last-call-webpack-plugin": { @@ -34013,9 +34197,9 @@ } }, "leaflet": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.4.0.tgz", - "integrity": "sha512-x9j9tGY1+PDLN9pcWTx9/y6C5nezoTMB8BLK5jTakx+H7bPlnbCHfi9Hjg+Qt36sgDz/cb9lrSpNQXmk45Tvhw==" + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", + "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==" }, "leven": { "version": "3.1.0", @@ -34033,11 +34217,15 @@ "type-check": "~0.3.2" } }, + "lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==" + }, "lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, "linkify-it": { "version": "4.0.1", @@ -34096,10 +34284,10 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "lodash.clone": { + "lodash.clonedeep": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz", - "integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y=" + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" }, "lodash.debounce": { "version": "4.0.8", @@ -34107,6 +34295,11 @@ "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", "dev": true }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -34135,6 +34328,20 @@ "yallist": "^2.1.2" } }, + "lucide-vue-next": { + "version": "0.363.0", + "resolved": "https://registry.npmjs.org/lucide-vue-next/-/lucide-vue-next-0.363.0.tgz", + "integrity": "sha512-dc5KgrXhCPMEzKz6voDVvxXkwEr7n+Q4b7qLyS2e3DTlH9GMFydS4fHoSvpZR/a5M7i1EOpFI8/BA8SPjAOwEQ==", + "requires": {} + }, + "magic-string": { + "version": "0.30.12", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", + "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", + "requires": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -34155,55 +34362,7 @@ "make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "peer": true - }, - "make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true, - "peer": true - } - } + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" }, "makeerror": { "version": "1.0.12", @@ -34229,14 +34388,6 @@ "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", "dev": true }, - "map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true, - "optional": true, - "peer": true - }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", @@ -34275,11 +34426,6 @@ "resolved": "https://registry.npmjs.org/markdown-it-task-lists/-/markdown-it-task-lists-2.1.1.tgz", "integrity": "sha512-TxFAc76Jnhb2OUu+n3yz9RMu4CwGfaT788br6HhEDlvWfdeJcLUsxk1Hgw2yJio0OXsxv7pyIPmvECY7bMbluA==" }, - "marker-clusterer-plus": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/marker-clusterer-plus/-/marker-clusterer-plus-2.1.4.tgz", - "integrity": "sha1-+O/3TVmdqzt9Dj/tUmTqDnBPXWc=" - }, "md5": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", @@ -34349,216 +34495,10 @@ } }, "meow": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", - "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize": "^1.2.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "optional": true, - "peer": true - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true, - "optional": true, - "peer": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "optional": true, - "peer": true - }, - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "optional": true, - "peer": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "optional": true, - "peer": true - } - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true, - "peer": true - } - } + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", + "dev": true }, "merge-descriptors": { "version": "1.0.1", @@ -34592,8 +34532,7 @@ "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, "methods": { "version": "1.1.2", @@ -34602,13 +34541,12 @@ "dev": true }, "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" } }, "miller-rabin": { @@ -34638,14 +34576,20 @@ "mime-db": { "version": "1.51.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "dev": true + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" + }, + "mime-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mime-match/-/mime-match-1.0.2.tgz", + "integrity": "sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==", + "requires": { + "wildcard": "^1.1.0" + } }, "mime-types": { "version": "2.1.34", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dev": true, "requires": { "mime-db": "1.51.0" } @@ -34656,13 +34600,11 @@ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, - "min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true, - "optional": true, - "peer": true + "mini-svg-data-uri": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", + "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", + "dev": true }, "minimalistic-assert": { "version": "1.0.1", @@ -34680,7 +34622,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -34691,130 +34632,6 @@ "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", "dev": true }, - "minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "dependencies": { - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "optional": true, - "peer": true - } - } - }, - "minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true, - "peer": true - } - } - }, - "minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "encoding": "^0.1.12", - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" - } - }, - "minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true, - "peer": true - } - } - }, "mississippi": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", @@ -34929,7 +34746,14 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "dev": true }, "multicast-dns": { "version": "6.2.3", @@ -34947,6 +34771,21 @@ "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", "dev": true }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "namespace-emitter": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/namespace-emitter/-/namespace-emitter-2.0.1.tgz", + "integrity": "sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==" + }, "nan": { "version": "2.17.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", @@ -34955,9 +34794,9 @@ "optional": true }, "nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==" }, "nanomatch": { "version": "1.2.13", @@ -35053,171 +34892,12 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true - }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, - "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" - }, - "node-gyp": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", - "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^9.1.0", - "nopt": "^5.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz", - "integrity": "sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.2.tgz", - "integrity": "sha512-aSPRm2CvA9R8QyU5eXMFPd+cYkyxLsXHd2l5/FOH2V/eml//M04G6KZOmTap07O1PvEwNcl2NndyLfK8g3QrKA==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "ansi-regex": "^5.0.1", - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "abbrev": "1" - } - }, - "npmlog": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.1.tgz", - "integrity": "sha512-BTHDvY6nrRHuRfyjt1MAufLxYdVXZfd099H4+i1f0lPywNQyI4foeNXJRObB/uy+TYqUW0vAD9gbdSOXPst7Eg==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.0", - "set-blocking": "^2.0.0" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true, - "peer": true - } - } - }, "node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -35256,137 +34936,15 @@ } }, "node-releases": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", - "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, - "node-sass": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-7.0.1.tgz", - "integrity": "sha512-uMy+Xt29NlqKCFdFRZyXKOTqGt+QaKHexv9STj2WeLottnlqZEEWx6Bj0MXNthmFRRdM/YwyNo/8Tr46TOM0jQ==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "async-foreach": "^0.1.3", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "gaze": "^1.0.0", - "get-stdin": "^4.0.1", - "glob": "^7.0.3", - "lodash": "^4.17.15", - "meow": "^9.0.0", - "nan": "^2.13.2", - "node-gyp": "^8.4.1", - "npmlog": "^5.0.0", - "request": "^2.88.0", - "sass-graph": "4.0.0", - "stdout-stream": "^1.4.0", - "true-case-path": "^1.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "optional": true, - "peer": true - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "optional": true, - "peer": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "requires": { - "abbrev": "1" - } - }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" }, "normalize-range": { "version": "0.1.2", @@ -35403,58 +34961,18 @@ "path-key": "^3.0.0" } }, - "npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } + "nprogress": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", + "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" }, - "null-loader": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/null-loader/-/null-loader-4.0.1.tgz", - "integrity": "sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg==", + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "dependencies": { - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } + "boolbase": "^1.0.0" } }, "num2fraction": { @@ -35475,19 +34993,10 @@ "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", "dev": true }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true, - "optional": true, - "peer": true - }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-copy": { "version": "0.1.0", @@ -35511,6 +35020,11 @@ } } }, + "object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" + }, "object-inspect": { "version": "1.12.2", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", @@ -35533,12 +35047,6 @@ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, - "object-path": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.4.tgz", - "integrity": "sha1-NwrnUvvzfePqcKhhwju6iRVpGUk=", - "dev": true - }, "object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", @@ -35605,6 +35113,11 @@ "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true }, + "ohash": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-1.1.4.tgz", + "integrity": "sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==" + }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -35624,7 +35137,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1" } @@ -35816,17 +35328,6 @@ "p-limit": "^2.0.0" } }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, "p-try": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", @@ -35918,8 +35419,7 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-is-inside": { "version": "1.0.2", @@ -35936,8 +35436,7 @@ "path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "path-to-regexp": { "version": "0.1.7", @@ -35967,32 +35466,15 @@ "sha.js": "^2.4.8" } }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true, - "optional": true, - "peer": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true, - "optional": true, - "peer": true - }, "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" }, "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, "pify": { "version": "3.0.0", @@ -36018,8 +35500,7 @@ "pirates": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==" }, "pkg-dir": { "version": "4.2.0", @@ -36066,16 +35547,6 @@ } } }, - "popper.js": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", - "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==" - }, - "portal-vue": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/portal-vue/-/portal-vue-2.1.7.tgz", - "integrity": "sha512-+yCno2oB3xA7irTt0EU5Ezw22L2J51uKAacE/6hMPMoO/mx3h4rXFkkBkT4GFsMDv/vEe8TNKC3ujJJ0PTwb6g==" - }, "portfinder": { "version": "1.0.28", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", @@ -36111,13 +35582,47 @@ "dev": true }, "postcss": { - "version": "8.4.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.27.tgz", - "integrity": "sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "requires": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + } + }, + "postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "requires": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + } + }, + "postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "requires": { + "camelcase-css": "^2.0.1" + } + }, + "postcss-load-config": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "requires": { + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" + }, + "dependencies": { + "yaml": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", + "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==" + } } }, "postcss-modules-extract-imports": { @@ -36160,11 +35665,18 @@ "icss-utils": "^5.0.0" } }, + "postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "requires": { + "postcss-selector-parser": "^6.0.11" + } + }, "postcss-selector-parser": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", - "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", - "dev": true, + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", "requires": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -36173,8 +35685,12 @@ "postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "preact": { + "version": "10.18.1", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.18.1.tgz", + "integrity": "sha512-mKUD7RRkQQM6s7Rkmi7IFkoEHjuFqRQUaXamO61E6Nn7vqF/bo7EZCmSyrUnp2UWHw0O7XjZ2eeXis+m7tf4lg==" }, "prelude-ls": { "version": "1.1.2", @@ -36232,18 +35748,6 @@ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "dev": true }, - "promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - } - }, "prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -36255,28 +35759,25 @@ } }, "prosemirror-changeset": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/prosemirror-changeset/-/prosemirror-changeset-2.2.0.tgz", - "integrity": "sha512-QM7ohGtkpVpwVGmFb8wqVhaz9+6IUXcIQBGZ81YNAKYuHiFJ1ShvSzab4pKqTinJhwciZbrtBEk/2WsqSt2PYg==", - "peer": true, + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/prosemirror-changeset/-/prosemirror-changeset-2.2.1.tgz", + "integrity": "sha512-J7msc6wbxB4ekDFj+n9gTW/jav/p53kdlivvuppHsrZXCaQdVgRghoZbSS3kwrRyAstRVQ4/+u5k7YfLgkkQvQ==", "requires": { "prosemirror-transform": "^1.0.0" } }, "prosemirror-collab": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/prosemirror-collab/-/prosemirror-collab-1.3.0.tgz", - "integrity": "sha512-+S/IJ69G2cUu2IM5b3PBekuxs94HO1CxJIWOFrLQXUaUDKL/JfBx+QcH31ldBlBXyDEUl+k3Vltfi1E1MKp2mA==", - "peer": true, + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/prosemirror-collab/-/prosemirror-collab-1.3.1.tgz", + "integrity": "sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==", "requires": { "prosemirror-state": "^1.0.0" } }, "prosemirror-commands": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.5.1.tgz", - "integrity": "sha512-ga1ga/RkbzxfAvb6iEXYmrEpekn5NCwTb8w1dr/gmhSoaGcQ0VPuCzOn5qDEpC45ql2oDkKoKQbRxLJwKLpMTQ==", - "peer": true, + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.5.2.tgz", + "integrity": "sha512-hgLcPaakxH8tu6YvVAaILV2tXYsW3rAdDR8WNkeKGcgeMVQg3/TMhPdVoh7iAmfgVjZGtcOSjKiQaoeKjzd2mQ==", "requires": { "prosemirror-model": "^1.0.0", "prosemirror-state": "^1.0.0", @@ -36284,10 +35785,9 @@ } }, "prosemirror-dropcursor": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/prosemirror-dropcursor/-/prosemirror-dropcursor-1.7.1.tgz", - "integrity": "sha512-GmWk9bAwhfHwA8xmJhBFjPcebxUG9zAPYtqpIr7NTDigWZZEJCgUYyUQeqgyscLr8ZHoh9aeprX9kW7BihUT+w==", - "peer": true, + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.1.tgz", + "integrity": "sha512-M30WJdJZLyXHi3N8vxN6Zh5O8ZBbQCz0gURTfPmTIBNQ5pxrdU7A58QkNqfa98YEjSAL1HUyyU34f6Pm5xBSGw==", "requires": { "prosemirror-state": "^1.0.0", "prosemirror-transform": "^1.1.0", @@ -36295,10 +35795,9 @@ } }, "prosemirror-gapcursor": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/prosemirror-gapcursor/-/prosemirror-gapcursor-1.3.1.tgz", - "integrity": "sha512-GKTeE7ZoMsx5uVfc51/ouwMFPq0o8YrZ7Hx4jTF4EeGbXxBveUV8CGv46mSHuBBeXGmvu50guoV2kSnOeZZnUA==", - "peer": true, + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/prosemirror-gapcursor/-/prosemirror-gapcursor-1.3.2.tgz", + "integrity": "sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ==", "requires": { "prosemirror-keymap": "^1.0.0", "prosemirror-model": "^1.0.0", @@ -36307,31 +35806,29 @@ } }, "prosemirror-history": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.3.0.tgz", - "integrity": "sha512-qo/9Wn4B/Bq89/YD+eNWFbAytu6dmIM85EhID+fz9Jcl9+DfGEo8TTSrRhP15+fFEoaPqpHSxlvSzSEbmlxlUA==", - "peer": true, + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.3.2.tgz", + "integrity": "sha512-/zm0XoU/N/+u7i5zepjmZAEnpvjDtzoPWW6VmKptcAnPadN/SStsBjMImdCEbb3seiNTpveziPTIrXQbHLtU1g==", "requires": { "prosemirror-state": "^1.2.2", "prosemirror-transform": "^1.0.0", + "prosemirror-view": "^1.31.0", "rope-sequence": "^1.3.0" } }, "prosemirror-inputrules": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.2.0.tgz", - "integrity": "sha512-eAW/M/NTSSzpCOxfR8Abw6OagdG0MiDAiWHQMQveIsZtoKVYzm0AflSPq/ymqJd56/Su1YPbwy9lM13wgHOFmQ==", - "peer": true, + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.4.0.tgz", + "integrity": "sha512-6ygpPRuTJ2lcOXs9JkefieMst63wVJBgHZGl5QOytN7oSZs3Co/BYbc3Yx9zm9H37Bxw8kVzCnDsihsVsL4yEg==", "requires": { "prosemirror-state": "^1.0.0", "prosemirror-transform": "^1.0.0" } }, "prosemirror-keymap": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.1.tgz", - "integrity": "sha512-kVK6WGC+83LZwuSJnuCb9PsADQnFZllt94qPP3Rx/vLcOUV65+IbBeH2nS5cFggPyEVJhGkGrgYFRrG250WhHQ==", - "peer": true, + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.2.tgz", + "integrity": "sha512-EAlXoksqC6Vbocqc0GtzCruZEzYgrn+iiGnNjsJsH4mrnIGex4qbLdWWNza3AW5W36ZRrlBID0eM6bdKH4OStQ==", "requires": { "prosemirror-state": "^1.0.0", "w3c-keyname": "^2.2.0" @@ -36390,10 +35887,9 @@ } }, "prosemirror-menu": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.2.1.tgz", - "integrity": "sha512-sBirXxVfHalZO4f1ZS63WzewINK4182+7dOmoMeBkqYO8wqMBvBS7wQuwVOHnkMWPEh0+N0LJ856KYUN+vFkmQ==", - "peer": true, + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.2.4.tgz", + "integrity": "sha512-S/bXlc0ODQup6aiBbWVsX/eM+xJgCTAfMq/nLqaO5ID/am4wS0tTCIkzwytmao7ypEtjj39i7YbJjAgO20mIqA==", "requires": { "crelt": "^1.0.0", "prosemirror-commands": "^1.0.0", @@ -36402,38 +35898,35 @@ } }, "prosemirror-model": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.19.0.tgz", - "integrity": "sha512-/CvFGJnwc41EJSfDkQLly1cAJJJmBpZwwUJtwZPTjY2RqZJfM8HVbCreOY/jti8wTRbVyjagcylyGoeJH/g/3w==", + "version": "1.19.4", + "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.19.4.tgz", + "integrity": "sha512-RPmVXxUfOhyFdayHawjuZCxiROsm9L4FCUA6pWI+l7n2yCBsWy9VpdE1hpDHUS8Vad661YLY9AzqfjLhAKQ4iQ==", "requires": { "orderedmap": "^2.0.0" } }, "prosemirror-schema-basic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.1.tgz", - "integrity": "sha512-vYBdIHsYKSDIqYmPBC7lnwk9DsKn8PnVqK97pMYP5MLEDFqWIX75JiaJTzndBii4bRuNqhC2UfDOfM3FKhlBHg==", - "peer": true, + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.2.tgz", + "integrity": "sha512-/dT4JFEGyO7QnNTe9UaKUhjDXbTNkiWTq/N4VpKaF79bBjSExVV2NXmJpcM7z/gD7mbqNjxbmWW5nf1iNSSGnw==", "requires": { "prosemirror-model": "^1.19.0" } }, "prosemirror-schema-list": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.2.2.tgz", - "integrity": "sha512-rd0pqSDp86p0MUMKG903g3I9VmElFkQpkZ2iOd3EOVg1vo5Cst51rAsoE+5IPy0LPXq64eGcCYlW1+JPNxOj2w==", - "peer": true, + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.3.0.tgz", + "integrity": "sha512-Hz/7gM4skaaYfRPNgr421CU4GSwotmEwBVvJh5ltGiffUJwm7C8GfN/Bc6DR1EKEp5pDKhODmdXXyi9uIsZl5A==", "requires": { "prosemirror-model": "^1.0.0", "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.0.0" + "prosemirror-transform": "^1.7.3" } }, "prosemirror-state": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.2.tgz", - "integrity": "sha512-puuzLD2mz/oTdfgd8msFbe0A42j5eNudKAAPDB0+QJRw8cO1ygjLmhLrg9RvDpf87Dkd6D4t93qdef00KKNacQ==", - "peer": true, + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.3.tgz", + "integrity": "sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==", "requires": { "prosemirror-model": "^1.0.0", "prosemirror-transform": "^1.0.0", @@ -36441,10 +35934,9 @@ } }, "prosemirror-tables": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.3.2.tgz", - "integrity": "sha512-/9JTeN6s58Zq66HXaxP6uf8PAmc7XXKZFPlOGVtLvxEd6xBP6WtzaJB9wBjiGUzwbdhdMEy7V62yuHqk/3VrnQ==", - "peer": true, + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.3.5.tgz", + "integrity": "sha512-JSZ2cCNlApu/ObAhdPyotrjBe2cimniniTpz60YXzbL0kZ+47nEYk2LWbfKU2lKpBkUNquta2PjteoNi4YCluQ==", "requires": { "prosemirror-keymap": "^1.1.2", "prosemirror-model": "^1.8.1", @@ -36454,51 +35946,40 @@ } }, "prosemirror-trailing-node": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/prosemirror-trailing-node/-/prosemirror-trailing-node-2.0.3.tgz", - "integrity": "sha512-lGrjMrn97KWkjQSW/FjdvnhJmqFACmQIyr6lKYApvHitDnKsCoZz6XzrHB7RZYHni/0NxQmZ01p/2vyK2SkvaA==", - "peer": true, + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/prosemirror-trailing-node/-/prosemirror-trailing-node-2.0.7.tgz", + "integrity": "sha512-8zcZORYj/8WEwsGo6yVCRXFMOfBo0Ub3hCUvmoWIZYfMP26WqENU0mpEP27w7mt8buZWuGrydBewr0tOArPb1Q==", "requires": { - "@babel/runtime": "^7.13.10", - "@remirror/core-constants": "^2.0.0", - "@remirror/core-helpers": "^2.0.1", + "@remirror/core-constants": "^2.0.2", + "@remirror/core-helpers": "^3.0.0", "escape-string-regexp": "^4.0.0" }, "dependencies": { "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "peer": true + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" } } }, "prosemirror-transform": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.7.1.tgz", - "integrity": "sha512-VteoifAfpt46z0yEt6Fc73A5OID9t/y2QIeR5MgxEwTuitadEunD/V0c9jQW8ziT8pbFM54uTzRLJ/nLuQjMxg==", - "peer": true, + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.8.0.tgz", + "integrity": "sha512-BaSBsIMv52F1BVVMvOmp1yzD3u65uC3HTzCBQV1WDPqJRQ2LuHKcyfn0jwqodo8sR9vVzMzZyI+Dal5W9E6a9A==", "requires": { "prosemirror-model": "^1.0.0" } }, "prosemirror-view": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.30.1.tgz", - "integrity": "sha512-pZUfr7lICJkEY7XwzldAKrkflZDeIvnbfuu2RIS01N5NwJmR/dfZzDzJRzhb3SM2QtT/bM8b4Nnib8X3MGpAhA==", - "peer": true, + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.33.1.tgz", + "integrity": "sha512-62qkYgSJIkwIMMCpuGuPzc52DiK1Iod6TWoIMxP4ja6BTD4yO8kCUL64PZ/WhH/dJ9fW0CDO39FhH1EMyhUFEg==", "requires": { "prosemirror-model": "^1.16.0", "prosemirror-state": "^1.0.0", "prosemirror-transform": "^1.1.0" } }, - "proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", - "dev": true - }, "proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -36517,6 +35998,11 @@ } } }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", @@ -36563,6 +36049,33 @@ } } }, + "pug-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.1.0.tgz", + "integrity": "sha512-lv7sU9e5Jk8IeUheHata6/UThZ7RK2jnaaNztxfPYUY+VxZyk/ePVaNZ/vwmH8WqGvDz3LrNYt/+gA55NDg6Pg==", + "dev": true + }, + "pug-lexer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz", + "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==", + "dev": true, + "requires": { + "character-parser": "^2.2.0", + "is-expression": "^4.0.0", + "pug-error": "^2.0.0" + } + }, + "pug-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz", + "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==", + "dev": true, + "requires": { + "pug-error": "^2.0.0", + "token-stream": "1.0.0" + } + }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -36636,13 +36149,10 @@ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", "dev": true }, - "quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true, - "optional": true, - "peer": true + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, "randombytes": { "version": "2.1.0", @@ -36695,6 +36205,21 @@ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "requires": { + "pify": "^2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + } + } + }, "readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", @@ -36710,6 +36235,14 @@ "util-deprecate": "~1.0.1" } }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, "recast": { "version": "0.11.23", "resolved": "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz", @@ -36730,18 +36263,6 @@ } } }, - "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - } - }, "regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -36749,23 +36270,23 @@ "dev": true }, "regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", "dev": true, "requires": { "regenerate": "^1.4.2" } }, "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, "requires": { "@babel/runtime": "^7.8.4" @@ -36793,12 +36314,6 @@ } } }, - "regex-parser": { - "version": "2.2.10", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.10.tgz", - "integrity": "sha512-8t6074A68gHfU8Neftl0Le6KTDwfGAj7IyjPIMSfikI2wJUTHDMaIq42bUsfVnj8mhx0R+45rdUXHGpN164avA==", - "dev": true - }, "regexp.prototype.flags": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", @@ -36811,34 +36326,71 @@ } }, "regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, "requires": { + "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" + "unicode-match-property-value-ecmascript": "^2.1.0" } }, - "regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", - "dev": true - }, "regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, "requires": { "jsesc": "~0.5.0" } }, + "reka-ui": { + "version": "1.0.0-alpha.8", + "resolved": "https://registry.npmjs.org/reka-ui/-/reka-ui-1.0.0-alpha.8.tgz", + "integrity": "sha512-FmAUxWFLWtvbheBLvjgotR/RsE1KSjciMJOLmo7wL0Sbe+sW7M35O8K6f141a0Vc1cE0mH57UHcWBuVpeJNQNA==", + "requires": { + "@floating-ui/dom": "^1.6.11", + "@floating-ui/vue": "^1.1.5", + "@internationalized/date": "^3.5.6", + "@internationalized/number": "^3.5.4", + "@tanstack/vue-virtual": "^3.10.8", + "@vueuse/core": "^12.0.0", + "@vueuse/shared": "^12.0.0", + "aria-hidden": "^1.2.4", + "defu": "^6.1.4", + "ohash": "^1.1.4" + }, + "dependencies": { + "@vueuse/core": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-12.0.0.tgz", + "integrity": "sha512-C12RukhXiJCbx4MGhjmd/gH52TjJsc3G0E0kQj/kb19H3Nt6n1CA4DRWuTdWWcaFRdlTe0npWDS942mvacvNBw==", + "requires": { + "@types/web-bluetooth": "^0.0.20", + "@vueuse/metadata": "12.0.0", + "@vueuse/shared": "12.0.0", + "vue": "^3.5.13" + } + }, + "@vueuse/metadata": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-12.0.0.tgz", + "integrity": "sha512-Yzimd1D3sjxTDOlF05HekU5aSGdKjxhuhRFHA7gDWLn57PRbBIh+SF5NmjhJ0WRgF3my7T8LBucyxdFJjIfRJQ==" + }, + "@vueuse/shared": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-12.0.0.tgz", + "integrity": "sha512-3i6qtcq2PIio5i/vVYidkkcgvmTjCqrf26u+Fd4LhnbBmIT6FN8y6q/GJERp8lfcB9zVEfjdV0Br0443qZuJpw==", + "requires": { + "vue": "^3.5.13" + } + } + } + }, "relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", @@ -36869,65 +36421,11 @@ "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", "dev": true }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true, - "optional": true, - "peer": true - }, - "safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", - "dev": true, - "optional": true, - "peer": true - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - } - } - } + "request-light": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/request-light/-/request-light-0.7.0.tgz", + "integrity": "sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==", + "dev": true }, "require-directory": { "version": "2.1.1", @@ -36948,13 +36446,13 @@ "dev": true }, "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } }, "resolve-cwd": { @@ -37014,61 +36512,6 @@ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, - "resolve-url-loader": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.0.tgz", - "integrity": "sha512-2QcrA+2QgVqsMJ1Hn5NnJXIGCX1clQ1F6QJTqOeiaDw9ACo1G2k+8/shq3mtqne03HOFyskAClqfxKyFBriXZg==", - "dev": true, - "requires": { - "adjust-sourcemap-loader": "2.0.0", - "camelcase": "5.0.0", - "compose-function": "3.0.3", - "convert-source-map": "1.6.0", - "es6-iterator": "2.0.3", - "loader-utils": "1.2.3", - "postcss": "7.0.14", - "rework": "1.0.1", - "rework-visit": "1.0.0", - "source-map": "0.6.1" - }, - "dependencies": { - "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "postcss": { - "version": "7.0.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.14.tgz", - "integrity": "sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, "resolve.exports": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", @@ -37087,29 +36530,10 @@ "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", "dev": true }, - "rework": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", - "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", - "dev": true, - "requires": { - "convert-source-map": "^0.3.3", - "css": "^2.0.0" - }, - "dependencies": { - "convert-source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz", - "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=", - "dev": true - } - } - }, - "rework-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz", - "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=", - "dev": true + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" }, "rgb-regex": { "version": "1.0.1", @@ -37159,10 +36583,11 @@ } }, "rollup": { - "version": "3.26.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.26.3.tgz", - "integrity": "sha512-7Tin0C8l86TkpcMtXvQu6saWH93nhG3dGQ1/+l5V2TDMceTxO7kDiK6GzbfLWNNxqJXm591PcEZUozZm51ogwQ==", + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", "dev": true, + "peer": true, "requires": { "fsevents": "~2.3.2" } @@ -37205,10 +36630,17 @@ } }, "rope-sequence": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.2.tgz", - "integrity": "sha512-ku6MFrwEVSVmXLvy3dYph3LAMNS0890K7fabn+0YIRQ2T96T9F4gkFf0vf0WW0JUraNWwGRtInEpH7yO4tbQZg==", - "peer": true + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.4.tgz", + "integrity": "sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==" + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } }, "run-queue": { "version": "1.0.3", @@ -37232,6 +36664,8 @@ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", "dev": true, + "optional": true, + "peer": true, "requires": { "tslib": "^2.1.0" }, @@ -37240,7 +36674,9 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true } } }, @@ -37281,6 +36717,8 @@ "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.64.1.tgz", "integrity": "sha512-dZSKFPOwITHxM8dYDg8VkwyOYZnKpY2R3rBKwXz+shLvhRCPJlEowsSZLwx19YPUoQFeh7RgqI5lloMzAzrryg==", "dev": true, + "optional": true, + "peer": true, "requires": { "@bufbuild/protobuf": "^1.0.0", "buffer-builder": "^0.2.0", @@ -37298,140 +36736,6 @@ "varint": "^6.0.0" }, "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "sass-embedded": { - "version": "1.54.4", - "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.54.4.tgz", - "integrity": "sha512-zsL+LlpCCCnUqIXA6MrnPLuBuOF5zaYbth3u9mmx6jw5yScCfBo39Ax601XLcSWhTek7dBMjj5LdEYzScQkI4A==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "buffer-builder": "^0.2.0", - "extract-zip": "^2.0.1", - "google-protobuf": "^3.11.4", - "immutable": "^4.0.0", - "make-fetch-happen": "^10.1.2", - "rxjs": "^7.4.0", - "semver": "^7.3.5", - "shelljs": "^0.8.4", - "supports-color": "^8.1.1", - "tar": "^6.0.5", - "yaml": "^1.10.2" - }, - "dependencies": { - "@npmcli/fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", - "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - } - }, - "@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } - }, - "@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, - "optional": true, - "peer": true - }, - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "cacache": { - "version": "16.1.2", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.2.tgz", - "integrity": "sha512-Xx+xPlfCZIUHagysjjOAje9nRo8pRDczQCcXb4J2O0BLtH+xeVue6ba4y1kfJfQMAnM2mkcoMIAyOctlaRGWYA==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^1.1.1" - }, - "dependencies": { - "lru-cache": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", - "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", - "dev": true, - "optional": true, - "peer": true - } - } - }, - "glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -37440,134 +36744,6 @@ "optional": true, "peer": true }, - "http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", - "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", - "dev": true, - "optional": true, - "peer": true - } - } - }, - "minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "minipass-fetch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.0.tgz", - "integrity": "sha512-H9U4UVBGXEyyWJnqYDCLp1PwD8XIkJ4akNHp1aGVI+2Ym7wQMlxDKi4IB4JbmyU+pl9pEs/cVrK6cOuvmbK4Sg==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "encoding": "^0.1.13", - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "optional": true, - "peer": true - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - } - }, - "ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "minipass": "^3.1.1" - } - }, "supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -37578,14 +36754,6 @@ "requires": { "has-flag": "^4.0.0" } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true, - "peer": true } } }, @@ -37594,80 +36762,64 @@ "resolved": "https://registry.npmjs.org/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.64.1.tgz", "integrity": "sha512-ytfvR/DI+3Tfm8XW0L7BXEswK2wPyrctn94sigAOF2Kz66FHMMfFZR4/kbW00bpabTiybc3OH1iMHwge0pDliw==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "sass-embedded-darwin-x64": { "version": "1.64.1", "resolved": "https://registry.npmjs.org/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.64.1.tgz", "integrity": "sha512-rjwoP6e7V0LEFQ8O7bkLDDocvbwJRuR7IjEz4JYgMVbPXRZRAb2HBjqeNPqSW/BX1pf95Y9ZjR+IUTnK1YkWBg==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "sass-embedded-linux-arm": { "version": "1.64.1", "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.64.1.tgz", "integrity": "sha512-AHmko6qqEy2ebJ3cuvPcjZsRNN0LPFlBYnMun2JIBoBu/vpGUptEo8RGAK8RcnAQgiy8W+UOl/ths4NXQ0RLew==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "sass-embedded-linux-arm64": { "version": "1.64.1", "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.64.1.tgz", "integrity": "sha512-tipvRLhGtLhACAcN2C4nnHphbiFdTmiVqaWngX0ItOIutjecDY/ZBGT/JIFAbigtYjwtyV2kHq0sr82C1H2BOw==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "sass-embedded-linux-ia32": { "version": "1.64.1", "resolved": "https://registry.npmjs.org/sass-embedded-linux-ia32/-/sass-embedded-linux-ia32-1.64.1.tgz", "integrity": "sha512-vDcP5L2iWZmj/JHlvKpIeVz92bsysEDmlfvuj/8aCz0OCjlJ48Wt8VNbQnV4jWvVWWJR6+7ZKLD9/Bne3y4lBw==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "sass-embedded-linux-x64": { "version": "1.64.1", "resolved": "https://registry.npmjs.org/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.64.1.tgz", "integrity": "sha512-cnTFFTwVLfWrO7P8g1Mgo6ArotmMbIUyCDF8gk9RYXrBl+ZvmeJ8Zuyd4t54ug27L6yJT9SpQnHOY30hAb2GmA==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "sass-embedded-win32-ia32": { "version": "1.64.1", "resolved": "https://registry.npmjs.org/sass-embedded-win32-ia32/-/sass-embedded-win32-ia32-1.64.1.tgz", "integrity": "sha512-XO3I+jSggZMqJueORFwmlMTY/fY+bDTZz2Ipphhwf2J/5D+BwKckpHVzjbw0JVUX3rjlQ1iKSiCEGcAY9k0ivw==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "sass-embedded-win32-x64": { "version": "1.64.1", "resolved": "https://registry.npmjs.org/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.64.1.tgz", "integrity": "sha512-fEevi4RFiGz9sQvofqnImPXVWDxNY94o9NEO/s81pocs7VLy2ARGEEn3usYaojtxiUGt2TpMR81XNR+3i+aBMQ==", "dev": true, - "optional": true - }, - "sass-graph": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-4.0.0.tgz", - "integrity": "sha512-WSO/MfXqKH7/TS8RdkCX3lVkPFQzCgbqdGsmSKq6tlPU+GpGEsa/5aW18JqItnqh+lPtcjifqdZ/VmiILkKckQ==", - "dev": true, "optional": true, - "peer": true, - "requires": { - "glob": "^7.0.0", - "lodash": "^4.17.11", - "scss-tokenizer": "^0.3.0", - "yargs": "^17.2.1" - } - }, - "sass-loader": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.0.2.tgz", - "integrity": "sha512-BbiqbVmbfJaWVeOOAu2o7DhYWtcNmTfvroVgFXa6k2hHheMxNAeDHLNoDy/Q5aoaVlz0LH+MbMktKwm9vN/j8Q==", - "dev": true, - "requires": { - "klona": "^2.0.4", - "neo-async": "^2.6.2" - } + "peer": true }, "sax": { "version": "1.2.4", @@ -37695,28 +36847,6 @@ "ajv-keywords": "^3.5.2" } }, - "scss-tokenizer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.3.0.tgz", - "integrity": "sha512-14Zl9GcbBvOT9057ZKjpz5yPOyUWG2ojd9D5io28wHRYsOrs7U95Q+KNL87+32p8rc+LvDpbu/i9ZYjM9Q+FsQ==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "js-base64": "^2.4.3", - "source-map": "^0.7.1" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "optional": true, - "peer": true - } - } - }, "select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", @@ -37889,56 +37019,14 @@ "safe-buffer": "^5.0.1" } }, - "sharp": { - "version": "file:resources/assets/js" - }, - "sharp-commands": { - "version": "file:packages/commands", - "requires": { - "sharp-form": "file:../form", - "sharp-ui": "file:../ui" - } - }, - "sharp-dashboard": { - "version": "file:packages/dashboard", - "requires": { - "sharp-commands": "file:../commands", - "sharp-filters": "file:../filters", - "sharp-ui": "file:../ui" - } - }, - "sharp-embeds": { - "version": "file:packages/embeds" - }, - "sharp-entity-list": { - "version": "file:packages/entity-list", - "requires": { - "sharp-commands": "file:../commands", - "sharp-filters": "file:../filters", - "sharp-ui": "file:../ui" - } - }, - "sharp-files": { - "version": "file:packages/files" - }, - "sharp-filters": { - "version": "file:packages/filters", - "requires": { - "sharp-form": "file:../form", - "sharp-ui": "file:../ui" - } - }, - "sharp-form": { - "version": "file:packages/form", - "requires": { - "sharp-files": "file:../files", - "sharp-ui": "file:../ui" - } + "shallow-equal": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz", + "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==" }, "sharp-plugin": { "version": "file:packages/plugin", "requires": { - "core-js": "^2.5.6", "laravel-mix": "^4.1.2" }, "dependencies": { @@ -38241,12 +37329,6 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "dev": true - }, "cosmiconfig": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", @@ -40675,21 +39757,6 @@ } } }, - "sharp-search": { - "version": "file:packages/search" - }, - "sharp-show": { - "version": "file:packages/show", - "requires": { - "sharp-commands": "file:../commands", - "sharp-entity-list": "file:../entity-list", - "sharp-filters": "file:../filters", - "sharp-ui": "file:../ui" - } - }, - "sharp-ui": { - "version": "file:packages/ui" - }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -40705,40 +39772,6 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, - "shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "dependencies": { - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true, - "optional": true, - "peer": true - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "resolve": "^1.1.6" - } - } - } - }, "shellwords": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", @@ -40756,12 +39789,6 @@ "object-inspect": "^1.9.0" } }, - "sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", - "dev": true - }, "signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", @@ -40797,14 +39824,6 @@ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, - "smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true, - "optional": true, - "peer": true - }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -40964,35 +39983,10 @@ } } }, - "socks": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", - "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "ip": "^1.1.5", - "smart-buffer": "^4.2.0" - } - }, - "socks-proxy-agent": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz", - "integrity": "sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "agent-base": "^6.0.2", - "debug": "^4.3.1", - "socks": "^2.6.1" - } - }, "sortablejs": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.6.1.tgz", - "integrity": "sha1-0SDRA/u59gx9sngUoThAcubG4IM=" + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.2.tgz", + "integrity": "sha512-FJF5jgdfvoKn1MAKSdGs33bIqLi3LmsgVTliuX6iITj834F+JRQZN90Z93yql8h0K2t0RwDPBmxwlbZfDcxNZA==" }, "source-list-map": { "version": "2.0.1", @@ -41007,9 +40001,9 @@ "dev": true }, "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==" }, "source-map-resolve": { "version": "0.5.2", @@ -41048,33 +40042,6 @@ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, - "spdx-correct": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "spdx-license-ids": "^1.0.2" - } - }, - "spdx-expression-parse": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", - "dev": true, - "optional": true, - "peer": true - }, - "spdx-license-ids": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", - "dev": true, - "optional": true, - "peer": true - }, "spdy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", @@ -41142,36 +40109,6 @@ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "minipass": "^3.1.1" - } - }, "stable": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", @@ -41217,17 +40154,6 @@ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true }, - "stdout-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", - "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "readable-stream": "^2.0.1" - } - }, "stream-browserify": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", @@ -41348,23 +40274,41 @@ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true }, - "strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "min-indent": "^1.0.0" - } - }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, + "sucrase": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", + "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "requires": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "dependencies": { + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" + } + } + }, + "supercluster": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz", + "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==", + "requires": { + "kdbush": "^4.0.2" + } + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -41401,76 +40345,132 @@ } } }, - "svg.draggable.js": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz", - "integrity": "sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==", - "requires": { - "svg.js": "^2.0.1" - } - }, - "svg.easing.js": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/svg.easing.js/-/svg.easing.js-2.0.0.tgz", - "integrity": "sha1-iqmUawqOJ4V6XEChDrpAkeVpHxI=", - "requires": { - "svg.js": ">=2.3.x" - } - }, - "svg.filter.js": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/svg.filter.js/-/svg.filter.js-2.0.2.tgz", - "integrity": "sha1-kQCOFROJ3ZIwd5/L5uLJo2LRwgM=", - "requires": { - "svg.js": "^2.2.5" - } - }, - "svg.js": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/svg.js/-/svg.js-2.7.1.tgz", - "integrity": "sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==" - }, - "svg.pathmorphing.js": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz", - "integrity": "sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==", - "requires": { - "svg.js": "^2.4.0" - } + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" }, - "svg.resize.js": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/svg.resize.js/-/svg.resize.js-1.4.3.tgz", - "integrity": "sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==", + "svgo": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.2.0.tgz", + "integrity": "sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==", + "dev": true, "requires": { - "svg.js": "^2.6.5", - "svg.select.js": "^2.1.2" + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" }, "dependencies": { - "svg.select.js": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-2.1.2.tgz", - "integrity": "sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==", + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + }, + "css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "requires": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + } + }, + "csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, "requires": { - "svg.js": "^2.2.5" + "css-tree": "~2.2.0" + }, + "dependencies": { + "css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "requires": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + } + }, + "mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true + } } + }, + "mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true } } }, - "svg.select.js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-3.0.1.tgz", - "integrity": "sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==", - "requires": { - "svg.js": "^2.6.5" - } - }, "symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, + "systemjs": { + "version": "6.14.3", + "resolved": "https://registry.npmjs.org/systemjs/-/systemjs-6.14.3.tgz", + "integrity": "sha512-hQv45irdhXudAOr8r6SVSpJSGtogdGZUbJBRKCE5nsIS7tsxxvnIHqT4IOPWj+P+HcSzeWzHlGCGpmhPDIKe+w==", + "dev": true + }, + "tailwind-merge": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.2.2.tgz", + "integrity": "sha512-tWANXsnmJzgw6mQ07nE3aCDkCK4QdT3ThPMCzawoYA2Pws7vSTCvz3Vrjg61jVUGfFZPJzxEP+NimbcW+EdaDw==", + "requires": { + "@babel/runtime": "^7.24.0" + } + }, + "tailwindcss": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz", + "integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==", + "requires": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + } + }, + "tailwindcss-animate": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", + "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", + "requires": {} + }, "tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -41478,40 +40478,6 @@ "dev": true, "peer": true }, - "tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "optional": true, - "peer": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true, - "peer": true - } - } - }, "terminal-link": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", @@ -41625,6 +40591,22 @@ "resolved": "https://registry.npmjs.org/text-clipper/-/text-clipper-1.3.0.tgz", "integrity": "sha512-6MjWFsTsXI8VyqqpGxTkb7685IPUInyJzG8sNhHHD2xbrnwv9xENQg5dAAabaFLIUa1QXDtRd406HYTauM010Q==" }, + "thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, "throat": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", @@ -41634,8 +40616,7 @@ "throttle-debounce": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz", - "integrity": "sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==", - "peer": true + "integrity": "sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==" }, "through": { "version": "2.3.8", @@ -41683,14 +40664,14 @@ } }, "tiptap-markdown": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/tiptap-markdown/-/tiptap-markdown-0.8.8.tgz", - "integrity": "sha512-I2w/IpvCZ1BoR3nQzG0wRK3uGmDv+Ohyr++G24Ma6RzoDYd0TVGXZp0BOODX5Jj4c6heVY8eksahSeAwJMZBeg==", + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/tiptap-markdown/-/tiptap-markdown-0.7.3.tgz", + "integrity": "sha512-w97BYjSSfFMYK27YLgpESNQYNVLfUQRZj0SIJaPN2aXcIrB6PJuHdtNnLYI3Fa6GTDxza+GEbXFDvkZARFkEaQ==", "requires": { "@types/markdown-it": "^12.2.3", "markdown-it": "^13.0.1", "markdown-it-task-lists": "^2.1.1", - "prosemirror-markdown": "^1.11.1" + "prosemirror-markdown": "^1.11.0" } }, "tmpl": { @@ -41798,7 +40779,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "requires": { "is-number": "^7.0.0" } @@ -41809,6 +40789,12 @@ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true }, + "token-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz", + "integrity": "sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==", + "dev": true + }, "tough-cookie": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", @@ -41851,24 +40837,10 @@ } } }, - "trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true, - "optional": true, - "peer": true - }, - "true-case-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", - "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "glob": "^7.1.2" - } + "ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" }, "tslib": { "version": "1.14.1", @@ -41882,31 +40854,6 @@ "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", "dev": true }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true, - "optional": true, - "peer": true - }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true - }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", @@ -41923,12 +40870,9 @@ "dev": true }, "type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true, - "optional": true, - "peer": true + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==" }, "type-is": { "version": "1.6.18", @@ -41955,6 +40899,29 @@ "is-typedarray": "^1.0.0" } }, + "typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "devOptional": true + }, + "typescript-auto-import-cache": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/typescript-auto-import-cache/-/typescript-auto-import-cache-0.3.3.tgz", + "integrity": "sha512-ojEC7+Ci1ij9eE6hp8Jl9VUNnsEKzztktP5gtYNRMrTmfXVwA1PITYYAkpxCvvupdSYa/Re51B6KMcv1CTZEUA==", + "dev": true, + "requires": { + "semver": "^7.3.8" + }, + "dependencies": { + "semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true + } + } + }, "uc.micro": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", @@ -41990,6 +40957,12 @@ "which-boxed-primitive": "^1.0.2" } }, + "undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, "unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -42007,15 +40980,15 @@ } }, "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true }, "unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true }, "union-value": { @@ -42126,6 +41099,16 @@ "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", "dev": true }, + "update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, "upper-case": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", @@ -42201,8 +41184,7 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "util.promisify": { "version": "1.0.1", @@ -42228,17 +41210,6 @@ "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==", "dev": true }, - "v-calendar": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/v-calendar/-/v-calendar-2.4.1.tgz", - "integrity": "sha512-nhzOlHM2cinv+8jIcnAx+nTo63U40szv3Ig41uLMpGK1U5sApgCP6ggigprsnlMOM5VRq1G/1B8rNHkRrLbGjw==", - "requires": { - "core-js": "^3.15.2", - "date-fns": "^2.22.1", - "date-fns-tz": "^1.1.4", - "lodash": "^4.17.21" - } - }, "v8-compile-cache": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", @@ -42264,23 +41235,13 @@ } } }, - "validate-npm-package-license": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "spdx-correct": "~1.0.0", - "spdx-expression-parse": "~1.0.0" - } - }, "varint": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "vary": { "version": "1.1.2", @@ -42294,29 +41255,44 @@ "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", "dev": true }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, "vite": { - "version": "4.4.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.6.tgz", - "integrity": "sha512-EY6Mm8vJ++S3D4tNAckaZfw3JwG3wa794Vt70M6cNJ6NxT87yhq7EC8Rcap3ahyHdo8AhCmV9PTk+vG1HiYn1A==", + "version": "5.4.9", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.9.tgz", + "integrity": "sha512-20OVpJHh0PAM0oSOELa5GaZNWeDjcAvQjGXy2Uyr+Tp+/D2/Hdz6NLgpJLsarPTA2QJ6v8mX2P1ZfbsSKvdMkg==", "dev": true, "requires": { - "esbuild": "^0.18.10", - "fsevents": "~2.3.2", - "postcss": "^8.4.26", - "rollup": "^3.25.2" + "esbuild": "^0.21.3", + "fsevents": "~2.3.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "dependencies": { + "rollup": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", + "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", + "dev": true, + "requires": { + "@rollup/rollup-android-arm-eabi": "4.24.0", + "@rollup/rollup-android-arm64": "4.24.0", + "@rollup/rollup-darwin-arm64": "4.24.0", + "@rollup/rollup-darwin-x64": "4.24.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", + "@rollup/rollup-linux-arm-musleabihf": "4.24.0", + "@rollup/rollup-linux-arm64-gnu": "4.24.0", + "@rollup/rollup-linux-arm64-musl": "4.24.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", + "@rollup/rollup-linux-riscv64-gnu": "4.24.0", + "@rollup/rollup-linux-s390x-gnu": "4.24.0", + "@rollup/rollup-linux-x64-gnu": "4.24.0", + "@rollup/rollup-linux-x64-musl": "4.24.0", + "@rollup/rollup-win32-arm64-msvc": "4.24.0", + "@rollup/rollup-win32-ia32-msvc": "4.24.0", + "@rollup/rollup-win32-x64-msvc": "4.24.0", + "@types/estree": "1.0.6", + "fsevents": "~2.3.2" + } + } } }, "vite-bundle-visualizer": { @@ -42329,43 +41305,301 @@ "rollup-plugin-visualizer": "^5.9.0" } }, + "vite-plugin-circular-dependency": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/vite-plugin-circular-dependency/-/vite-plugin-circular-dependency-0.4.1.tgz", + "integrity": "sha512-xMvrFuadDXrUYdQ8acYmYDR0hnNTTBY5y4is4AnFW04DM0kWyLxujV6omrMYOGwZDHaAjLVfbZiwUMxuhqHM3w==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^5.1.0", + "chalk": "^4.1.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "vite-plugin-full-reload": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.0.5.tgz", - "integrity": "sha512-kVZFDFWr0DxiHn6MuDVTQf7gnWIdETGlZh0hvTiMXzRN80vgF4PKbONSq8U1d0WtHsKaFODTQgJeakLacoPZEQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.1.0.tgz", + "integrity": "sha512-3cObNDzX6DdfhD9E7kf6w2mNunFpD7drxyNgHLw+XwIYAgb+Xt16SEXo0Up4VH+TMf3n+DSVJZtW2POBGcBYAA==", "dev": true, "requires": { "picocolors": "^1.0.0", "picomatch": "^2.3.1" } }, + "vite-svg-loader": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/vite-svg-loader/-/vite-svg-loader-5.1.0.tgz", + "integrity": "sha512-M/wqwtOEjgb956/+m5ZrYT/Iq6Hax0OakWbokj8+9PXOnB7b/4AxESHieEtnNEy7ZpjsjYW1/5nK8fATQMmRxw==", + "dev": true, + "requires": { + "svgo": "^3.0.2" + } + }, "vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "dev": true }, - "vue": { - "version": "2.7.14", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.14.tgz", - "integrity": "sha512-b2qkFyOM0kwqWFuQmgd4o+uHGU7T+2z3T+WQp8UBjADfEv2n4FEMffzBmCKNP0IGzOEEfYjvtcC62xaSKeQDrQ==", + "volar-service-css": { + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-css/-/volar-service-css-0.0.62.tgz", + "integrity": "sha512-JwNyKsH3F8PuzZYuqPf+2e+4CTU8YoyUHEHVnoXNlrLe7wy9U3biomZ56llN69Ris7TTy/+DEX41yVxQpM4qvg==", + "dev": true, "requires": { - "@vue/compiler-sfc": "2.7.14", - "csstype": "^3.1.0" + "vscode-css-languageservice": "^6.3.0", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" } }, - "vue-apexcharts": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/vue-apexcharts/-/vue-apexcharts-1.6.0.tgz", - "integrity": "sha512-sT6tuVTLBwfH3TA7azecDNS/W70bmz14ZJI7aE7QIqcG9I6OywyH7x3hcOeY1v1DxttI8Svc5RuYj4Dd+A5F4g==" + "volar-service-emmet": { + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-emmet/-/volar-service-emmet-0.0.62.tgz", + "integrity": "sha512-U4dxWDBWz7Pi4plpbXf4J4Z/ss6kBO3TYrACxWNsE29abu75QzVS0paxDDhI6bhqpbDFXlpsDhZ9aXVFpnfGRQ==", + "dev": true, + "requires": { + "@emmetio/css-parser": "^0.4.0", + "@emmetio/html-matcher": "^1.3.0", + "@vscode/emmet-helper": "^2.9.3", + "vscode-uri": "^3.0.8" + } }, - "vue-clip": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vue-clip/-/vue-clip-1.0.0.tgz", - "integrity": "sha1-woOZ6kyklXo5EIZYTVBUinQ0CYA=", + "volar-service-html": { + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-html/-/volar-service-html-0.0.62.tgz", + "integrity": "sha512-Zw01aJsZRh4GTGUjveyfEzEqpULQUdQH79KNEiKVYHZyuGtdBRYCHlrus1sueSNMxwwkuF5WnOHfvBzafs8yyQ==", + "dev": true, + "requires": { + "vscode-html-languageservice": "^5.3.0", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" + } + }, + "volar-service-json": { + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-json/-/volar-service-json-0.0.62.tgz", + "integrity": "sha512-Ot+jP+/LzKcaGF7nzrn+gwpzAleb4ej5buO05M8KxfwfODte7o1blARKRoJ3Nv7ls0DBM38Dd5vjzvA9c/9Jtg==", + "dev": true, + "requires": { + "vscode-json-languageservice": "^5.4.0", + "vscode-uri": "^3.0.8" + } + }, + "volar-service-pug": { + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-pug/-/volar-service-pug-0.0.62.tgz", + "integrity": "sha512-C0/O8uGnRfijWKE0zFXxJ/o7BbLebzretsEaiMkvBDIxm5oe7HRDzQr6CgknV/WVgiohZ74v+0CwBPl2YmcPUQ==", + "dev": true, "requires": { - "dropzone": "^4.3.0", - "lodash.clone": "^4.5.0" + "@volar/language-service": "~2.4.0", + "muggle-string": "^0.4.1", + "pug-lexer": "^5.0.1", + "pug-parser": "^6.0.0", + "volar-service-html": "0.0.62", + "vscode-html-languageservice": "^5.3.0", + "vscode-languageserver-textdocument": "^1.0.11" + } + }, + "volar-service-pug-beautify": { + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-pug-beautify/-/volar-service-pug-beautify-0.0.62.tgz", + "integrity": "sha512-dAFNuNEwTnnVthYoNJhoStwhf/PojzglwCrdhOb2nBegTG3xXMWRFmQzb0JfIlt2wq2wfUq5j+JJswgSD3KluQ==", + "dev": true, + "requires": { + "@johnsoncodehk/pug-beautify": "^0.2.2" + } + }, + "volar-service-typescript": { + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-typescript/-/volar-service-typescript-0.0.62.tgz", + "integrity": "sha512-p7MPi71q7KOsH0eAbZwPBiKPp9B2+qrdHAd6VY5oTo9BUXatsOAdakTm9Yf0DUj6uWBAaOT01BSeVOPwucMV1g==", + "dev": true, + "requires": { + "path-browserify": "^1.0.1", + "semver": "^7.6.2", + "typescript-auto-import-cache": "^0.3.3", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-nls": "^5.2.0", + "vscode-uri": "^3.0.8" + }, + "dependencies": { + "path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true + } + } + }, + "volar-service-typescript-twoslash-queries": { + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-typescript-twoslash-queries/-/volar-service-typescript-twoslash-queries-0.0.62.tgz", + "integrity": "sha512-KxFt4zydyJYYI0kFAcWPTh4u0Ha36TASPZkAnNY784GtgajerUqM80nX/W1d0wVhmcOFfAxkVsf/Ed+tiYU7ng==", + "dev": true, + "requires": { + "vscode-uri": "^3.0.8" + } + }, + "vscode-css-languageservice": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.3.1.tgz", + "integrity": "sha512-1BzTBuJfwMc3A0uX4JBdJgoxp74cjj4q2mDJdp49yD/GuAq4X0k5WtK6fNcMYr+FfJ9nqgR6lpfCSZDkARJ5qQ==", + "dev": true, + "requires": { + "@vscode/l10n": "^0.0.18", + "vscode-languageserver-textdocument": "^1.0.12", + "vscode-languageserver-types": "3.17.5", + "vscode-uri": "^3.0.8" + } + }, + "vscode-html-languageservice": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-5.3.1.tgz", + "integrity": "sha512-ysUh4hFeW/WOWz/TO9gm08xigiSsV/FOAZ+DolgJfeLftna54YdmZ4A+lIn46RbdO3/Qv5QHTn1ZGqmrXQhZyA==", + "dev": true, + "requires": { + "@vscode/l10n": "^0.0.18", + "vscode-languageserver-textdocument": "^1.0.12", + "vscode-languageserver-types": "^3.17.5", + "vscode-uri": "^3.0.8" + } + }, + "vscode-json-languageservice": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-5.4.1.tgz", + "integrity": "sha512-5czFGNyVPxz3ZJYl8R3a3SuIj5gjhmGF4Wv05MRPvD4DEnHK6b8km4VbNMJNHBlTCh7A0aHzUbPVzo+0C18mCA==", + "dev": true, + "requires": { + "@vscode/l10n": "^0.0.18", + "jsonc-parser": "^3.3.1", + "vscode-languageserver-textdocument": "^1.0.12", + "vscode-languageserver-types": "^3.17.5", + "vscode-uri": "^3.0.8" + }, + "dependencies": { + "jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "dev": true + } + } + }, + "vscode-jsonrpc": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", + "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", + "dev": true + }, + "vscode-languageserver": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz", + "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==", + "dev": true, + "requires": { + "vscode-languageserver-protocol": "3.17.5" + } + }, + "vscode-languageserver-protocol": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", + "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", + "dev": true, + "requires": { + "vscode-jsonrpc": "8.2.0", + "vscode-languageserver-types": "3.17.5" + } + }, + "vscode-languageserver-textdocument": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz", + "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==", + "dev": true + }, + "vscode-languageserver-types": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", + "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", + "dev": true + }, + "vscode-nls": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.2.0.tgz", + "integrity": "sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==", + "dev": true + }, + "vscode-uri": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", + "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", + "dev": true + }, + "vue": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz", + "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==", + "requires": { + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-sfc": "3.5.13", + "@vue/runtime-dom": "3.5.13", + "@vue/server-renderer": "3.5.13", + "@vue/shared": "3.5.13" } }, "vue-cropperjs": { @@ -42376,10 +41610,11 @@ "cropperjs": "^1.5.6" } }, - "vue-functional-data-merge": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/vue-functional-data-merge/-/vue-functional-data-merge-3.1.0.tgz", - "integrity": "sha512-leT4kdJVQyeZNY1kmnS1xiUlQ9z1B/kdBFCILIjYYQDqZgLqCLa0UhjSSeRX6c3mUe6U5qYeM8LrEqkHJ1B4LA==" + "vue-demi": { + "version": "0.14.7", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.7.tgz", + "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==", + "requires": {} }, "vue-hot-reload-api": { "version": "2.3.1", @@ -42415,6 +41650,11 @@ "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.4.9.tgz", "integrity": "sha512-CGAKWN44RqXW06oC+u4mPgHLQQi2t6vLD/JbGRDAXm0YpMv0bgpKuU5bBd7AvMgfTz9kXVRIWKHqRwGEb8xFkA==" }, + "vue-sonner": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vue-sonner/-/vue-sonner-1.1.2.tgz", + "integrity": "sha512-yg4f5s0a3oiiI7cNvO0Dajux1Y7s04lxww3vnQtnwQawJ3KqaKA9RIRMdI9wGTosRGIOwgYFniFRGl4+IuKPZw==" + }, "vue-style-loader": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz", @@ -42440,56 +41680,24 @@ "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", "dev": true }, - "vue-ts-types": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/vue-ts-types/-/vue-ts-types-1.6.1.tgz", - "integrity": "sha512-Fee0nT2LSm/Drf7Gghpy8ssK4eGWtNgsPjgvC691lkMFWFtWRvgrD2+nFjRvd6aKJQhjcvY+SIPUCJpQpsyScA==", + "vue3-apexcharts": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/vue3-apexcharts/-/vue3-apexcharts-1.8.0.tgz", + "integrity": "sha512-5tSD4mXTBbIJ9ir+58qHE6oNtIe0RNgqIRYMKpcsIaxkKtwUww4JhvPkpUFlmiW4OJbbdklgjleXq1lfcM4gdA==", "requires": {} }, - "vue2-animate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/vue2-animate/-/vue2-animate-2.0.0.tgz", - "integrity": "sha512-DLz2irhZRpgiOmcGECEh8T0ybaS6US75Q6OijLX3d9wmtXpJ4/3BqPmLEbHA9hrxAwxLH0NYbooB/2kXnpxPvQ==" - }, - "vue2-google-maps": { - "version": "0.10.7", - "resolved": "https://registry.npmjs.org/vue2-google-maps/-/vue2-google-maps-0.10.7.tgz", - "integrity": "sha512-y5aBJTAsfGvpsbfgPaeWU7o7QbOeINZKsP6SB9qrBe8U8EYBFO/bTWo3rcMq/NOtgT/XssV3Nwg/2u3no6jWbw==", - "requires": { - "babel-runtime": "^6.26.0", - "marker-clusterer-plus": "^2.1.4" - } - }, - "vue2-leaflet": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/vue2-leaflet/-/vue2-leaflet-2.0.2.tgz", - "integrity": "sha512-8KAU0mbUp5CDwb5NBlpEoyCO/x+Rv1KeA4599HJqpHeOrzY0+PBoUabM80riUUWJWGhRi3yhV4DJ8Kf1QHRelQ==" - }, - "vue2-timepicker": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/vue2-timepicker/-/vue2-timepicker-0.1.4.tgz", - "integrity": "sha1-CAnZsH6chkLeNgBEtqFMK38gOBU=", - "requires": { - "vue": "^2.0.1" - } - }, - "vuedraggable": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/vuedraggable/-/vuedraggable-2.14.1.tgz", - "integrity": "sha1-A04eBS4luTiEKa6W25628sOxDYc=", - "requires": { - "sortablejs": "^1.6.0" - } - }, "vuejs-datepicker": { "version": "0.9.16", "resolved": "https://registry.npmjs.org/vuejs-datepicker/-/vuejs-datepicker-0.9.16.tgz", "integrity": "sha512-AzvwW2rxg+Jy+IAeX7o8T3HmY2yzc43aldJGvsRZ6mQOxJDhhIT1KRYatXY9MxR3D9vsK2n/r7Ilt3glbXjxiw==" }, "vuex": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.5.1.tgz", - "integrity": "sha512-w7oJzmHQs0FM9LXodfskhw9wgKBiaB+totOdb8sNzbTB2KDCEEwEs29NzBZFh/lmEK1t5tDmM1vtsO7ubG1DFw==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vuex/-/vuex-4.1.0.tgz", + "integrity": "sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ==", + "requires": { + "@vue/devtools-api": "^6.0.0-beta.11" + } }, "w3c-hr-time": { "version": "1.0.2", @@ -42501,10 +41709,9 @@ } }, "w3c-keyname": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.4.tgz", - "integrity": "sha512-tOhfEwEzFLJzf6d1ZPkYfGj+FWhIpBux9ppoP3rlclw3Z0BZv3N7b7030Z1kYth+6rDuAsXUFr+d0VE6Ed1ikw==", - "peer": true + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", + "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==" }, "w3c-xmlserializer": { "version": "2.0.0", @@ -43093,16 +42300,10 @@ "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", "dev": true }, - "wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } + "wildcard": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-1.1.2.tgz", + "integrity": "sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==" }, "word-wrap": { "version": "1.2.3", @@ -43159,8 +42360,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write-file-atomic": { "version": "3.0.3", @@ -43213,14 +42413,6 @@ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true }, - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "optional": true, - "peer": true - }, "yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", @@ -43260,18 +42452,6 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } } } } diff --git a/package.json b/package.json index 4bd89d324..175482680 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,10 @@ { "private": true, + "name": "sharp", "workspaces": [ - "packages/*", - "resources/assets/js" + "packages/*" ], + "type": "module", "scripts": { "dev": "vite", "build": "vite build", @@ -11,81 +12,105 @@ "docs:build": "cd docs && npm run build", "test": "jest", "cy:open-ct": "cd tests-e2e && npm run cy:open-ct", - "update:tiptap": "npm i @tiptap/core @tiptap/extension-code-block @tiptap/extension-highlight @tiptap/extension-image @tiptap/extension-link @tiptap/extension-placeholder @tiptap/extension-superscript @tiptap/extension-table @tiptap/extension-table-cell @tiptap/extension-table-header @tiptap/extension-table-row @tiptap/starter-kit @tiptap/vue-2 @tiptap/extension-character-count" + "update:tiptap": "npm i @tiptap/core @tiptap/pm @tiptap/extension-code-block @tiptap/extension-highlight @tiptap/extension-image @tiptap/extension-link @tiptap/extension-placeholder @tiptap/extension-superscript @tiptap/extension-table @tiptap/extension-table-cell @tiptap/extension-table-header @tiptap/extension-table-row @tiptap/starter-kit @tiptap/vue-3 @tiptap/extension-character-count" }, "devDependencies": { - "@babel/preset-env": "^7.14.4", + "@babel/preset-env": "^7.23.9", + "@csstools/postcss-oklab-function": "^4.0.3", "@sharp/test-utils": "file:packages/test-utils", + "@tailwindcss/container-queries": "^0.1.1", + "@tailwindcss/forms": "^0.5.4", + "@types/google.maps": "^3.54.3", "@types/jest": "^26.0.19", - "@vitejs/plugin-vue2": "^2.2.0", + "@types/leaflet": "^1.9.6", + "@types/lodash": "^4.17.13", + "@types/nprogress": "^0.2.3", + "@types/qs": "^6.9.7", + "@types/sortablejs": "^1.15.8", + "@vitejs/plugin-legacy": "^5.3.2", + "@vitejs/plugin-vue": "^5.1.4", + "@vue/language-server": "^2.1.6", "@vue/test-utils": "^1.0.0-beta.29", - "@vue/vue2-jest": "^27.0.0", - "babel-runtime": "^6.26.0", - "core-js": "^3.0.0-beta.8", + "autoprefixer": "^10.4.14", + "core-js": "^3.36.0", "cross-env": "3.1.3", "jest": "^27.5.1", - "js-beautify": "^1.7.4", - "laravel-vite-plugin": "^0.8.0", + "laravel-vite-plugin": "^1.0.5", "moment-timezone": "^0.5.13", "moxios": "^0.4.0", - "null-loader": "^4.0.1", - "resolve-url-loader": "^3.1.0", + "prosemirror-model": "^1.19.4", + "prosemirror-state": "^1.4.3", + "prosemirror-view": "^1.33.1", "rollup-plugin-ignore-import": "^1.3.2", - "sass": "npm:sass-embedded@^1.60.0", - "sass-loader": "^13.0.2", - "vite": "^4.4.6", + "tailwindcss": "^3.4.3", + "typescript": "^5.6.3", + "vite": "^5.4.9", "vite-bundle-visualizer": "^0.8.1", - "vue-loader": "^15.9.8" + "vite-plugin-circular-dependency": "^0.4.1", + "vite-svg-loader": "^5.1.0" }, "dependencies": { + "@fawmi/vue-google-maps": "^0.9.79", "@fortawesome/fontawesome-free": "^6.4.0", - "@tiptap/core": "^2.1.13", - "@tiptap/extension-character-count": "^2.1.13", - "@tiptap/extension-code-block": "^2.1.13", - "@tiptap/extension-highlight": "^2.1.13", - "@tiptap/extension-image": "^2.1.13", - "@tiptap/extension-link": "^2.1.13", - "@tiptap/extension-placeholder": "^2.1.13", - "@tiptap/extension-superscript": "^2.1.13", - "@tiptap/extension-table": "^2.1.13", - "@tiptap/extension-table-cell": "^2.1.13", - "@tiptap/extension-table-header": "^2.1.13", - "@tiptap/extension-table-row": "^2.1.13", - "@tiptap/starter-kit": "^2.1.13", - "@tiptap/vue-2": "^2.1.13", - "apexcharts": "^3.35.4", - "axios": "^0.19.2", - "bootstrap": "^5.3.0", - "bootstrap-vue": "^2.21.2", + "@googlemaps/js-api-loader": "^1.16.8", + "@headlessui/vue": "^1.7.19", + "@heroicons/vue": "^2.0.18", + "@inertiajs/vue3": "^2.0.0", + "@tiptap/core": "^2.2.2", + "@tiptap/extension-character-count": "^2.2.2", + "@tiptap/extension-code-block": "^2.2.2", + "@tiptap/extension-highlight": "^2.2.2", + "@tiptap/extension-image": "^2.2.2", + "@tiptap/extension-link": "^2.2.2", + "@tiptap/extension-placeholder": "^2.2.2", + "@tiptap/extension-superscript": "^2.2.2", + "@tiptap/extension-table": "^2.2.2", + "@tiptap/extension-table-cell": "^2.2.2", + "@tiptap/extension-table-header": "^2.2.2", + "@tiptap/extension-table-row": "^2.2.2", + "@tiptap/pm": "^2.2.2", + "@tiptap/starter-kit": "^2.2.2", + "@tiptap/vue-3": "^2.2.2", + "@uppy/core": "^3.5.1", + "@uppy/drag-drop": "^3.0.3", + "@uppy/drop-target": "^2.0.1", + "@uppy/file-input": "^3.0.3", + "@uppy/thumbnail-generator": "^3.0.5", + "@uppy/vue": "^1.0.2", + "@uppy/xhr-upload": "^3.4.1", + "@vue-leaflet/vue-leaflet": "^0.10.1", + "@vueuse/components": "^11.3.0", + "@vueuse/core": "^11.3.0", + "@vueuse/integrations": "^11.3.0", + "apexcharts": "^4.1.0", + "axios": "^1.5.1", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.0", "cropperjs": "^1.5.12", - "filesize": "^6.1.0", + "filesize": "^10.1.0", + "flexsearch": "^0.7.43", "font-awesome-filetypes": "^2.1.0", - "fuse.js": "^2.6.2", - "leaflet": "^1.4.0", + "leaflet": "^1.9.4", + "lodash": "^4.17.21", + "lucide-vue-next": "^0.363.0", "moment": "^2.19.1", + "nprogress": "^0.2.0", "qs": "^6.6.0", + "reka-ui": "^1.0.0-alpha.8", + "sortablejs": "^1.15.2", + "tailwind-merge": "^2.2.2", + "tailwindcss-animate": "^1.0.7", "text-clipper": "^1.3.0", - "tiptap-markdown": "^0.8.8", - "v-calendar": "^2.4.1", - "vue": "^2.6.11", - "vue-apexcharts": "^1.6.0", - "vue-clip": "^1.0.0", + "tiptap-markdown": "^0.7.3", + "vue": "^3.5.12", "vue-cropperjs": "^4.2.0", "vue-multiselect": "^2.1.3", "vue-notification": "^1.3.20", "vue-router": "^3.4.9", + "vue-sonner": "^1.1.2", "vue-template-compiler": "^2.7.14", - "vue2-animate": "^2.0.0", - "vue2-google-maps": "^0.10.7", - "vue2-leaflet": "^2.0.2", - "vue2-timepicker": "^0.1.4", - "vuedraggable": "^2.10.0", + "vue3-apexcharts": "^1.8.0", "vuejs-datepicker": "^0.9.16", - "vuex": "^3.5.1" - }, - "browserslist": [ - "last 1 version", - "> 1%", - "IE 10" - ] + "vuex": "^4.1.0" + } } diff --git a/packages/commands/__tests__/CommandViewPanel.test.js b/packages/commands/__tests__/CommandViewPanel.test.js deleted file mode 100644 index bb41c3114..000000000 --- a/packages/commands/__tests__/CommandViewPanel.test.js +++ /dev/null @@ -1,30 +0,0 @@ -import { mount } from '@vue/test-utils'; -import ViewPanel from '../src/components/CommandViewPanel.vue'; - -describe('view-panel', ()=>{ - let wrapper; - beforeEach(()=>{ - wrapper = mount(ViewPanel, { - directives: { - srcdoc() {} - } - }); - }); - - test('mount ViewPanel', ()=>{ - expect(wrapper.html()).toMatchSnapshot(); - }); - - test('mount "visible with content" ViewPanel', ()=>{ - wrapper.setProps({ content: 'SOME HTML MARKUP' }); - expect(wrapper.html()).toMatchSnapshot(); - }); - - test('emit "change" to false on clicked background glasspane', ()=>{ - wrapper.setProps({ show: true }); - let glasspane = wrapper.find('.SharpViewPanel__glasspane'); - glasspane.trigger('click'); - expect(wrapper.emitted().close).toHaveLength(1); - }); - -}); \ No newline at end of file diff --git a/packages/commands/__tests__/__snapshots__/CommandViewPanel.test.js.snap b/packages/commands/__tests__/__snapshots__/CommandViewPanel.test.js.snap deleted file mode 100644 index 160a31ed3..000000000 --- a/packages/commands/__tests__/__snapshots__/CommandViewPanel.test.js.snap +++ /dev/null @@ -1,18 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`view-panel mount "visible with content" ViewPanel 1`] = ` -
-
-
- -
-
-`; - -exports[`view-panel mount ViewPanel 1`] = ` -
- - -
-`; diff --git a/packages/commands/package-lock.json b/packages/commands/package-lock.json deleted file mode 100644 index 32050bd61..000000000 --- a/packages/commands/package-lock.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "sharp-commands", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "sharp-form": { - "version": "file:../form", - "requires": { - "sharp-ui": "file:../ui" - } - }, - "sharp-ui": { - "version": "file:../ui", - "requires": { - "sharp-filters": "file:../filters" - } - } - } -} diff --git a/packages/commands/package.json b/packages/commands/package.json index da8880bbd..3a683d4e0 100644 --- a/packages/commands/package.json +++ b/packages/commands/package.json @@ -1,10 +1,6 @@ { - "name": "sharp-commands", + "name": "@sharp/commands", "private": true, "version": "1.0.0", - "main": "src/index.js", - "dependencies": { - "sharp-form": "file:../form", - "sharp-ui": "file:../ui" - } + "main": "src/index.ts" } diff --git a/packages/commands/src/components/CommandFormModal.vue b/packages/commands/src/components/CommandFormModal.vue deleted file mode 100644 index 8ba144e46..000000000 --- a/packages/commands/src/components/CommandFormModal.vue +++ /dev/null @@ -1,79 +0,0 @@ - - - diff --git a/packages/commands/src/components/CommandViewPanel.vue b/packages/commands/src/components/CommandViewPanel.vue deleted file mode 100644 index 6ae9a34cf..000000000 --- a/packages/commands/src/components/CommandViewPanel.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - diff --git a/packages/commands/src/components/CommandsDropdown.vue b/packages/commands/src/components/CommandsDropdown.vue deleted file mode 100644 index b1cdd9a23..000000000 --- a/packages/commands/src/components/CommandsDropdown.vue +++ /dev/null @@ -1,92 +0,0 @@ - - - diff --git a/packages/commands/src/components/index.js b/packages/commands/src/components/index.js deleted file mode 100644 index aaf648d7e..000000000 --- a/packages/commands/src/components/index.js +++ /dev/null @@ -1,3 +0,0 @@ -export { default as CommandFormModal } from './CommandFormModal.vue'; -export { default as CommandsDropdown } from './CommandsDropdown.vue'; -export { default as CommandViewPanel } from './CommandViewPanel.vue'; diff --git a/packages/commands/src/index.js b/packages/commands/src/index.js deleted file mode 100644 index bbb4e21ff..000000000 --- a/packages/commands/src/index.js +++ /dev/null @@ -1,7 +0,0 @@ - -export default function(Vue, { store, router }) { - -} - -export * from './components'; -export { commands as commandsModule } from './store'; \ No newline at end of file diff --git a/packages/commands/src/store/commands.js b/packages/commands/src/store/commands.js deleted file mode 100644 index ac55029af..000000000 --- a/packages/commands/src/store/commands.js +++ /dev/null @@ -1,26 +0,0 @@ - - -export const SET_COMMANDS = 'SET_COMMANDS'; - -export default { - namespaced: true, - - state: { - commands: null, - }, - mutations: { - [SET_COMMANDS](state, commands) { - state.commands = commands; - } - }, - getters: { - forType(state) { - return type => state.commands ? state.commands[type] : null; - } - }, - actions: { - update({ commit }, { commands }) { - commit(SET_COMMANDS, commands); - } - }, -} \ No newline at end of file diff --git a/packages/commands/src/store/index.js b/packages/commands/src/store/index.js deleted file mode 100644 index f16b99c1b..000000000 --- a/packages/commands/src/store/index.js +++ /dev/null @@ -1,2 +0,0 @@ - -export { default as commands } from './commands'; \ No newline at end of file diff --git a/packages/dashboard/__tests__/store/__snapshots__/dashboard.test.js.snap b/packages/dashboard/__tests__/store/__snapshots__/dashboard.test.js.snap deleted file mode 100644 index f37aa64c7..000000000 --- a/packages/dashboard/__tests__/store/__snapshots__/dashboard.test.js.snap +++ /dev/null @@ -1,12 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`store dashboard state matches snapshot 1`] = ` -Object { - "config": null, - "dashboardKey": null, - "data": null, - "fields": null, - "layout": null, - "widgets": null, -} -`; diff --git a/packages/dashboard/__tests__/store/dashboard.test.js b/packages/dashboard/__tests__/store/dashboard.test.js deleted file mode 100644 index 465dd3f99..000000000 --- a/packages/dashboard/__tests__/store/dashboard.test.js +++ /dev/null @@ -1,26 +0,0 @@ -import dashboard, { UPDATE} from '../../src/store/dashboard'; - -jest.mock('sharp'); - -describe('store dashboard', ()=>{ - test('state matches snapshot', ()=>{ - expect(dashboard.state).toMatchSnapshot(); - }); - - describe('mutations', ()=>{ - test('UPDATE', ()=>{ - const state = {}; - const data = {}; - const widgets = {}; - const layout = {}; - const config = {}; - dashboard.mutations[UPDATE](state, { - data, widgets, layout, config - }); - expect(state.data).toBe(data); - expect(state.widgets).toBe(widgets); - expect(state.layout).toBe(layout); - expect(state.config).toBe(config); - }); - }); -}); diff --git a/packages/dashboard/package-lock.json b/packages/dashboard/package-lock.json deleted file mode 100644 index 0ccfafabe..000000000 --- a/packages/dashboard/package-lock.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "sharp-dashboard", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "sharp-commands": { - "version": "file:../commands", - "requires": { - "sharp-form": "file:../form", - "sharp-ui": "file:../ui" - } - }, - "sharp-filters": { - "version": "file:../filters", - "requires": { - "sharp-form": "file:../form" - } - }, - "sharp-ui": { - "version": "file:../ui", - "requires": { - "sharp-filters": "file:../filters" - } - } - } -} diff --git a/packages/dashboard/package.json b/packages/dashboard/package.json index bb157e0da..8116b12f6 100644 --- a/packages/dashboard/package.json +++ b/packages/dashboard/package.json @@ -1,11 +1,6 @@ { - "name": "sharp-dashboard", + "name": "@sharp/dashboard", "private": true, "version": "1.0.0", - "main": "src/index.js", - "dependencies": { - "sharp-commands": "file:../commands", - "sharp-filters": "file:../filters", - "sharp-ui": "file:../ui" - } + "main": "src/index.js" } diff --git a/packages/dashboard/scss/_page.scss b/packages/dashboard/scss/_page.scss index 81af89181..3cc114008 100644 --- a/packages/dashboard/scss/_page.scss +++ b/packages/dashboard/scss/_page.scss @@ -1,11 +1,9 @@ -.dashboard { - .SharpDashboardPage { - .SharpGrid > * { - margin-bottom: 1rem; - &:last-child { - margin-bottom: 0; - } +.SharpDashboardPage { + .SharpGrid > * { + margin-bottom: 1rem; + &:last-child { + margin-bottom: 0; } } } diff --git a/packages/dashboard/src/api.js b/packages/dashboard/src/api.js deleted file mode 100644 index 988e80a7d..000000000 --- a/packages/dashboard/src/api.js +++ /dev/null @@ -1,24 +0,0 @@ -import { api } from 'sharp'; - -export function getDashboard({ dashboardKey, filters }) { - return api.get(`dashboard/${dashboardKey}`, { - params: { - ...filters, - }, - }).then(response => response.data); -} - -export function postDashboardCommand({ dashboardKey, commandKey, query, data }) { - return api.post(`dashboard/${dashboardKey}/command/${commandKey}`, { - query, - ...data, - }, { responseType: 'blob' }); -} - -export function getDashboardCommandForm({ dashboardKey, commandKey, query }) { - return api.get(`dashboard/${dashboardKey}/command/${commandKey}/form`, { - params: { - ...query, - }, - }).then(response => response.data); -} diff --git a/packages/dashboard/src/components/ActionBar.vue b/packages/dashboard/src/components/ActionBar.vue deleted file mode 100644 index 00bca8e83..000000000 --- a/packages/dashboard/src/components/ActionBar.vue +++ /dev/null @@ -1,64 +0,0 @@ - - - diff --git a/packages/dashboard/src/components/Section.vue b/packages/dashboard/src/components/Section.vue deleted file mode 100644 index 2dd8cd9d5..000000000 --- a/packages/dashboard/src/components/Section.vue +++ /dev/null @@ -1,87 +0,0 @@ - - - diff --git a/packages/dashboard/src/components/Widget.vue b/packages/dashboard/src/components/Widget.vue deleted file mode 100644 index a6bdc1a6b..000000000 --- a/packages/dashboard/src/components/Widget.vue +++ /dev/null @@ -1,37 +0,0 @@ - - diff --git a/packages/dashboard/src/components/pages/DashboardPage.vue b/packages/dashboard/src/components/pages/DashboardPage.vue deleted file mode 100644 index 6d38c5d88..000000000 --- a/packages/dashboard/src/components/pages/DashboardPage.vue +++ /dev/null @@ -1,164 +0,0 @@ - - - diff --git a/packages/dashboard/src/components/widgets/Figure.vue b/packages/dashboard/src/components/widgets/Figure.vue deleted file mode 100644 index 6a5447480..000000000 --- a/packages/dashboard/src/components/widgets/Figure.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - diff --git a/packages/dashboard/src/components/widgets/OrderedList.vue b/packages/dashboard/src/components/widgets/OrderedList.vue deleted file mode 100644 index 19dd3c621..000000000 --- a/packages/dashboard/src/components/widgets/OrderedList.vue +++ /dev/null @@ -1,56 +0,0 @@ - - - diff --git a/packages/dashboard/src/components/widgets/Panel.vue b/packages/dashboard/src/components/widgets/Panel.vue deleted file mode 100644 index 5f68b3578..000000000 --- a/packages/dashboard/src/components/widgets/Panel.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - diff --git a/packages/dashboard/src/components/widgets/chart/Chart.vue b/packages/dashboard/src/components/widgets/chart/Chart.vue deleted file mode 100644 index 7601a9b94..000000000 --- a/packages/dashboard/src/components/widgets/chart/Chart.vue +++ /dev/null @@ -1,121 +0,0 @@ - - - diff --git a/packages/dashboard/src/components/widgets/chart/bar/Bar.vue b/packages/dashboard/src/components/widgets/chart/bar/Bar.vue deleted file mode 100644 index 5adc3c2a8..000000000 --- a/packages/dashboard/src/components/widgets/chart/bar/Bar.vue +++ /dev/null @@ -1,51 +0,0 @@ - - - diff --git a/packages/dashboard/src/components/widgets/chart/bar/index.js b/packages/dashboard/src/components/widgets/chart/bar/index.js deleted file mode 100644 index ec1860118..000000000 --- a/packages/dashboard/src/components/widgets/chart/bar/index.js +++ /dev/null @@ -1,3 +0,0 @@ - -export { default as Bar } from './Bar.vue'; -export * from './transform-data'; diff --git a/packages/dashboard/src/components/widgets/chart/bar/transform-data.js b/packages/dashboard/src/components/widgets/chart/bar/transform-data.js deleted file mode 100644 index 788838f45..000000000 --- a/packages/dashboard/src/components/widgets/chart/bar/transform-data.js +++ /dev/null @@ -1,15 +0,0 @@ -import { normalizeColors } from "../../../../util/chart"; - -export function transformBarData(widgetValue) { - const datasets = widgetValue?.datasets ?? []; - const labels = widgetValue?.labels ?? []; - - return { - series: datasets.map(dataset => ({ - data: dataset.data, - name: dataset.label, - })), - colors: normalizeColors(datasets.map(dataset => dataset.color)), - labels, - } -} \ No newline at end of file diff --git a/packages/dashboard/src/components/widgets/chart/index.js b/packages/dashboard/src/components/widgets/chart/index.js deleted file mode 100644 index e577647e8..000000000 --- a/packages/dashboard/src/components/widgets/chart/index.js +++ /dev/null @@ -1,23 +0,0 @@ -import { Line, transformLineData } from "./line"; -import { Bar, transformBarData } from "./bar"; -import { Pie, transformPieData } from "./pie"; - -export function getChartByType(type) { - if(type === 'line') { - return Line; - } else if(type === 'bar') { - return Bar; - } else if(type === 'pie') { - return Pie; - } -} - -export function transformData(type, value) { - if(type === 'line') { - return transformLineData(value); - } else if(type === 'bar') { - return transformBarData(value); - } else if(type === 'pie') { - return transformPieData(value) - } -} \ No newline at end of file diff --git a/packages/dashboard/src/components/widgets/chart/line/Line.vue b/packages/dashboard/src/components/widgets/chart/line/Line.vue deleted file mode 100644 index 1a4a6acd1..000000000 --- a/packages/dashboard/src/components/widgets/chart/line/Line.vue +++ /dev/null @@ -1,50 +0,0 @@ - - - diff --git a/packages/dashboard/src/components/widgets/chart/line/index.js b/packages/dashboard/src/components/widgets/chart/line/index.js deleted file mode 100644 index ac8df1e70..000000000 --- a/packages/dashboard/src/components/widgets/chart/line/index.js +++ /dev/null @@ -1,3 +0,0 @@ - -export { default as Line } from './Line.vue'; -export * from './transform-data'; diff --git a/packages/dashboard/src/components/widgets/chart/line/transform-data.js b/packages/dashboard/src/components/widgets/chart/line/transform-data.js deleted file mode 100644 index 2cb9b9736..000000000 --- a/packages/dashboard/src/components/widgets/chart/line/transform-data.js +++ /dev/null @@ -1,15 +0,0 @@ -import { normalizeColors } from "../../../../util/chart"; - -export function transformLineData(widgetValue) { - const datasets = widgetValue?.datasets ?? []; - const labels = widgetValue?.labels ?? []; - - return { - series: datasets.map(dataset => ({ - data: dataset.data, - name: dataset.label, - })), - colors: normalizeColors(datasets.map(dataset => dataset.color)), - labels, - } -} \ No newline at end of file diff --git a/packages/dashboard/src/components/widgets/chart/pie/Pie.vue b/packages/dashboard/src/components/widgets/chart/pie/Pie.vue deleted file mode 100644 index f4ac4aedc..000000000 --- a/packages/dashboard/src/components/widgets/chart/pie/Pie.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - diff --git a/packages/dashboard/src/components/widgets/chart/pie/index.js b/packages/dashboard/src/components/widgets/chart/pie/index.js deleted file mode 100644 index ff58454fe..000000000 --- a/packages/dashboard/src/components/widgets/chart/pie/index.js +++ /dev/null @@ -1,3 +0,0 @@ - -export { default as Pie } from './Pie.vue'; -export * from './transform-data'; diff --git a/packages/dashboard/src/components/widgets/chart/pie/transform-data.js b/packages/dashboard/src/components/widgets/chart/pie/transform-data.js deleted file mode 100644 index d5e8223cc..000000000 --- a/packages/dashboard/src/components/widgets/chart/pie/transform-data.js +++ /dev/null @@ -1,12 +0,0 @@ -import { normalizeColors } from "../../../../util/chart"; - -export function transformPieData(widgetValue) { - const datasets = (widgetValue?.datasets ?? []) - .filter(dataset => dataset.data?.length > 0); - - return { - series: datasets.map(dataset => dataset.data[0]), - colors: normalizeColors(datasets.map(dataset => dataset.color)), - labels: datasets.map(dataset => dataset.label ?? ''), - } -} \ No newline at end of file diff --git a/packages/dashboard/src/components/widgets/index.js b/packages/dashboard/src/components/widgets/index.js deleted file mode 100644 index ec330b6d8..000000000 --- a/packages/dashboard/src/components/widgets/index.js +++ /dev/null @@ -1,16 +0,0 @@ -import SharpWidgetPanel from './Panel.vue'; -import SharpWidgetOrderedList from './OrderedList.vue'; -import SharpWidgetFigure from './Figure.vue'; -import SharpWidgetChart from './chart/Chart.vue'; - -export function widgetByType(type) { - if(type === 'graph') { - return SharpWidgetChart; - } else if(type === 'panel') { - return SharpWidgetPanel; - } else if(type === 'list') { - return SharpWidgetOrderedList; - } else if(type === 'figure') { - return SharpWidgetFigure; - } -} diff --git a/packages/dashboard/src/index.js b/packages/dashboard/src/index.js deleted file mode 100644 index 2af9c49c8..000000000 --- a/packages/dashboard/src/index.js +++ /dev/null @@ -1,7 +0,0 @@ -import dashboard from './store/dashboard'; -import routes from './routes'; - -export default function(Vue, { router, store }) { - store.registerModule('dashboard', dashboard); - router.addRoutes(routes); -} \ No newline at end of file diff --git a/packages/dashboard/src/routes.js b/packages/dashboard/src/routes.js deleted file mode 100644 index 22ca72ce4..000000000 --- a/packages/dashboard/src/routes.js +++ /dev/null @@ -1,10 +0,0 @@ -import DashboardPage from './components/pages/DashboardPage.vue'; - -export default [ - /** New spec */ - { - name: 'dashboard', - path: '/s-dashboard/:dashboardKey', - component: DashboardPage, - }, -] diff --git a/packages/dashboard/src/store/dashboard.js b/packages/dashboard/src/store/dashboard.js deleted file mode 100644 index 21598711d..000000000 --- a/packages/dashboard/src/store/dashboard.js +++ /dev/null @@ -1,82 +0,0 @@ -import { - getDashboard, - postDashboardCommand, - getDashboardCommandForm, -} from "../api"; -import { filtersModule as filters } from 'sharp-filters'; -import { commandsModule as commands } from 'sharp-commands'; - -export const UPDATE = 'UPDATE'; - -export default { - namespaced: true, - modules: { - filters, - commands, - }, - state: { - dashboardKey: null, - data: null, - widgets: null, - fields: null, - config: null, - layout: null, - }, - mutations: { - [UPDATE](state, { data, layout, widgets, config, fields }) { - state.data = data; - state.widgets = widgets; - state.layout = layout; - state.config = config; - state.fields = fields; - }, - setDashboardKey(state, dashboardKey) { - state.dashboardKey = dashboardKey; - }, - }, - actions: { - update({ commit, dispatch }, { data, widgets, layout, config, fields, filtersValues }) { - commit(UPDATE, { - data, - widgets, - layout, - config, - fields, - }); - return Promise.all([ - dispatch('filters/update', { - filters: config.filters, - values: filtersValues - }), - dispatch('commands/update', { - commands: config.commands - }) - ]); - }, - async get({ state, dispatch, getters }, { filtersValues }) { - const data = await getDashboard({ - dashboardKey: state.dashboardKey, - filters: getters['filters/getQueryParams'](filtersValues) - }); - await dispatch('update', { - ...data, - filtersValues, - }); - }, - postCommand({ state }, { command, query, data }) { - return postDashboardCommand({ - dashboardKey: state.dashboardKey, - commandKey: command.key, - query, - data, - }); - }, - getCommandForm({ state }, { command, query }) { - return getDashboardCommandForm({ - dashboardKey: state.dashboardKey, - commandKey: command.key, - query, - }); - }, - } -} diff --git a/packages/dashboard/src/util/chart.js b/packages/dashboard/src/util/chart.js deleted file mode 100644 index cee84c3ca..000000000 --- a/packages/dashboard/src/util/chart.js +++ /dev/null @@ -1,51 +0,0 @@ -import fr from 'apexcharts/dist/locales/fr.json'; -import ru from 'apexcharts/dist/locales/ru.json'; -import es from 'apexcharts/dist/locales/es.json'; -import de from 'apexcharts/dist/locales/de.json'; -import en from 'apexcharts/dist/locales/en.json'; - - -export function defaultChartOptions() { - return { - chart: { - animations: { - enabled: false, - }, - toolbar: { - show: false, - tools: { - pan: false, - zoom: true, - download: false, - }, - }, - locales: [ - en, fr, ru, es, de, - ], - defaultLocale: document.documentElement.lang, - }, - legend: { - showForSingleSeries: true, - }, - tooltip: { - y: { - title: { - formatter: (seriesName, { seriesIndex }) => - seriesName !== `series-${seriesIndex + 1}` ? `${seriesName}:` : '' - } - } - }, - } -} - -export function hasLegends(options) { - return !!(options.legend?.show ?? true) -} - -export function normalizeColors(colors) { - const ctx = document.createElement('canvas').getContext('2d'); - return colors.map(color => { - ctx.fillStyle = color; - return ctx.fillStyle - }); -} diff --git a/packages/embeds/package.json b/packages/embeds/package.json deleted file mode 100644 index 851b40b08..000000000 --- a/packages/embeds/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "sharp-embeds", - "private": true, - "version": "1.0.0", - "main": "src/index.js" -} diff --git a/packages/embeds/src/api.js b/packages/embeds/src/api.js deleted file mode 100644 index 12809da37..000000000 --- a/packages/embeds/src/api.js +++ /dev/null @@ -1,24 +0,0 @@ -import { api } from 'sharp'; - - -export function postResolveEmbeds({ entityKey, instanceId, embedKey, embeds, form=false }) { - return api.post(`/embeds/${embedKey}/${entityKey}/${instanceId ?? ''}`, { - embeds, - form, - }) - .then(response => response.data.embeds); -} - -export function postResolveEmbedForm({ entityKey, instanceId, embedKey, attributes }) { - return api.post(`/embeds/${embedKey}/${entityKey}${instanceId ? `/${instanceId}` : ''}/form/init`, { - ...attributes, - }) - .then(response => response.data); -} - -export function postEmbedForm({ entityKey, instanceId, embedKey, data }) { - return api.post(`/embeds/${embedKey}/${entityKey}${instanceId ? `/${instanceId}` : ''}/form`, { - ...data, - }) - .then(response => response.data); -} diff --git a/packages/embeds/src/components/EmbedRenderer.vue b/packages/embeds/src/components/EmbedRenderer.vue deleted file mode 100644 index 8581e3204..000000000 --- a/packages/embeds/src/components/EmbedRenderer.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - diff --git a/packages/embeds/src/components/index.js b/packages/embeds/src/components/index.js deleted file mode 100644 index 22f876804..000000000 --- a/packages/embeds/src/components/index.js +++ /dev/null @@ -1,5 +0,0 @@ -import EmbedRenderer from "./EmbedRenderer.vue"; - -export { - EmbedRenderer, -} diff --git a/packages/embeds/src/index.js b/packages/embeds/src/index.js deleted file mode 100644 index 975918700..000000000 --- a/packages/embeds/src/index.js +++ /dev/null @@ -1,5 +0,0 @@ - - -export * from './api'; -export * from './util'; -export * from './components'; diff --git a/packages/embeds/src/util/attributes.js b/packages/embeds/src/util/attributes.js deleted file mode 100644 index 523157606..000000000 --- a/packages/embeds/src/util/attributes.js +++ /dev/null @@ -1,17 +0,0 @@ - - -export function parseAttributeValue(value) { - try { - return JSON.parse(value); - } catch { - return value; - } -} - -export function serializeAttributeValue(value) { - if(value && typeof value === 'object') { - return JSON.stringify(value); - } - - return value; -} diff --git a/packages/embeds/src/util/index.js b/packages/embeds/src/util/index.js deleted file mode 100644 index 688f1e5f2..000000000 --- a/packages/embeds/src/util/index.js +++ /dev/null @@ -1,3 +0,0 @@ - - -export * from './attributes'; diff --git a/packages/entity-list/__tests__/EntityList.test.js b/packages/entity-list/__tests__/EntityList.test.js deleted file mode 100644 index 1b95d1fe8..000000000 --- a/packages/entity-list/__tests__/EntityList.test.js +++ /dev/null @@ -1,847 +0,0 @@ -import merge from 'lodash/merge'; - -import Vuex from 'vuex'; -import {createLocalVue, shallowMount} from '@vue/test-utils'; -import SharpEntityList from '../src/components/EntityList.vue'; -import entityListModule from '../src/store/entity-list'; -import {formUrl, showUrl} from 'sharp'; -import {MockInjections} from "@sharp/test-utils"; - -jest.mock('sharp/mixins/Localization'); -jest.mock('sharp/mixins/DynamicView'); -jest.mock('sharp'); -jest.mock('../src/store/entity-list'); - - -describe('EntityList', () => { - function createWrapper({ storeModule={}, propsData, ...options }={}) { - const localVue = createLocalVue(); - localVue.use(Vuex); - const wrapper = shallowMount(SharpEntityList, { - provide: MockInjections.provide, - // language=Vue - stubs: { - DataList: - `
- -
`, - DataListRow: - `
- -
`, - Dropdown: - `
- - -
`, - CommandsDropdown: - `
- - -
` - }, - data() { - return withDefaults({ - - }); - }, - propsData: { - entityKey: 'spaceship', - module: 'entity-list', - ...propsData, - }, - created() { - jest.spyOn(this, 'init').mockImplementation(); - }, - store: new Vuex.Store({ - modules: { - 'entity-list': merge({}, entityListModule, storeModule), - } - }), - localVue, - scopedSlots: { - 'action-bar': '
Action bar
', - }, - ...options, - }); - wrapper.vm.$store.dispatch = jest.fn(()=>Promise.resolve()); - return wrapper; - } - - function withDefaults(data) { - return merge({ - layout: [], - containers: {}, - data: { - list: { - totalCount: 0, - }, - }, - config: { - commands: {} - }, - authorizations: {}, - }, data); - } - - test('mount', ()=>{ - const wrapper = createWrapper(); - wrapper.setMethods({ - instanceUrl:()=>'instanceUrl', - }); - wrapper.setData(withDefaults({})); - wrapper.setData({ ready:true }); - expect(wrapper.html()).toMatchSnapshot(); - }); - - test('mount with row actions', ()=>{ - const wrapper = createWrapper({ - computed: { - hasActionsColumn: ()=>true, - } - }); - wrapper.setMethods({ - instanceUrl: ()=>'instanceUrl', - instanceHasState: ()=>true, - instanceHasCommands: ()=>true, - instanceStateIconColor: ()=>'instanceStateIconColor', - instanceStateLabel: ()=>'instanceStateLabel' - }); - wrapper.setData(withDefaults({ - config: { - state: { - values: [{ value:1, label:'state 1', color: '#000' }] - } - } - })); - wrapper.setData({ ready:true }); - expect(wrapper.html()).toMatchSnapshot(); - }); - - describe('computed', () => { - test('hasMultiforms', () => { - const wrapper = createWrapper(); - expect(wrapper.vm.hasMultiforms).toEqual(false); - wrapper.setData({ - forms: { - custom: {} - } - }); - expect(wrapper.vm.hasMultiforms).toEqual(true); - }); - - test('hasShowPage', () => { - const wrapper = createWrapper(); - wrapper.setData({ - config: {} - }); - expect(wrapper.vm.hasShowPage).toEqual(false); - wrapper.setData({ - config: { - hasShowPage: true, - } - }); - expect(wrapper.vm.hasShowPage).toEqual(true); - }); - - test('apiParams', () => { - const wrapper = createWrapper({ - computed: { - query: () => ({ - search: 'search', - }) - } - }); - expect(wrapper.vm.apiParams).toEqual({ - search: 'search', - }); - }); - - test('apiPath', () => { - const wrapper = createWrapper({ - propsData: { - entityKey: 'entity-key' - }, - }); - expect(wrapper.vm.apiPath).toEqual('list/entity-key'); - }); - - test('allowedEntityCommands', () => { - const wrapper = createWrapper(); - wrapper.setData({ - config: { - commands: {} - } - }); - expect(wrapper.vm.allowedEntityCommands).toEqual([]); - wrapper.setData({ - config: { - commands: { - entity: [ - [{ key:'A', authorization:true }], - [{ key:'B', authorization:false }], - ] - } - } - }); - expect(wrapper.vm.allowedEntityCommands).toEqual([ - [{ key:'A', authorization:true }], [] - ]); - }); - - - test('multiforms', () => { - const wrapper = createWrapper(); - expect(wrapper.vm.multiforms).toBe(null); - wrapper.setData({ - forms: { - custom: { key:'custom' } - } - }); - expect(wrapper.vm.multiforms).toEqual([{ key:'custom' }]); - }); - - test('canCreate', () => { - const wrapper = createWrapper(); - wrapper.setData({ - authorizations: {} - }); - expect(wrapper.vm.canCreate).toEqual(false); - wrapper.setData({ - authorizations: { - create: true, - } - }); - expect(wrapper.vm.canCreate).toEqual(true); - wrapper.setProps({ - showCreateButton: false, - }); - expect(wrapper.vm.canCreate).toEqual(false); - }); - - test('canReorder', () => { - const wrapper = createWrapper(); - const reorderableConfig = { - config: { reorderable: true, }, - authorizations: { update: true }, - data: { - list: { - items: [{ id:1 }, { id: 2 }] - }, - } - }; - - wrapper.setData(reorderableConfig); - expect(wrapper.vm.canReorder).toBe(true); - - wrapper.setData(merge({}, reorderableConfig, { - config: { reorderable: false }, - })); - expect(wrapper.vm.canReorder).toBe(false); - - wrapper.setData(merge({}, reorderableConfig, { - authorizations: { update: false }, - })); - expect(wrapper.vm.canReorder).toBe(false); - - wrapper.vm.data = { - list: { - items: [{ id:1 }] - }, - } - expect(wrapper.vm.canReorder).toBe(false); - - wrapper.setData(reorderableConfig); - wrapper.setProps({ - showReorderButton: false, - }); - expect(wrapper.vm.canReorder).toBe(false); - }); - - test('canSearch', () => { - const wrapper = createWrapper(); - wrapper.setData({ - config: {} - }); - expect(wrapper.vm.canSearch).toBe(false); - wrapper.setData({ - config: { - searchable: true, - } - }); - expect(wrapper.vm.canSearch).toBe(true); - wrapper.setProps({ - showSearchField: false, - }); - expect(wrapper.vm.canSearch).toBe(false); - }); - - test('items', ()=>{ - const wrapper = createWrapper(); - wrapper.setData({ - data: { - list: { - items: [{ id:1 }] - }, - } - }); - expect(wrapper.vm.items).toEqual([{ id:1 }]); - }); - - test('columns', ()=>{ - const wrapper = createWrapper(); - wrapper.setData({ - layout: [{ key:'name', size:4 }], - containers: { - name: { - label: 'Name', - } - } - }); - expect(wrapper.vm.columns).toEqual([{ key:'name', label:'Name', size:4 }]); - }); - - test('paginated', ()=>{ - const wrapper = createWrapper(); - wrapper.setData({ - config: {} - }); - expect(wrapper.vm.paginated).toEqual(false); - wrapper.setData({ - config: { - paginated: true - } - }); - expect(wrapper.vm.paginated).toEqual(true); - }); - - test('totalCount', async ()=>{ - const wrapper = createWrapper(); - wrapper.setData({ - data: { - list: { - items: [], - totalCount: 10 - }, - } - }); - expect(wrapper.vm.totalCount).toBe(10); - wrapper.setData({ - data: { - list: { - items: [1, 2, 3], - totalCount: null, - }, - } - }); - expect(wrapper.vm.totalCount).toBe(3); - }); - - test('pageSize', ()=>{ - const wrapper = createWrapper(); - wrapper.setData({ - data: { - list: { - pageSize: 5 - } - } - }); - expect(wrapper.vm.pageSize).toBe(5); - }); - }); - - describe('methods',()=>{ - test('storeGetter', ()=>{ - const wrapper = createWrapper({ - storeModule: { - getters: { - getter: ()=>'test', - } - } - }); - expect(wrapper.vm.storeGetter('getter')).toBe('test'); - }); - test('handleSearchSubmitted', ()=>{ - const wrapper = createWrapper(); - wrapper.vm.handleSearchSubmitted('search'); - expect(wrapper.vm.$store.dispatch).toHaveBeenCalledWith('entity-list/setQuery', { - search:'search', - page: 1, - }); - expect(wrapper.vm.search).toEqual('search'); - }); - - test('handleFilterChanged', ()=>{ - const wrapper = createWrapper({ - computed: { - filterNextQuery:() => jest.fn(()=>({ filter:'nextQuery' })), - } - }); - wrapper.vm.handleFilterChanged({ key:'name' }, 'George'); - expect(wrapper.vm.filterNextQuery).toHaveBeenCalledWith({ filter:{ key:'name' }, value:'George' }); - expect(wrapper.vm.$store.dispatch).toHaveBeenCalledWith('entity-list/setQuery', { - filter: 'nextQuery', - page: 1, - }); - }); - - test('handleReorderButtonClicked', () => { - const wrapper = createWrapper(); - const items = [{ id:1 }]; - wrapper.setData({ - data: { - list: { - items - }, - } - }); - wrapper.vm.handleReorderButtonClicked(); - expect(wrapper.vm.reordering).toBe(true); - expect(wrapper.vm.reorderedItems).toEqual([{ id:1 }]); - - wrapper.vm.handleReorderButtonClicked(); - expect(wrapper.vm.reordering).toBe(false); - expect(wrapper.vm.reorderedItems).toEqual(null); - }); - - test('handleReorderSubmitted', async () => { - const wrapper = createWrapper(); - // wrapper.vm.$route.params.id = 'spaceship'; - wrapper.setData({ - reorderedItems: [{ id:1 }], - data: {} - }); - wrapper.setMethods({ - instanceId: ()=>'id' - }); - await wrapper.vm.handleReorderSubmitted(); - expect(wrapper.vm.$store.dispatch).toHaveBeenCalledWith('entity-list/reorder', { instances:['id'] }); - expect(wrapper.vm.data.list.items).toEqual([{ id:1 }]); - expect(wrapper.vm.reorderedItems).toEqual(null); - expect(wrapper.vm.reordering).toEqual(false); - }); - - test('handleCreateButtonClicked', () => { - const wrapper = createWrapper(); - wrapper.setMethods({ - formUrl: jest.fn(()=>'formUrl') - }); - wrapper.vm.handleCreateButtonClicked(); - expect(location.href).toEqual('formUrl') - - - location.href = ''; - wrapper.vm.handleCreateButtonClicked({ key:'form' }); - expect(wrapper.vm.formUrl).toHaveBeenCalledWith({ formKey:'form' }); - expect(location.href).toEqual('formUrl'); - }); - - test('instanceId', () => { - const wrapper = createWrapper(); - wrapper.setData({ - config: { - } - }); - expect(wrapper.vm.instanceId({ id:3 })).toEqual(3); - wrapper.setData({ - config: { - instanceIdAttribute: 'key' - } - }); - expect(wrapper.vm.instanceId({ key:3 })).toEqual(3); - }); - - test('instanceState', () => { - const wrapper = createWrapper(); - wrapper.setMethods({ - instanceHasState: jest.fn(()=>false) - }); - expect(wrapper.vm.instanceState({})).toEqual(null); - wrapper.setMethods({ - instanceHasState: jest.fn(()=>true) - }); - wrapper.setData({ - config: { - state: { - } - } - }); - expect(wrapper.vm.instanceState({ state:'verified' })).toEqual('verified'); - wrapper.setData({ - config: { - state: { - attribute: 'stateKey' - } - } - }); - expect(wrapper.vm.instanceState({ stateKey:'validated' })).toEqual('validated'); - }); - - test('instanceHasState', () => { - const wrapper = createWrapper(); - wrapper.setData({ - config: { - } - }); - expect(wrapper.vm.instanceHasState({})).toEqual(false); - wrapper.setData({ - config: { - state: { - attribute: 'state', - values: [], - } - } - }); - expect(wrapper.vm.instanceHasState({})).toEqual(true); - wrapper.setProps({ - showEntityState: false, - }); - expect(wrapper.vm.instanceHasState({})).toEqual(false); - }); - - test('instanceHasComands', () => { - const wrapper = createWrapper(); - wrapper.setMethods({ - instanceCommands: jest.fn(() => [[]]) - }); - expect(wrapper.vm.instanceHasCommands({})).toEqual(false); - wrapper.setMethods({ - instanceCommands: jest.fn(() => [[{ id:1 }], [{ id:5 }]]) - }); - expect(wrapper.vm.instanceHasCommands({})).toEqual(true); - }); - - test('instanceHasStateAuthorization', () => { - const wrapper = createWrapper(); - wrapper.setMethods({ - instanceHasState: jest.fn(()=>false) - }); - expect(wrapper.vm.instanceHasStateAuthorization({})).toEqual(false); - wrapper.setMethods({ - instanceHasState: jest.fn(()=>true), - instanceId: jest.fn(()=>1), - }); - wrapper.setData({ - config: { - state: { - } - } - }); - expect(wrapper.vm.instanceHasStateAuthorization({})).toEqual(false); - wrapper.setData({ - config: { - state: { - authorization: true - } - } - }); - expect(wrapper.vm.instanceHasStateAuthorization({})).toEqual(true); - wrapper.setData({ - config: { - state: { - authorization: [2, 3] - } - } - }); - expect(wrapper.vm.instanceHasStateAuthorization({})).toEqual(false); - wrapper.setData({ - config: { - state: { - authorization: [1, 2] - } - } - }); - expect(wrapper.vm.instanceHasStateAuthorization({})).toEqual(true); - }); - - test('instanceCommands', () => { - const wrapper = createWrapper(); - wrapper.setMethods({ - instanceId: jest.fn(()=>1), - }); - wrapper.setData({ - config: { - commands: { - } - } - }); - expect(wrapper.vm.instanceCommands({})).toEqual([]); - wrapper.setData({ - config: { - commands: { - instance: [[{ authorization:[2, 3] }], [{ authorization:[1,2] }]] - } - } - }); - expect(wrapper.vm.instanceCommands({})).toEqual([[], [{ authorization:[1,2] }]]); - }); - - test('instanceForm', () => { - const wrapper = createWrapper({ - computed: { - multiforms: ()=>[{ instances:[3,4] }, { instances:[1,2] }] - } - }); - wrapper.setMethods({ - instanceId: jest.fn(()=>1) - }); - expect(wrapper.vm.instanceForm({})).toEqual({ instances:[1,2] }); - }); - - test('instanceUrl', () => { - let wrapper; - - //classic form - wrapper = createWrapper({ - computed: { - hasMultiforms: ()=>false, - hasShowPage: ()=>false, - } - }); - wrapper.setMethods({ - instanceId: jest.fn(()=>1), - formUrl: jest.fn(()=>'formUrl'), - instanceHasViewAuthorization: jest.fn(()=>true), - }); - expect(wrapper.vm.instanceUrl({})).toEqual('formUrl'); - expect(wrapper.vm.formUrl).toHaveBeenCalledWith({ instanceId:1 }); - - wrapper.setMethods({ - instanceHasViewAuthorization: jest.fn(()=>false), - }); - expect(wrapper.vm.instanceUrl({})).toBe(null); - - //multiforms - wrapper = createWrapper({ - computed: { - hasMultiforms: ()=>true, - hasShowPage: ()=>false, - } - }); - wrapper.setMethods({ - instanceId: jest.fn(()=>1), - formUrl: jest.fn(()=>'formUrl'), - instanceHasViewAuthorization: jest.fn(()=>true), - }); - wrapper.setMethods({ - instanceForm: jest.fn(()=>null), - }); - expect(wrapper.vm.instanceUrl({})).toEqual('formUrl'); - expect(wrapper.vm.formUrl).toHaveBeenCalledWith({ formKey:undefined, instanceId:1 }); - - wrapper.setMethods({ - instanceForm: jest.fn(()=>({ key:'form' })), - }); - expect(wrapper.vm.instanceUrl({})).toEqual('formUrl'); - expect(wrapper.vm.formUrl).toHaveBeenCalledWith({ formKey:'form', instanceId:1 }); - - //show page - wrapper = createWrapper({ - computed: { - hasMultiforms: ()=>false, - hasShowPage: ()=>true, - } - }); - wrapper.setMethods({ - instanceId: jest.fn(()=>1), - showUrl: jest.fn(()=>'showUrl'), - instanceHasViewAuthorization: jest.fn(()=>true), - }); - expect(wrapper.vm.instanceUrl({})).toEqual('showUrl'); - expect(wrapper.vm.showUrl).toHaveBeenCalledWith({ instanceId:1 }); - }); - - test('instanceHasViewAuthorization', ()=>{ - const wrapper = createWrapper(); - wrapper.setMethods({ - instanceId: jest.fn(()=>1) - }); - wrapper.setData({ - authorizations: { - } - }); - expect(wrapper.vm.instanceHasViewAuthorization({})).toEqual(false); - wrapper.setData({ - authorizations: { - view: true, - } - }); - expect(wrapper.vm.instanceHasViewAuthorization({})).toEqual(true); - wrapper.setData({ - authorizations: { - view: [2], - } - }); - expect(wrapper.vm.instanceHasViewAuthorization({})).toEqual(false); - wrapper.setData({ - authorizations: { - view: [2, 1], - } - }); - expect(wrapper.vm.instanceHasViewAuthorization({})).toEqual(true); - }); - - test('handleSortChanged', () => { - const wrapper = createWrapper({ - computed: { - query: ()=>({ - search: 'abc', - }) - } - }); - wrapper.vm.handleSortChanged({ - prop: 'name', - dir: 'desc', - }); - expect(wrapper.vm.$store.dispatch).toHaveBeenCalledWith('entity-list/setQuery', { - search: 'abc', - page: 1, - sort: 'name', - dir: 'desc', - }); - }); - - test('handlePageChanged', () => { - const wrapper = createWrapper({ - computed: { - query: () => ({ - sort: 'name', - }) - } - }); - wrapper.vm.handlePageChanged(2); - expect(wrapper.vm.$store.dispatch).toHaveBeenCalledWith('entity-list/setQuery', { - sort: 'name', - page: 2, - }); - }); - - test('formUrl', () => { - const wrapper = createWrapper({ - propsData: { - entityKey: 'entityKey' - } - }); - - formUrl.mockClear(); - wrapper.vm.formUrl({ instanceId:'instanceId' }); - expect(formUrl).toHaveBeenCalledWith({ entityKey:'entityKey', instanceId:'instanceId' }, { append:true }); - - - formUrl.mockClear(); - wrapper.vm.formUrl({ instanceId:'instanceId', formKey:'formKey' }); - expect(formUrl).toHaveBeenCalledWith({ entityKey:'entityKey:formKey', instanceId:'instanceId' }, { append:true }); - }); - - test('showUrl', () => { - const wrapper = createWrapper({ - propsData: { - entityKey: 'entityKey' - } - }); - showUrl.mockClear(); - wrapper.vm.showUrl({ instanceId:'instanceId' }) - expect(showUrl).toHaveBeenCalledWith({ entityKey:'entityKey', instanceId:'instanceId' }, { append:true }); - }); - - test('handleCommandRequested', ()=>{ - const wrapper = createWrapper(); - wrapper.setMethods({ - sendCommand: jest.fn() - }); - wrapper.vm.handleCommandRequested('command', { endpoint:'endpoint' }); - expect(wrapper.vm.sendCommand).toHaveBeenCalledWith('command', expect.objectContaining({ - postCommand: expect.any(Function), - getForm: expect.any(Function), - })); - }); - - test('commandEndpoint', ()=>{ - const wrapper = createWrapper({ - computed: { - apiPath:()=>'apiPath' - } - }); - expect(wrapper.vm.commandEndpoint('commandKey')).toEqual('apiPath/command/commandKey'); - expect(wrapper.vm.commandEndpoint('commandKey', 'instanceId')).toEqual('apiPath/command/commandKey/instanceId'); - }); - - test('isEntityCommandAllowed', ()=>{ - const wrapper = createWrapper(); - expect(wrapper.vm.isEntityCommandAllowed({ authorization:true })).toEqual(true); - expect(wrapper.vm.isEntityCommandAllowed({ })).toEqual(false); - wrapper.setProps({ - hiddenCommands: { - entity: ['command'] - }, - }); - expect(wrapper.vm.isEntityCommandAllowed({ key:'command', authorization:true })).toEqual(false); - }); - - test('isInstanceCommandAllowed', ()=>{ - const wrapper = createWrapper(); - wrapper.setMethods({ - instanceId: jest.fn(()=>1), - }); - expect(wrapper.vm.isInstanceCommandAllowed({}, { authorization:[1] })).toEqual(true); - expect(wrapper.vm.isInstanceCommandAllowed({}, { authorization:[2] })).toEqual(false); - expect(wrapper.vm.isInstanceCommandAllowed({}, { authorization:true })).toEqual(true); - expect(wrapper.vm.isInstanceCommandAllowed({}, { })).toEqual(false); - wrapper.setProps({ - hiddenCommands: { - instance: ['command'] - }, - }); - expect(wrapper.vm.isInstanceCommandAllowed({}, { key:'command', authorization:true })).toEqual(false); - }); - - test('setState', async ()=>{ - const wrapper = createWrapper({ - computed: { - apiPath:()=>'apiPath', - } - }); - wrapper.setData({ - config: { - state: { - attribute: 'stateAttribute', - } - } - }); - wrapper.setMethods({ - handleCommandActionRequested: jest.fn(), - instanceId: ()=>'id', - }); - wrapper.vm.axiosInstance = { - post: jest.fn(() => Promise.resolve({ - data: { - action: 'action', - } - })), - }; - await wrapper.vm.setState({}, 'STATE'); - expect(wrapper.vm.axiosInstance.post).toHaveBeenCalledWith('apiPath/state/id', { - attribute: 'stateAttribute', - value: 'STATE', - }); - expect(wrapper.vm.handleCommandActionRequested).toHaveBeenCalledWith('action', { action: 'action' }); - }); - - test('init', ()=>{ - const wrapper = createWrapper({ - propsData: { - entityKey: 'entityKey' - }, - storeModule: { - getters: { - query: () => ({ }), - } - } - }); - wrapper.setData(withDefaults()); - wrapper.vm.init.mockRestore(); - wrapper.vm.init(); - expect(wrapper.vm.$store.dispatch).toHaveBeenCalledWith('entity-list/setEntityKey', 'entityKey'); - }); - }); -}); diff --git a/packages/entity-list/__tests__/__snapshots__/EntityList.test.js.snap b/packages/entity-list/__tests__/__snapshots__/EntityList.test.js.snap deleted file mode 100644 index 46db38c8c..000000000 --- a/packages/entity-list/__tests__/__snapshots__/EntityList.test.js.snap +++ /dev/null @@ -1,31 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`EntityList mount 1`] = ` -
-
Action bar
-
- -
-
-
-
- - -
-`; - -exports[`EntityList mount with row actions 1`] = ` -
-
Action bar
-
- -
-
- -
-
-
- - -
-`; diff --git a/packages/entity-list/package-lock.json b/packages/entity-list/package-lock.json deleted file mode 100644 index 998888405..000000000 --- a/packages/entity-list/package-lock.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "sharp-entity-list", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "sharp-commands": { - "version": "file:../commands", - "requires": { - "sharp-form": "file:../form", - "sharp-ui": "file:../ui" - } - }, - "sharp-filters": { - "version": "file:../filters", - "requires": { - "sharp-form": "file:../form" - } - }, - "sharp-ui": { - "version": "file:../ui", - "requires": { - "sharp-filters": "file:../filters" - } - } - } -} diff --git a/packages/entity-list/package.json b/packages/entity-list/package.json index 95cc3f5cf..69b5d65c5 100644 --- a/packages/entity-list/package.json +++ b/packages/entity-list/package.json @@ -1,11 +1,6 @@ { - "name": "sharp-entity-list", + "name": "@sharp/entity-list", "private": true, "version": "1.0.0", - "main": "src/index.js", - "dependencies": { - "sharp-commands": "file:../commands", - "sharp-filters": "file:../filters", - "sharp-ui": "file:../ui" - } + "main": "src/index.ts" } diff --git a/packages/entity-list/src/api.js b/packages/entity-list/src/api.js deleted file mode 100644 index f700e7f6b..000000000 --- a/packages/entity-list/src/api.js +++ /dev/null @@ -1,11 +0,0 @@ -import { api } from 'sharp'; - - -export function deleteEntityListInstance({ entityKey, instanceId }) { - return api.delete(`list/${entityKey}/${instanceId ?? ''}`) - .then(response => response.data); -} - -export function postEntityListReorder({ entityKey, instances }) { - return api.post(`list/${entityKey}/reorder`, { instances }); -} diff --git a/packages/entity-list/src/components/ActionBar.vue b/packages/entity-list/src/components/ActionBar.vue deleted file mode 100644 index 5c7d43a68..000000000 --- a/packages/entity-list/src/components/ActionBar.vue +++ /dev/null @@ -1,191 +0,0 @@ - - - diff --git a/packages/entity-list/src/components/EntityActions.vue b/packages/entity-list/src/components/EntityActions.vue deleted file mode 100644 index 7f2e20766..000000000 --- a/packages/entity-list/src/components/EntityActions.vue +++ /dev/null @@ -1,136 +0,0 @@ - - - diff --git a/packages/entity-list/src/components/EntityList.vue b/packages/entity-list/src/components/EntityList.vue deleted file mode 100644 index aaf40768a..000000000 --- a/packages/entity-list/src/components/EntityList.vue +++ /dev/null @@ -1,815 +0,0 @@ - - - diff --git a/packages/entity-list/src/components/EntityListTitle.vue b/packages/entity-list/src/components/EntityListTitle.vue deleted file mode 100644 index 37389485e..000000000 --- a/packages/entity-list/src/components/EntityListTitle.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - diff --git a/packages/entity-list/src/components/MultiformDropdown.vue b/packages/entity-list/src/components/MultiformDropdown.vue deleted file mode 100644 index b2bf68f78..000000000 --- a/packages/entity-list/src/components/MultiformDropdown.vue +++ /dev/null @@ -1,49 +0,0 @@ - - - diff --git a/packages/entity-list/src/components/index.js b/packages/entity-list/src/components/index.js deleted file mode 100644 index e5fe49e15..000000000 --- a/packages/entity-list/src/components/index.js +++ /dev/null @@ -1,4 +0,0 @@ - -export { default as EntityList } from './EntityList.vue'; -export { default as EntityListTitle } from './EntityListTitle.vue'; -export { default as MultiformDropdown } from './MultiformDropdown.vue'; diff --git a/packages/entity-list/src/components/pages/EntityListPage.vue b/packages/entity-list/src/components/pages/EntityListPage.vue deleted file mode 100644 index 2df554297..000000000 --- a/packages/entity-list/src/components/pages/EntityListPage.vue +++ /dev/null @@ -1,70 +0,0 @@ - - - diff --git a/packages/entity-list/src/index.js b/packages/entity-list/src/index.js deleted file mode 100644 index 3b6b16afe..000000000 --- a/packages/entity-list/src/index.js +++ /dev/null @@ -1,10 +0,0 @@ -import entityList from './store/entity-list'; -import routes from './routes'; - -export default function(Vue, { router, store }) { - store.registerModule('entity-list', entityList); - router.addRoutes(routes); -} - -export * from './components'; -export { entityList as entityListModule } from './store'; \ No newline at end of file diff --git a/packages/entity-list/src/routes.js b/packages/entity-list/src/routes.js deleted file mode 100644 index 99af148eb..000000000 --- a/packages/entity-list/src/routes.js +++ /dev/null @@ -1,11 +0,0 @@ -import EntityListPage from './components/pages/EntityListPage.vue'; - -export default [ - /** New spec */ - { - name: 'entity-list', - path: '/s-list/:entityKey', - component: EntityListPage, - }, -] - diff --git a/packages/entity-list/src/store/__mocks__/entity-list.js b/packages/entity-list/src/store/__mocks__/entity-list.js deleted file mode 100644 index 316d08b02..000000000 --- a/packages/entity-list/src/store/__mocks__/entity-list.js +++ /dev/null @@ -1,25 +0,0 @@ -import { filtersModule as filters } from 'sharp-filters'; - -export default { - namespaced: true, - modules: { - filters, - }, - - state() { - return { - entityKey: null, - query: null, - } - }, - - getters: { - query: jest.fn(state => state.query), - }, - - actions: { - reorder: jest.fn(), - setEntityKey: jest.fn(), - setQuery: jest.fn(), - } -} \ No newline at end of file diff --git a/packages/entity-list/src/store/entity-list.js b/packages/entity-list/src/store/entity-list.js deleted file mode 100644 index 663fd1732..000000000 --- a/packages/entity-list/src/store/entity-list.js +++ /dev/null @@ -1,58 +0,0 @@ -import { filtersModule as filters } from 'sharp-filters'; -import { postEntityListReorder } from "../api"; - - -export const SET_ENTITY_KEY = 'SET_ENTITY_KEY'; -export const SET_QUERY = 'SET_QUERY'; - -export default { - namespaced: true, - modules: { - filters, - }, - - state() { - return { - entityKey: null, - query: {}, - } - }, - - mutations: { - [SET_ENTITY_KEY](state, entityKey) { - state.entityKey = entityKey; - }, - [SET_QUERY](state, query) { - state.query = query; - } - }, - - getters: { - query(state) { - return state.query; - }, - }, - - actions: { - update({ dispatch }, { data, layout, config, filtersValues }) { - return Promise.all([ - dispatch('filters/update', { - filters: config.filters, - values: filtersValues - }), - ]); - }, - reorder({ state }, { instances }) { - return postEntityListReorder({ - entityKey: state.entityKey, - instances, - }); - }, - setEntityKey({ commit }, entityKey) { - commit(SET_ENTITY_KEY, entityKey); - }, - setQuery({ commit }, query) { - commit(SET_QUERY, query); - } - } -} \ No newline at end of file diff --git a/packages/entity-list/src/store/index.js b/packages/entity-list/src/store/index.js deleted file mode 100644 index 3b8f82ad7..000000000 --- a/packages/entity-list/src/store/index.js +++ /dev/null @@ -1,2 +0,0 @@ - -export { default as entityList } from './entity-list'; \ No newline at end of file diff --git a/packages/entity-list/src/util/url.js b/packages/entity-list/src/util/url.js deleted file mode 100644 index 51e228400..000000000 --- a/packages/entity-list/src/util/url.js +++ /dev/null @@ -1,7 +0,0 @@ -import { routeUrl } from 'sharp/router'; - -export function listUrl(entityKey) { - return routeUrl({ - name: 'entity-list', params: { entityKey }, - }); -} \ No newline at end of file diff --git a/packages/files/package.json b/packages/files/package.json deleted file mode 100644 index 868a39b46..000000000 --- a/packages/files/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "sharp-files", - "private": true, - "version": "1.0.0", - "main": "src/index.js" -} diff --git a/packages/files/src/api.js b/packages/files/src/api.js deleted file mode 100644 index 3196c1239..000000000 --- a/packages/files/src/api.js +++ /dev/null @@ -1,20 +0,0 @@ -import { api, apiUrl } from 'sharp'; - - -export function postResolveFiles({ entityKey, instanceId, files, thumbnailWidth, thumbnailHeight }) { - return api.post(`/files/${entityKey}/${instanceId ?? ''}`, { - files, - thumbnail_width: thumbnailWidth, - thumbnail_height: thumbnailHeight, - }) - .then(response => response.data.files); -} - -export function downloadFileUrl({ entityKey, instanceId, disk, path }) { - return apiUrl(`/download/${entityKey}/${instanceId ?? ''}`, { - params: { - disk, - path, - }, - }) -} diff --git a/packages/files/src/index.js b/packages/files/src/index.js deleted file mode 100644 index 0741247d3..000000000 --- a/packages/files/src/index.js +++ /dev/null @@ -1,4 +0,0 @@ - - -export * from './api'; -export * from './util'; diff --git a/packages/files/src/util/filters.js b/packages/files/src/util/filters.js deleted file mode 100644 index c90dab8f0..000000000 --- a/packages/files/src/util/filters.js +++ /dev/null @@ -1,59 +0,0 @@ - - -function serializeNumber(number, decimals) { - if(typeof number !== 'number') { - return null; - } - - return Math.round((number + Number.EPSILON) * 10 ** decimals) / 10 ** decimals; -} - -export function serializeFilterNumber(number, decimals) { - return serializeNumber(number, decimals); -} - -export function serializeFilterCrop(data) { - let { x, y, width, height } = data ?? {}; - - x = serializeNumber(x, 4) ?? 0; - y = serializeNumber(y, 4) ?? 0; - width = serializeNumber(width, 4) ?? 1; - height = serializeNumber(height, 4) ?? 1; - - if(x === 0 && y === 0 && width === 1 && height === 1) { - return null; - } - - return `${x},${y},${width},${height}`; -} - -export function parseFilterCrop(attributeValue) { - if(!attributeValue) { - return null; - } - - const [x, y, width, height] = attributeValue.split(','); - - return { - x: Number(x), - y: Number(y), - width: Number(width), - height: Number(height), - } -} - - -export function serializeFilterRotate(data) { - return serializeNumber(data?.angle, 4) || null; -} - - -export function parseFilterRotate(attributeValue) { - if(!attributeValue) { - return null; - } - - return { - angle: Number(attributeValue), - } -} diff --git a/packages/files/src/util/index.js b/packages/files/src/util/index.js deleted file mode 100644 index 8fd97f2a7..000000000 --- a/packages/files/src/util/index.js +++ /dev/null @@ -1,11 +0,0 @@ - - -export * from './filters'; -export * from './thumbnail'; - -export function filesEquals(file1, file2) { - if(!file1.path || !file2.path) { - return file1.name === file2.name; - } - return `${file1.disk}:${file1.path}` === `${file2.disk}:${file2.path}`; -} diff --git a/packages/files/src/util/thumbnail.js b/packages/files/src/util/thumbnail.js deleted file mode 100644 index a9aba85be..000000000 --- a/packages/files/src/util/thumbnail.js +++ /dev/null @@ -1,4 +0,0 @@ - - -export const defaultFileThumbnailWidth = 200; -export const defaultFileThumbnailHeight = 200; diff --git a/packages/filters/__tests__/FilterSelect.test.js b/packages/filters/__tests__/FilterSelect.test.js deleted file mode 100644 index a8687a452..000000000 --- a/packages/filters/__tests__/FilterSelect.test.js +++ /dev/null @@ -1,103 +0,0 @@ -import FilterSelect from '../src/components/filters/FilterSelect.vue'; -import { Select } from 'sharp-form'; -import { shallowMount } from '@vue/test-utils'; -import { MockI18n } from "@sharp/test-utils"; -import Vue from 'vue'; - -jest.mock('sharp'); - -describe('filter-select', ()=>{ - Vue.use(MockI18n, { mockFn:true }); - - function createWrapper(options={}) { - return shallowMount(FilterSelect, { - ...options, - propsData : { - filterKey: 'job', - label: 'Web job', - values: [ - { id:1, label:'front' }, - { id:2, label:'back' }, - ], - ...options.propsData - }, - }); - } - - function findSelect(wrapper) { - return wrapper.find(Select); - } - - test('can mount "empty" FilterSelect', ()=>{ - expect(createWrapper().html()).toMatchSnapshot(); - }); - - test('can mount "valuated" FilterSelect', ()=>{ - expect(createWrapper({propsData: { value:1 }}).html()).toMatchSnapshot(); - }); - - test('can mount "multiple empty" FilterSelect', ()=>{ - expect(createWrapper({ propsData:{multiple:true} }).html()).toMatchSnapshot(); - }); - - test('can mount "multiple valuated" FilterSelect', ()=>{ - expect(createWrapper({ propsData:{multiple:true, value: [1,2]} }).html()).toMatchSnapshot(); - }); - - test('has select', ()=>{ - expect(findSelect(createWrapper()).isVueInstance()).toBe(true); - }); - - test('expose appropriate props to select', ()=>{ - const wrapper = createWrapper({ - propsData: { - multiple: true, - required: true, - value: [1,2] - } - }); - const select = findSelect(wrapper); - - expect(select.vm.$props).toMatchObject({ - value: [1,2], - options: [ - { id:1, label:'front' }, - { id:2, label:'back' }, - ], - multiple: true, - clearable: false, - inline: false, - }); - }); - - test('call appropriate handlers', async ()=>{ - const wrapper = createWrapper({ - created() { - this.handleSelect = jest.fn(); - } - }); - const select = findSelect(wrapper); - - select.vm.$emit('input'); - expect(wrapper.vm.handleSelect).toHaveBeenCalled(); - }); - - test('empty', ()=>{ - const wrapper = createWrapper(); - - expect(wrapper.vm.empty).toBe(true); - wrapper.setProps({ value:1 }); - expect(wrapper.vm.empty).toBe(false); - wrapper.setProps({ value:[], multiple:true }); - expect(wrapper.vm.empty).toBe(true); - wrapper.setProps({ value:[1], multiple:true }); - expect(wrapper.vm.empty).toBe(false); - }); - - test('emit input', ()=>{ - const wrapper = createWrapper(); - - wrapper.vm.handleSelect(1); - expect(wrapper.emitted('input')).toEqual([[1]]); - }); -}); diff --git a/packages/filters/__tests__/__snapshots__/FilterSelect.test.js.snap b/packages/filters/__tests__/__snapshots__/FilterSelect.test.js.snap deleted file mode 100644 index 877c4bd7b..000000000 --- a/packages/filters/__tests__/__snapshots__/FilterSelect.test.js.snap +++ /dev/null @@ -1,41 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`filter-select can mount "empty" FilterSelect 1`] = ` -
- - - - -
-`; - -exports[`filter-select can mount "multiple empty" FilterSelect 1`] = ` -
- - - - -
-`; - -exports[`filter-select can mount "multiple valuated" FilterSelect 1`] = ` -
- - - - -
-`; - -exports[`filter-select can mount "valuated" FilterSelect 1`] = ` -
- - - - -
-`; diff --git a/packages/filters/__tests__/store/__snapshots__/filters.test.js.snap b/packages/filters/__tests__/store/__snapshots__/filters.test.js.snap deleted file mode 100644 index 6a7ee4c31..000000000 --- a/packages/filters/__tests__/store/__snapshots__/filters.test.js.snap +++ /dev/null @@ -1,8 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`store filters state match snapshot 1`] = ` -Object { - "filters": null, - "values": Object {}, -} -`; diff --git a/packages/filters/__tests__/store/filters.test.js b/packages/filters/__tests__/store/filters.test.js deleted file mode 100644 index 9a29353a6..000000000 --- a/packages/filters/__tests__/store/filters.test.js +++ /dev/null @@ -1,179 +0,0 @@ -import filters, {SET_VALUES, SET_FILTERS} from '../../src/store/filters'; -import * as querystringUtils from "sharp/util/querystring"; - -describe('store filters', () => { - beforeEach(() => { - jest.restoreAllMocks() - }); - - test('state match snapshot', ()=>{ - expect(filters.state()).toMatchSnapshot(); - }); - - describe('getters', () => { - test('value', ()=>{ - const state = { - values: { - prop: 'value' - } - }; - expect(filters.getters.value(state)('prop')).toBe('value'); - }); - - test('rootFilters', ()=>{ - expect(filters.getters.rootFilters({ })).toEqual([]); - expect(filters.getters.rootFilters({ filters: { _root: [{}] } })).toEqual([{}]); - }); - - test('filterQueryKey', ()=>{ - expect(filters.getters.filterQueryKey()('key')).toBe('filter_key'); - }); - - test('getQueryParams', ()=>{ - const state = { - filters: { - _page: [ - { key:'type' }, - { key:'name' }, - ] - } - }; - const getters = { - filterQueryKey: jest.fn(key => `filter_${key}`), - serializeValue: jest.fn(({ filter, value }) => value), - }; - expect(filters.getters.getQueryParams(state, getters)({ })).toEqual({}); - - expect(filters.getters.getQueryParams(state, getters)({ - type: 'aaa', - name: 'bbb', - })).toEqual({ - 'filter_type': 'aaa', 'filter_name': 'bbb' - }); - expect(getters.serializeValue).toHaveBeenCalledWith({ filter:{ key:'type' }, value:'aaa' }); - expect(getters.serializeValue).toHaveBeenCalledWith({ filter:{ key:'name' }, value:'bbb' }); - }); - - test('getValuesFromQuery', ()=>{ - expect(filters.getters.getValuesFromQuery()(null)).toEqual({ }); - expect(filters.getters.getValuesFromQuery()({ filter_type: 'aaa', filter_name: 'bbb', custom: 'ccc' })) - .toEqual({ - type:'aaa', name: 'bbb' - }) - }); - - test('resolveFilterValue', ()=>{ - const state = {}; - const getters = {}; - const resolveFilterValue = (...args) => filters.getters.resolveFilterValue(state, getters)(...args); - - expect(resolveFilterValue({ filter: { key:'filter', default:'defaultValue' }, value: undefined })).toEqual('defaultValue'); - expect(resolveFilterValue({ filter: { default:'defaultValue' }, value: null })).toEqual('defaultValue'); - - expect(resolveFilterValue({ - filter:{ multiple: true }, value: 3 - })).toEqual([3]); - - expect(resolveFilterValue({ - filter: {}, value: 'test' - })).toEqual('test'); - - expect(resolveFilterValue({ - filter: { multiple: true }, value: [3] - })).toEqual([3]); - - jest.spyOn(querystringUtils, 'parseRange') - .mockImplementation(() => 'parsedRange'); - - expect(resolveFilterValue({ - filter: { type: 'daterange' }, value: '2019-06-21..2019-06-24', - })).toEqual('parsedRange'); - expect(querystringUtils.parseRange) - .toHaveBeenCalledWith('2019-06-21..2019-06-24'); - }); - - test('serializeValue', ()=>{ - const state = {}; - const getters = { - }; - expect(filters.getters.serializeValue(state, getters)({ - filter: {}, - value: 'val' - })).toEqual('val'); - - jest.spyOn(querystringUtils, 'serializeRange') - .mockImplementation(() => 'serializedRange'); - - expect(filters.getters.serializeValue(state, getters)({ - filter: { - type: 'daterange', - }, - value: { - start: 'start', - end: 'end', - } - })).toEqual('serializedRange'); - expect(querystringUtils.serializeRange).toHaveBeenCalledWith({ start:'start', end: 'end' }); - }); - - test('nextValues', ()=>{ - const state = { - values: { - type: 'aa' - } - }; - - expect(filters.getters.nextValues(state)({ filter: { key:'filter' }, value: 1 })) - .toEqual({ - type: 'aa', - filter: 1 - }); - expect(filters.getters.nextValues(state)({ filter: { key:'filter', master: true }, value: 1 })) - .toEqual({ - type: null, - filter: 1 - }); - }); - - test('nextQuery', ()=>{ - const getters = { - getQueryParams: jest.fn(()=>'query params'), - nextValues: jest.fn(()=>'next values') - }; - - expect(filters.getters.nextQuery(null, getters)({ filter:{ key:'filter' }, value:1 })).toEqual('query params'); - expect(getters.getQueryParams).toHaveBeenCalledWith('next values'); - expect(getters.nextValues).toHaveBeenCalledWith({ filter:{ key:'filter' }, value:1 }); - }); - }); - - describe('actions', () => { - test('update', () => { - const state = {}; - const commit = jest.fn(); - const dispatch = jest.fn(); - const getters = { - resolveFilterValue: jest.fn(()=>'resolvedValue') - }; - const testFilters = [{ key:'prop1' }, { key:'prop2' }]; - const testValues = { prop1:'aaa', prop2:'bbb' }; - - filters.actions.update({ state, commit, dispatch, getters }, { filters: testFilters, values: testValues }); - - expect(commit).toHaveBeenCalledWith(SET_FILTERS, testFilters); - expect(commit).toHaveBeenCalledWith(SET_VALUES, { - prop1: 'resolvedValue', - prop2: 'resolvedValue' - }); - - dispatch.mockClear(); - - expect(() => { - filters.actions.update({ state, commit, dispatch, getters }, { filters: null, values: null }); - }).not.toThrow(); - - expect(commit).toHaveBeenCalledWith(SET_FILTERS, null); - expect(commit).toHaveBeenCalledWith(SET_VALUES, {}); - }); - }); -}); diff --git a/packages/filters/package-lock.json b/packages/filters/package-lock.json deleted file mode 100644 index 380933233..000000000 --- a/packages/filters/package-lock.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "sharp-filters", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "sharp-form": { - "version": "file:../form", - "requires": { - "sharp-ui": "file:../ui" - } - }, - "sharp-ui": { - "version": "file:../ui", - "requires": { - "sharp-filters": "file:" - } - } - } -} diff --git a/packages/filters/package.json b/packages/filters/package.json index cac9056ea..167abd0a2 100644 --- a/packages/filters/package.json +++ b/packages/filters/package.json @@ -1,10 +1,6 @@ { - "name": "sharp-filters", + "name": "@sharp/filters", "private": true, "version": "1.0.0", - "main": "src/index.js", - "dependencies": { - "sharp-form": "file:../form", - "sharp-ui": "file:../ui" - } + "main": "src/index.ts" } diff --git a/packages/filters/src/api.js b/packages/filters/src/api.js deleted file mode 100644 index 525fd77c6..000000000 --- a/packages/filters/src/api.js +++ /dev/null @@ -1,9 +0,0 @@ -import { api } from 'sharp'; - -export function getGlobalFilters() { - return api.get(`filters`).then(response => response.data); -} - -export function postGlobalFilters({ filterKey, value }) { - return api.post(`filters/${filterKey}`, { value }); -} \ No newline at end of file diff --git a/packages/filters/src/components/Filter.vue b/packages/filters/src/components/Filter.vue deleted file mode 100644 index 0c0cafc60..000000000 --- a/packages/filters/src/components/Filter.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - diff --git a/packages/filters/src/components/FilterControl.vue b/packages/filters/src/components/FilterControl.vue deleted file mode 100644 index 7d7b408c8..000000000 --- a/packages/filters/src/components/FilterControl.vue +++ /dev/null @@ -1,28 +0,0 @@ - - - diff --git a/packages/filters/src/components/GlobalFilters.vue b/packages/filters/src/components/GlobalFilters.vue deleted file mode 100644 index 0be546948..000000000 --- a/packages/filters/src/components/GlobalFilters.vue +++ /dev/null @@ -1,72 +0,0 @@ - - - diff --git a/packages/filters/src/components/filters/FilterCheck.vue b/packages/filters/src/components/filters/FilterCheck.vue deleted file mode 100644 index be803c822..000000000 --- a/packages/filters/src/components/filters/FilterCheck.vue +++ /dev/null @@ -1,37 +0,0 @@ - - - diff --git a/packages/filters/src/components/filters/FilterDateRange.vue b/packages/filters/src/components/filters/FilterDateRange.vue deleted file mode 100644 index c20b09250..000000000 --- a/packages/filters/src/components/filters/FilterDateRange.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - diff --git a/packages/filters/src/components/filters/FilterSelect.vue b/packages/filters/src/components/filters/FilterSelect.vue deleted file mode 100644 index 2874808a2..000000000 --- a/packages/filters/src/components/filters/FilterSelect.vue +++ /dev/null @@ -1,145 +0,0 @@ - - - diff --git a/packages/filters/src/components/filters/index.js b/packages/filters/src/components/filters/index.js deleted file mode 100644 index 5777a54e8..000000000 --- a/packages/filters/src/components/filters/index.js +++ /dev/null @@ -1,13 +0,0 @@ -import FilterDateRange from './FilterDateRange.vue'; -import FilterSelect from './FilterSelect.vue'; -import FilterCheck from './FilterCheck.vue'; - -export function filterByType(type) { - if(type === 'select') { - return FilterSelect; - } else if(type === 'daterange') { - return FilterDateRange; - } else if(type === 'check') { - return FilterCheck; - } -} diff --git a/packages/filters/src/components/index.js b/packages/filters/src/components/index.js deleted file mode 100644 index b0b3bc743..000000000 --- a/packages/filters/src/components/index.js +++ /dev/null @@ -1,3 +0,0 @@ - -export { default as SharpFilter } from './Filter.vue'; -export { default as GlobalFilters } from './GlobalFilters.vue'; diff --git a/packages/filters/src/index.js b/packages/filters/src/index.js deleted file mode 100644 index a1fcd2062..000000000 --- a/packages/filters/src/index.js +++ /dev/null @@ -1,11 +0,0 @@ -import globalFilters from './store/global-filters'; -import { GlobalFilters } from './components'; - -export default function(Vue, { store }) { - store.registerModule('global-filters', globalFilters); - - Vue.component('sharp-global-filters', GlobalFilters); -} - -export * from './components'; -export { filters as filtersModule } from './store'; diff --git a/packages/filters/src/store/__mocks__/filters.js b/packages/filters/src/store/__mocks__/filters.js deleted file mode 100644 index d2983ad29..000000000 --- a/packages/filters/src/store/__mocks__/filters.js +++ /dev/null @@ -1,18 +0,0 @@ - -export default { - namespaced: true, - - getters: { - filters() {}, - values() {}, - getValuesFromQuery() { - return jest.fn(); - }, - getQueryParams() { - return jest.fn(); - }, - nextQuery() { - return jest.fn(); - }, - } -} \ No newline at end of file diff --git a/packages/filters/src/store/__mocks__/global-filters.js b/packages/filters/src/store/__mocks__/global-filters.js deleted file mode 100644 index df155a99f..000000000 --- a/packages/filters/src/store/__mocks__/global-filters.js +++ /dev/null @@ -1,9 +0,0 @@ -import filters from './filters'; - -export default { - namespaced: true, - - modules: { - filters, - } -} \ No newline at end of file diff --git a/packages/filters/src/store/filters.js b/packages/filters/src/store/filters.js deleted file mode 100644 index 7d5794c0c..000000000 --- a/packages/filters/src/store/filters.js +++ /dev/null @@ -1,140 +0,0 @@ -import { parseRange, serializeRange } from "sharp"; -import { getFiltersQueryParams, getFiltersValuesFromQuery, filterQueryKey } from '../util/query'; -import isEqual from 'lodash/isEqual'; - -export const SET_FILTERS = 'SET_FILTERS'; -export const SET_VALUES = 'SET_VALUES'; - -export default { - namespaced: true, - - state: ()=>({ - filters: null, - values: {}, - }), - - mutations: { - [SET_FILTERS](state, filters) { - state.filters = filters; - }, - [SET_VALUES](state, values) { - state.values = values; - }, - }, - - getters: { - value(state) { - return key => state.values[key]; - }, - rootFilters(state) { - return state.filters?._root ?? []; - }, - values(state) { - return state.values; - }, - isValuated(state, getters) { - return filters => { - return !isEqual( - getters.getQueryParams( - Object.fromEntries(filters.map(filter => [filter.key, state.values?.[filter.key]])) - ), - getters.getQueryParams(getters.defaultValues(filters)) - ); - } - }, - filterQueryKey() { - return key => filterQueryKey(key); - }, - getQueryParams(state, getters) { - return values => { - const allFilters = Object.values(state.filters ?? {}).flat(); - return getFiltersQueryParams(values, (value, key) => - getters.serializeValue({ - filter: allFilters.find(filter => filter.key === key), - value, - }) - ); - } - }, - getValuesFromQuery() { - return query => getFiltersValuesFromQuery(query); - }, - resolveFilterValue() { - return ({ filter, value }) => { - if(value == null) { - return filter?.default; - } - if(filter.multiple && !Array.isArray(value)) { - return [value]; - } - if(filter.type === 'daterange') { - return parseRange(value); - } - if(filter.type === 'check') { - return value === '1'; - } - return value; - } - }, - serializeValue() { - return ({ filter, value }) => { - if(!filter) { - return value; - } - if(filter.multiple && !value?.length) { - return null; - } - if(filter.type === 'daterange') { - return serializeRange(value); - } - if(filter.type === 'check') { - return value ? '1' : null; - } - return value; - }; - }, - nextValues(state) { - return ({ filter, value }) => { - if(filter.master) { - return { - ...Object.fromEntries(Object.entries(state.values).map(([key, value]) => [key, null])), - [filter.key]: value, - }; - } - return { ...state.values, [filter.key]: value }; - }; - }, - nextQuery(state, getters) { - return ({ filter, value }) => { - return getters.getQueryParams(getters.nextValues({ filter, value })); - } - }, - defaultValues() { - return filters => Object.fromEntries( - filters.map(filter => [filter.key, filter.default]) - ); - }, - defaultQuery(state, getters) { - return filters => getters.getQueryParams(getters.defaultValues(filters)); - }, - }, - - actions: { - update({ state, commit, dispatch, getters }, { filters, values }) { - commit(SET_FILTERS, filters); - commit(SET_VALUES, { - ...Object.fromEntries( - Object.values(filters ?? {}).flat().map(filter => - [ - filter.key, - getters.resolveFilterValue({ - filter, - value: values?.[filter.key], - }), - ] - ) - ), - }); - }, - } -} diff --git a/packages/filters/src/store/global-filters.js b/packages/filters/src/store/global-filters.js deleted file mode 100644 index 45bedfefe..000000000 --- a/packages/filters/src/store/global-filters.js +++ /dev/null @@ -1,23 +0,0 @@ -import { getGlobalFilters, postGlobalFilters } from "../api"; -import filters from './filters'; - -export default { - namespaced: true, - modules: { - filters, - }, - actions: { - async get({ dispatch }) { - const data = await getGlobalFilters(); - dispatch('filters/update', { - filters: data.filters - }); - }, - post({}, { filter, value }) { - return postGlobalFilters({ - filterKey: filter.key, - value, - }); - } - } -} \ No newline at end of file diff --git a/packages/filters/src/store/index.js b/packages/filters/src/store/index.js deleted file mode 100644 index ace423acf..000000000 --- a/packages/filters/src/store/index.js +++ /dev/null @@ -1,2 +0,0 @@ - -export { default as filters } from './filters'; \ No newline at end of file diff --git a/packages/filters/src/util/query.js b/packages/filters/src/util/query.js deleted file mode 100644 index 794421379..000000000 --- a/packages/filters/src/util/query.js +++ /dev/null @@ -1,24 +0,0 @@ - -export const filterQueryPrefix = 'filter_'; -export const filterQueryRE = new RegExp(`^${filterQueryPrefix}`); - -export function filterQueryKey(key) { - return `${filterQueryPrefix}${key}`; -} - -export function getFiltersQueryParams(values, serialize = v=>v) { - return Object.entries(values) - .reduce((res, [key, value]) => ({ - ...res, - [filterQueryKey(key)]: serialize(value, key), - }), {}); -} - -export function getFiltersValuesFromQuery(query) { - return Object.entries(query || {}) - .filter(([key]) => filterQueryRE.test(key)) - .reduce((res, [key, value]) => ({ - ...res, - [key.replace(filterQueryRE, '')]: value - }), {}); -} \ No newline at end of file diff --git a/packages/form/__tests__/Field.test.js b/packages/form/__tests__/Field.test.js deleted file mode 100644 index c9856283d..000000000 --- a/packages/form/__tests__/Field.test.js +++ /dev/null @@ -1,175 +0,0 @@ -import Vue from 'vue'; -import Field from '../src/components/Field.vue'; -import * as fields from '../src/components/fields'; - -import { logError } from 'sharp'; - -jest.mock('sharp'); - -describe('sharp-field', () => { - Vue.component('sharp-field', Field); - - beforeEach(() => { - document.body.innerHTML = ` -
- - -
- `; - }); - - test("can't mount and display error if unknown field", async () => { - await createVm({ - propsData: { - fieldType: 'unknown' - } - }); - - expect(logError).toHaveBeenCalled(); - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('can mount field', async () => { - fields.default['test-field'] = { - template: '
Template field
' - }; - - await createVm({ - propsData: { - fieldType: 'test-field', - fieldProps: {} - } - }); - - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('expose proper props', async () => { - let $field = await createVm({ - propsData: { - fieldType: 'text', - fieldProps: { - placeholder: 'Titre' - }, - fieldLayout: { - tabs: [] - } - }, - data:()=>({ value: 'Hello' }) - }); - - let { $children:[renderedField] } = $field; - - expect(renderedField.$vnode.data.props).toEqual({ - fieldKey: 'title', - fieldLayout: { - tabs: [] - }, - value: 'Hello', - uniqueIdentifier: 'list.0.title', - fieldConfigIdentifier: 'list.title', - root: false, - }); - - expect(renderedField.placeholder).toEqual('Titre'); - }); - - test('call update if input emitted', async () => { - let updateData = jest.fn(); - let $field = await createVm({ - propsData: { - fieldType: 'text', - fieldProps: {} - }, - methods: { - updateData - } - }); - - let { $children:[renderedField] } = $field; - - renderedField.$emit('input', 'Coucou'); - - expect(updateData).toHaveBeenCalledTimes(1); - expect(updateData).toHaveBeenCalledWith('title','Coucou', { forced:undefined }); - - updateData.mockClear(); - renderedField.$emit('input', 'Bonjour', { force: true }); - - expect(updateData).toHaveBeenCalledTimes(1); - expect(updateData).toHaveBeenCalledWith('title', 'Bonjour', { forced: true }); - }); - - test("don't call update when readOnly if input emitted", async () => { - let updateData = jest.fn(); - let $field = await createVm({ - propsData: { - fieldType: 'text', - fieldProps: { - readOnly: true - } - }, - methods: { - updateData - } - }); - - let { $children:[renderedField] } = $field; - - renderedField.$emit('input', 'Coucou'); - - expect(updateData).not.toHaveBeenCalled(); - - renderedField.$emit('input', 'Coucou', { force: true }); - - expect(updateData).toHaveBeenCalled(); - - }); - - test('provide "$field" injection', async () => { - fields.default['test-field'] = { - template: '
Template field
', - inject:['$field'] - }; - let $field = await createVm({ - propsData: { - fieldType: 'test-field', - fieldProps: {} - }, - }); - - let { $children:[renderedField] } = $field; - - expect(renderedField.$field).toBe($field); - }); -}); - -async function createVm(customOptions={}) { - - const vm = new Vue({ - el: '#app', - mixins: [customOptions], - - props:['fieldType', 'fieldProps', 'fieldLayout'], - - 'extends': { - methods: { - updateData:()=>{} - }, - data:()=>({ - value: null - }) - } - }); - - await Vue.nextTick(); - - return vm.$children[0]; -} diff --git a/packages/form/__tests__/FieldContainer.test.js b/packages/form/__tests__/FieldContainer.test.js deleted file mode 100644 index 1210c7eb2..000000000 --- a/packages/form/__tests__/FieldContainer.test.js +++ /dev/null @@ -1,184 +0,0 @@ -import Vue from 'vue'; -import { ErrorNode, ConfigNode } from 'sharp/mixins'; -import FieldContainer from '../src/components/ui/FieldContainer.vue'; -import * as fields from '../src/components/fields'; - -import { MockInjections } from "@sharp/test-utils"; - -jest.mock('sharp'); - -describe('field-container', () => { - Vue.component('sharp-field-container', FieldContainer); - - beforeEach(() => { - document.body.innerHTML = ` -
- - -
- `; - - fields.default['test-field'] = { - template: '
Template field
' - }; - }); - - test('can mount field container', async () => { - await createVm(); - - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('can mount field container with error', async () => { - let $fieldContainer = await createVm(); - - $fieldContainer.$form.errors = { - 'error.title': [ - 'Must be a number' - ] - }; - await Vue.nextTick(); - - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('can mount field container with success', async () => { - let $fieldContainer = await createVm(); - - $fieldContainer.state = 'ok'; - - await Vue.nextTick(); - - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('can mount field container with extra style', async () => { - await createVm({ - data: ()=>({ - fieldProps: { - extraStyle: 'background:red' - } - }) - }); - - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('set error on field emitted error', async () => { - let $fieldContainer = await createVm(); - - let { field } = $fieldContainer.$refs; - let tabErrorHandler = jest.fn(); - - $fieldContainer.$tab.$on('error', tabErrorHandler); - - field.$emit('error', 'Error message'); - - expect($fieldContainer.state).toBe('error'); - expect($fieldContainer.stateMessage).toBe('Error message'); - expect(tabErrorHandler).toHaveBeenCalledWith('error.title'); - }); - - test('set success on field emitted ok', async () => { - let $fieldContainer = await createVm(); - - let { field } = $fieldContainer.$refs; - - field.$emit('ok'); - expect($fieldContainer.state).toBe('ok'); - expect($fieldContainer.stateMessage).toBe(''); - }); - - test('clear on clear emitted', async () => { - let $fieldContainer = await createVm(); - - let { field } = $fieldContainer.$refs; - let tabClearHandler = jest.fn(); - - $fieldContainer.$tab.$on('clear', tabClearHandler); - jest.spyOn($fieldContainer.$form, 'updateFieldError') - field.$emit('clear'); - - expect($fieldContainer.state).toBe('default'); - expect($fieldContainer.stateMessage).toBe(''); - expect(tabClearHandler).toHaveBeenCalledWith('error.title'); - expect($fieldContainer.$form.updateFieldError).toHaveBeenCalledWith('error.title', null); - }); - - test('expose proper props', async () => { - let $fieldContainer = await createVm(); - - let { field } = $fieldContainer.$refs; - const { uniqueIdentifier, fieldConfigIdentifier, ...props } = field.$props; - expect($fieldContainer.$props).toMatchObject(props); - expect(uniqueIdentifier).toBe('error.title'); - expect(fieldConfigIdentifier).toBe('config.title'); - }); - - test('responsive to $form.errors object', async () => { - let $fieldContainer = await createVm(); - - $fieldContainer.clear = jest.fn(); - $fieldContainer.setError = jest.fn(); - - let { $form } = $fieldContainer; - - $form.errors = { - 'error.title': null - }; - await Vue.nextTick(); - expect($fieldContainer.clear).toHaveBeenCalled(); - - $form.errors = { - 'error.title': ['Error message'] - }; - await Vue.nextTick(); - expect($fieldContainer.setError).toHaveBeenCalledWith('Error message'); - }); - - test('update errors on locale changed', async () => { - let $fieldContainer = await createVm({ - data:()=>({locale:'en'}) - }); - let { $root:vm, $form } = $fieldContainer; - - $fieldContainer.updateError = jest.fn(); - $form.errors = { error1: 'text' }; - vm.locale = 'fr'; - - await Vue.nextTick(); - expect($fieldContainer.updateError).toHaveBeenCalledWith({ error1: 'text' }); - }); -}); - -async function createVm(customOptions={}) { - - const vm = new Vue({ - el: '#app', - mixins: [MockInjections, customOptions, ErrorNode, ConfigNode], - - 'extends': { - data:()=>({ - fieldProps: {}, - locale: null - }), - propsData: { - errorIdentifier: 'error', - configIdentifier: 'config' - }, - } - }); - - await Vue.nextTick(); - - return vm.$children[0]; -} diff --git a/packages/form/__tests__/FieldDisplay.test.js b/packages/form/__tests__/FieldDisplay.test.js deleted file mode 100644 index 7da22824f..000000000 --- a/packages/form/__tests__/FieldDisplay.test.js +++ /dev/null @@ -1,648 +0,0 @@ -import Vue from 'vue'; -import FieldContainer from '../src/components/ui/FieldContainer.vue'; -import FieldDisplay from '../src/components/FieldDisplay'; -import * as conditions from '../src/util/conditional-display'; - -import { shallowMount } from '@vue/test-utils'; - - -jest.mock('../src/components/ui/FieldContainer.vue', () => ({ - name: 'FieldContainer', - template: '
', -})); - -describe('field-display', () => { - - function createWrapper({ propsData, provide }) { - return shallowMount(FieldDisplay, { - context: { - props: { - fieldKey: 'title', - configIdentifier: 'title', - errorIdentifier: 'title', - ...propsData, - }, - }, - provide: { - $form: new Vue({ data: { localized: false } }), - ...provide, - } - }); - } - - let computeSelectCondition = ()=>{}, computeCondition = ()=>{}; - - beforeEach(() => { - computeSelectCondition = conditions.helpers.computeSelectCondition = jest.fn(conditions.helpers.computeSelectCondition); - computeCondition = conditions.computeCondition = jest.fn(conditions.computeCondition); - }); - - test('can mount field display', () => { - const wrapper = createWrapper({ - propsData: { - contextData: { - title: null - }, - contextFields: { - title: { type: 'text' } - } - }, - }); - - expect(wrapper.html()).toMatchSnapshot(); - }); - - describe('conditional diplay', ()=>{ - - test('check', () => { - let wrapper = null; - const contextFields = { - title: { - type: 'text', - conditionalDisplay: { - operator: 'or', - fields: [{ key:'check', values: true }] - } - }, - check: { type: 'check' } - }; - const contextData = { - title: null, - check: true - }; - - wrapper = createWrapper({ - propsData: { - contextData, - contextFields, - } - }); - expect(wrapper.findAll(FieldContainer).length).toBe(1); - expect(computeCondition) - .toHaveBeenCalledWith(contextFields, contextData, contextFields.title.conditionalDisplay); - - wrapper = createWrapper({ - propsData: { - contextData: { - ...contextData, - check: false, - }, - contextFields, - }, - }) - expect(wrapper.findAll(FieldContainer).length).toBe(0); - }); - - test('multiple select (unique values)', async () => { - let wrapper = null; - const contextFields = { - title: { - type: 'text', - conditionalDisplay: { - operator: 'or', - fields: [ - { key:'select', values: 2 } - ] - } - }, - select: { - type: 'select', - multiple: true - } - }; - - wrapper = createWrapper({ - propsData: { - contextFields, - contextData: { - title: null, - select: [2, 3] - }, - }, - }); - expect(computeSelectCondition).toHaveBeenCalledWith({ condValues: 2, fieldValue: [2,3], isSingleSelect: false }); - expect(wrapper.findAll(FieldContainer).length).toBe(1); - - - wrapper = createWrapper({ - propsData: { - contextFields, - contextData: { - title: null, - select: [3] - }, - } - }); - expect(computeSelectCondition).toHaveBeenCalledWith({ condValues: 2, fieldValue: [3], isSingleSelect: false }); - expect(wrapper.findAll(FieldContainer).length).toBe(0); - }); - - test('multiple select (multiple values)', () => { - let wrapper = null; - const contextFields = { - title: { - type: 'text', - conditionalDisplay: { - operator: 'or', - fields: [ - { key:'select', values: [ 2, 6 ] } - ] - } - }, - select: { - type: 'select', - multiple: true - } - } - - - wrapper = createWrapper({ - propsData: { - contextFields, - contextData: { - title: null, - select: [2, 3] - } - } - }); - expect(computeSelectCondition).toHaveBeenLastCalledWith({ condValues: [2,6], fieldValue: [2,3], isSingleSelect: false }); - expect(wrapper.findAll(FieldContainer).length).toBe(1); - - wrapper = createWrapper({ - propsData: { - contextFields, - contextData: { - title: null, - select: [4, 5] - } - } - }); - expect(computeSelectCondition).toHaveBeenLastCalledWith({ condValues: [2,6], fieldValue: [4,5], isSingleSelect: false }); - expect(wrapper.findAll(FieldContainer).length).toBe(0); - }); - - test('single select (unique values)', () => { - let wrapper = null; - const contextFields = { - title: { - type: 'text', - conditionalDisplay: { - operator: 'or', - fields: [ - { key:'select', values: 4 } - ] - } - }, - select: { - type: 'select' - } - } - - wrapper = createWrapper({ - propsData: { - contextFields, - contextData: { - title: null, - select: 4 - } - } - }) - expect(computeSelectCondition).toHaveBeenLastCalledWith({ condValues: 4, fieldValue: 4, isSingleSelect: true }); - expect(wrapper.findAll(FieldContainer).length).toBe(1); - - - wrapper = createWrapper({ - propsData: { - contextFields, - contextData: { - title: null, - select: 5 - } - } - }) - expect(computeSelectCondition).toHaveBeenLastCalledWith({ condValues: 4, fieldValue: 5, isSingleSelect: true }); - expect(wrapper.findAll(FieldContainer).length).toBe(0); - }); - - test('single select (multiple values)', () => { - let wrapper = null; - const contextFields = { - title: { - type: 'text', - conditionalDisplay: { - operator: 'or', - fields: [ - { key:'select', values: [4, 8] } - ] - } - }, - select: { - type: 'select' - } - } - - wrapper = createWrapper({ - propsData: { - contextFields, - contextData: { - title: null, - select: 4, - } - } - }); - expect(computeSelectCondition).toHaveBeenLastCalledWith({ condValues: [4,8], fieldValue: 4, isSingleSelect: true }); - expect(wrapper.findAll(FieldContainer).length).toBe(1); - - wrapper = createWrapper({ - propsData: { - contextFields, - contextData: { - title: null, - select: 3, - } - } - }); - expect(computeSelectCondition).toHaveBeenLastCalledWith({ condValues: [4,8], fieldValue: 3, isSingleSelect: true }); - expect(wrapper.findAll(FieldContainer).length).toBe(0); - }); - - test('multiple select (negative)', async () => { - let wrapper = null; - const contextFields = { - title: { - type: 'text', - conditionalDisplay: { - operator: 'or', - fields: [ - { key:'select', values: '!5' } - ] - } - }, - select: { - type: 'select', - multiple: true - } - }; - - wrapper = createWrapper({ - propsData: { - contextFields, - contextData: { - title: null, - select: [4, 6] - } - } - }); - expect(computeSelectCondition).toHaveBeenLastCalledWith({ condValues: '!5', fieldValue: [4,6], isSingleSelect: false }); - expect(wrapper.findAll(FieldContainer).length).toBe(1); - - - wrapper = createWrapper({ - propsData: { - contextFields, - contextData: { - title: null, - select: [5, 7] - } - } - }); - expect(computeSelectCondition).toHaveBeenLastCalledWith({ condValues: '!5', fieldValue: [5,7], isSingleSelect: false }); - expect(wrapper.findAll(FieldContainer).length).toBe(0); - }); - - test('single select (negative)', () => { - let wrapper = null; - const contextFields = { - title: { - type: 'text', - conditionalDisplay: { - operator: 'or', - fields: [ - { key:'select', values: '!6' } - ] - } - }, - select: { - type: 'select' - } - } - - wrapper = createWrapper({ - propsData: { - contextFields, - contextData: { - title: null, - select: 3 - }, - } - }); - expect(computeSelectCondition).toHaveBeenLastCalledWith({ condValues: '!6', fieldValue: 3, isSingleSelect: true }); - expect(wrapper.findAll(FieldContainer).length).toBe(1); - - wrapper = createWrapper({ - propsData: { - contextFields, - contextData: { - title: null, - select: 6, - }, - } - }); - expect(computeSelectCondition).toHaveBeenLastCalledWith({ condValues: '!6', fieldValue: 6, isSingleSelect: true }); - expect(wrapper.findAll(FieldContainer).length).toBe(0); - }); - - test('or operator', async () => { - let wrapper = null; - const contextFields = { - title: { - type: 'text', - conditionalDisplay: { - operator: 'or', - fields: [ - { key:'check1', values: true }, - { key:'check2', values: true } - ] - } - }, - check1: { type: 'check' }, - check2: { type: 'check' } - } - - wrapper = createWrapper({ - propsData: { - contextFields, - contextData: { - title: null, - check1: true, - check2: true, - }, - } - }); - expect(wrapper.findAll(FieldContainer).length).toBe(1); - - wrapper = createWrapper({ - propsData: { - contextFields, - contextData: { - title: null, - check1: false, - check2: true, - }, - } - }); - expect(wrapper.findAll(FieldContainer).length).toBe(1); - - wrapper = createWrapper({ - propsData: { - contextFields, - contextData: { - title: null, - check1: false, - check2: false, - }, - } - }); - expect(wrapper.findAll(FieldContainer).length).toBe(0); - }); - - test('and operator', async () => { - let wrapper = null; - const contextFields = { - title: { - type: 'text', - conditionalDisplay: { - operator: 'and', - fields: [ - { key:'check1', values: true }, - { key:'check2', values: true } - ] - } - }, - check1: { type: 'check' }, - check2: { type: 'check' } - }; - - wrapper = createWrapper({ - propsData: { - contextFields, - contextData: { - title: null, - check1: true, - check2: true, - }, - } - }) - expect(wrapper.findAll(FieldContainer).length).toBe(1); - - wrapper = createWrapper({ - propsData: { - contextFields, - contextData: { - title: null, - check1: true, - check2: false, - }, - } - }); - expect(wrapper.findAll(FieldContainer).length).toBe(0); - }); - }); - - test('expose appropriate props', async () => { - let wrapper = null; - const propsData = { - contextData: { - title: 'myTitle', - }, - contextFields: { - title: { - type: 'text', - placeholder: 'Title', - label: 'Super title label', - helpMessage: 'Super help message' - } - }, - } - - wrapper = createWrapper({ - propsData, - }); - - expect(wrapper.find(FieldContainer).vm.$attrs).toMatchObject({ - fieldKey: 'title', - fieldType: 'text', - fieldProps: { - type: 'text', - placeholder: 'Title' - }, - value: 'myTitle', - label: 'Super title label', - helpMessage: 'Super help message' - }); - - wrapper = createWrapper({ - propsData: { - ...propsData, - readOnly: true, - }, - }) - - expect(wrapper.find(FieldContainer).vm.$attrs).toMatchObject({ - fieldProps: { - type: 'text', - placeholder: 'Title', - readOnly: true, - }, - }); - }); - - test('call update visibility', () => { - let wrapper = null; - const updateVisibility = jest.fn(); - const contextFields = { - title: { - type: 'text', - conditionalDisplay: { - operator: 'or', - fields: [{ key:'check', values: true }] - } - }, - check: { type: 'check' } - }; - - wrapper = createWrapper({ - propsData: { - contextFields, - contextData: { - title: 'myTitle', - check: true, - }, - updateVisibility, - } - }); - expect(updateVisibility).toHaveBeenCalledTimes(1); - expect(updateVisibility).toHaveBeenLastCalledWith('title',true); - - wrapper = createWrapper({ - propsData: { - contextFields, - contextData: { - title: 'myTitle', - check: false, - }, - updateVisibility, - } - }); - expect(updateVisibility).toHaveBeenCalledTimes(2); - expect(updateVisibility).toHaveBeenLastCalledWith('title',false); - }); - - test('handle localized value', async () => { - - function resolveValue({ - type, - value, - locale, - localized = true, - $form = { localized: true } - }) { - const wrapper = createWrapper({ - propsData: { - contextData: { - title: value, - }, - contextFields: { - title: { type, localized }, - }, - locale, - }, - provide: { - $form: new Vue({ data:$form }), - } - }); - return wrapper.find(FieldContainer).vm.$attrs.value; - } - - expect( - resolveValue({ - type: 'text', - value: null, - }) - ).toBe(null); - - expect( - resolveValue({ - type: 'text', - value: { fr:'texte FR', en:'texte EN' }, - locale: 'fr', - }) - ).toBe('texte FR'); - - expect( - resolveValue({ - type: 'textarea', - value: { fr:'texte FR', en:'texte EN' }, - locale: 'fr', - }) - ).toBe('texte FR'); - - expect( - resolveValue({ - type: 'markdown', - value: { fr:'texte FR', en:'texte EN' }, - locale: 'fr' - }) - ).toEqual({ fr:'texte FR', en:'texte EN' }); - - expect( - resolveValue({ - type: 'wysiwyg', - value: { fr:'texte FR', en:'texte EN' }, - locale: 'fr' - }) - ).toEqual({ fr:'texte FR', en:'texte EN' }); - - expect( - resolveValue({ - type: 'text', - value: { fr:'texte FR', en:'texte EN' }, - localized: false, - }) - ).toEqual({ fr:'texte FR', en:'texte EN' }); - - expect( - resolveValue({ - type: 'text', - value: { fr:'texte FR', en:'texte EN' }, - $form: { localized: false }, - }) - ).toEqual({ fr:'texte FR', en:'texte EN' }); - }); - - xtest('handle localized identifier', () => { - let wrapper = null; - - wrapper = createWrapper({ - contextData: { - title: null, - }, - contextFields: { - title: { type: 'text', localized: true }, - }, - locale: 'fr' - }); - expect(wrapper.find(FieldContainer).vm.$attrs.errorIdentifier).toEqual('title.fr'); - - wrapper = createWrapper({ - contextData: { - title: null, - }, - contextFields: { - title: { type: 'text', localized: false }, - }, - locale: 'fr' - }); - expect(wrapper.find(FieldContainer).vm.$attrs.errorIdentifier).toEqual('title'); - }); -}); diff --git a/packages/form/__tests__/FieldsLayout.test.js b/packages/form/__tests__/FieldsLayout.test.js deleted file mode 100644 index 980c3629c..000000000 --- a/packages/form/__tests__/FieldsLayout.test.js +++ /dev/null @@ -1,151 +0,0 @@ -import FieldsLayout from '../src/components/ui/FieldsLayout.vue'; - -import { shallowMount } from '@vue/test-utils'; - -describe('fields-layout', () => { - - const FieldMock = { name:'Field', template:'
' }; - function createWrapper({ propsData } = {}) { - return shallowMount(FieldsLayout, { - propsData: { - ...propsData, - }, - // language=Vue - stubs: { - Grid: - `
- -
`, - FieldsLayout: - // render first field from given layout - `
- -
`, - Field: FieldMock, - }, - scopedSlots: { - default: '', - }, - }); - } - - test('can mount fields layout', () => { - const wrapper = createWrapper({ - propsData: { - layout: [ - [{ key:'title' }] - ] - } - }); - - expect(wrapper.html()).toMatchSnapshot(); - }); - - test('can mount "fieldset" fields layout', () => { - const wrapper = createWrapper({ - propsData: { - layout: [ - [{ - legend: 'Fieldset', fields: [[ - { key: 'title' } - ]] - }] - ], - visible: { - title: true - } - } - }); - - expect(wrapper.html()).toMatchSnapshot(); - }); - - test('can mount "hidden fieldset" fields layout', () => { - const wrapper = createWrapper({ - propsData: { - layout: [ - [{ - legend: 'Fieldset', fields: [ - [{ key: 'title' }] - ] - }] - ], - visible: { - title: false - } - } - }); - - expect(wrapper.html()).toMatchSnapshot(); - }); - - test('expose correct props', () => { - const wrapper = createWrapper({ - propsData: { - layout: [ - [{ key:'list' }] - ] - } - }); - - expect(wrapper.find({ name: 'Field' }).vm.$attrs).toEqual({ - data: { key: 'list' } - }) - }); - - test('expose correct fieldset props', () => { - const wrapper = createWrapper({ - propsData: { - layout: [ - [{ - legend: 'Fieldset', fields: [ - [{ key: 'title' }] - ] - }] - ], - } - }); - - expect(wrapper.find({ name: 'Field' }).vm.$attrs).toEqual({ - data: { key: 'title' } - }); - }); - - test('fieldset visible', () => { - const wrapper = createWrapper({ - propsData: { - layout: [[{}]], - }, - }); - - wrapper.setProps({ - visible: { - title: true, - subtitle: false, - }, - }); - - expect( - wrapper.vm.isFieldsetVisible({ - id: 'fieldset_1', - legend: 'Fieldset 1', - fields: [{ key: 'title' }, { key: 'subtitle' }], - }) - ).toBe(true); - - wrapper.setProps({ - visible: { - title: false, - subtitle: false, - }, - }); - - expect( - wrapper.vm.isFieldsetVisible({ - id: 'fieldset_1', - legend: 'Fieldset 1', - fields: [{ key: 'title' }, { key: 'subtitle' }], - }) - ).toBe(false); - }); -}); \ No newline at end of file diff --git a/packages/form/__tests__/Form.test.js b/packages/form/__tests__/Form.test.js deleted file mode 100644 index c42e08616..000000000 --- a/packages/form/__tests__/Form.test.js +++ /dev/null @@ -1,572 +0,0 @@ -import Vue from 'vue'; -import Vuex from 'vuex'; -import axios from 'axios'; -import Form from '../src/components/Form.vue'; -import store from 'sharp/store'; - -import {MockI18n, nextRequestFulfilled, wait} from "@sharp/test-utils"; -import moxios from 'moxios'; -import {createLocalVue, shallowMount} from '@vue/test-utils'; -import {lang} from "sharp"; - -jest.mock('sharp'); - -describe('sharp-form', ()=>{ - Vue.use(MockI18n); - - lang.mockImplementation(key => key); - - function createWrapper({ propsData } = {}) { - const localVue = createLocalVue(); - localVue.use(Vuex); - - const axiosInstance = axios.create(); - - moxios.install(axiosInstance); - - return shallowMount(Form, { - propsData: { - entityKey: 'spaceship', - instanceId: null, - ignoreAuthorizations: null, - ...propsData, - }, - provide: { - axiosInstance, - }, - store: new Vuex.Store(store), - // language=Vue - stubs: { - Grid: - `
- -
`, - FieldsLayout: - `
- -
`, - FieldDisplay: true, - TabbedLayout: - `
- -
`, - }, - localVue - }); - } - - function createLayout(fields) { - return { - tabs : [ - { - columns: [ - { - fields, - } - ] - } - ] - } - } - - function createForm({ key='title', type='text', ...props } = {}) { - return { - data: { [key]: null }, - fields: { - [key]: { - key, - type, - ...props, - } - }, - layout: createLayout([[{ key }]]), - } - } - - function handleSubmitError(e) { - if(!e.response) { - throw e; - } - } - - - const oldDelay = moxios.delay; - moxios.delay = 10; - - afterAll(() => { - moxios.delay = oldDelay; - }); - - test('can mount sharp-form', async ()=>{ - const wrapper = createWrapper(); - - await nextRequestFulfilled({ - status: 200, - response: createForm(), - }); - - expect(wrapper.html()).toMatchSnapshot(); - }); - - test('can mount "independant" sharp-form', ()=>{ - const wrapper = createWrapper({ - propsData:{ - independant: true, - form: createForm() - } - }); - - expect(wrapper.html()).toMatchSnapshot(); - }); - - test('can mount sharp-form with alert', ()=>{ - const wrapper = createWrapper({ - propsData:{ - independant: true, - form: createForm() - } - }); - - wrapper.setData({ - errors: { - title: ['required'] - } - }); - - expect(wrapper.html()).toMatchSnapshot(); - }); - - test('localized', ()=>{ - const wrapper = createWrapper(); - expect(wrapper.vm.localized).toBe(false); - wrapper.setData({ - locales: ['fr', 'en'] - }); - expect(wrapper.vm.localized).toBe(true); - }); - - test('detect when is creation', ()=>{ - const wrapper = createWrapper(); - - expect(wrapper.vm.isCreation).toBe(true); - - wrapper.setProps({ - instanceId: '10', - }); - - expect(wrapper.vm.isCreation).toBe(false); - - }); - - test('is read only', () => { - const wrapper = createWrapper({ - propsData:{ - independant: true, - form: { - ...createForm(), - authorizations: { - create: false, - update: false - } - } - } - }); - expect(wrapper.vm.isReadOnly).toBe(true); - - wrapper.setData({ - authorizations: { - create: true, - update: false, - } - }); - expect(wrapper.vm.isReadOnly).toBe(false); - - wrapper.setProps({ - instanceId: '10', - }); - expect(wrapper.vm.isReadOnly).toBe(true); - - wrapper.setData({ - authorizations: { - create: true, - update: true, - } - }); - expect(wrapper.vm.isReadOnly).toBe(false); - - wrapper.setProps({ - ignoreAuthorizations: true, - }); - wrapper.setData({ - authorizations: { - create: false, - update: false, - } - }); - expect(wrapper.vm.isReadOnly).toBe(false); - }) - - test('synchronous', () => { - const wrapper = createWrapper({ - propsData:{ - independant: true, - form: createForm(), - } - }); - - expect(wrapper.vm.synchronous).toBe(true); - - wrapper.setProps({ independant: false }); - - expect(wrapper.vm.synchronous).toBe(false); - }); - - - test('has errors', () => { - const wrapper = createWrapper(); - expect(wrapper.vm.hasErrors).toBe(false); - - wrapper.setData({ - errors: { - field: ['required'] - } - }); - - expect(wrapper.vm.hasErrors).toBe(true); - - wrapper.setData({ - errors: { - field: null, - } - }); - - expect(wrapper.vm.hasErrors).toBe(false); - }); - - test('expose appropriate props to layout components', () => { - const wrapper = createWrapper({ - propsData: { - independant: true, - form: createForm() - } - }); - - let { tabbedLayout, columnsGrid, fieldLayout } = wrapper.vm.$refs; - - expect(tabbedLayout.$options.propsData).toEqual({ - layout: { tabs:[{ columns:[{ fields:[[{key:'title'}]] }] }] } // $form.layout - }); - expect(columnsGrid.$options.propsData).toEqual({ - rows: [[{ fields:[[{key:'title'}]] }]] // [$form.layout.tabs[0].columns] - }); - expect(fieldLayout.$options.propsData).toEqual({ - layout: [[{key:'title'}]], // $form.layout.tabs[0].columns[0].fields - visible: { title: true } // $form.fieldVisible - }); - }); - - test('expose appropriate props to field', async () => { - const wrapper = createWrapper({ - propsData:{ - independant: true, - form: { - ...createForm({ localized: true }), - locales: ['fr', 'en'] - } - } - }); - await wrapper.vm.$nextTick(); - const field = wrapper.find({ ref:'field' }).vm; - - expect(field.$attrs).toMatchObject({ - 'field-key': 'title', - 'field-layout': { key: 'title' }, - 'update-data': wrapper.vm.updateData, - 'locale': 'fr', - 'error-identifier': 'title', - 'config-identifier': 'title', - 'update-visibility': wrapper.vm.updateVisibility, - 'context-data': { - title: null - }, - 'context-fields': { - title: { - type: 'text', - }, - }, - }); - }); - - test('update data', () => { - const wrapper = createWrapper({ - propsData:{ - independant: true, - form: createForm(), - } - }); - wrapper.vm.fieldLocalizedValue = jest.fn(()=>'fieldLocalizedValue'); - expect(wrapper.vm.data.title).toBe(null); - - wrapper.vm.updateData('title', 'text'); - expect(wrapper.vm.fieldLocalizedValue).toHaveBeenCalledWith('title', 'text'); - expect(wrapper.vm.data.title).toBe('fieldLocalizedValue'); - }); - - - test('update visibility', async () => { - const wrapper = createWrapper({ - propsData:{ - independant: true, - form: createForm() - } - }); - - expect(wrapper.vm.fieldVisible.title).toBe(true); - - wrapper.vm.updateVisibility('title', false); - - expect(wrapper.vm.fieldVisible.title).toBe(false); - }); - - test('mount', () => { - const wrapper = createWrapper({ - propsData:{ - independant: true, - form: { - ...createForm({ localized:true }), - authorizations: { - create: true, - update: false - }, - locales: ['en', 'fr'] - } - } - }); - - expect(wrapper.vm).toMatchObject({ - ...createForm({ localized:true }), - authorizations: { - create: true, - update: false - }, - locales: ['en', 'fr'], - fieldLocale: { - title: 'en' - } - }); - - wrapper.vm.patchLayout = ()=>{}; - wrapper.vm.ready = false; - wrapper.vm.mount({ fields:{}, locales:null }); - - expect(wrapper.vm.fieldLocale).toEqual({ title:undefined }); - }); - - test('mount async', async () => { - const wrapper = createWrapper(); - - await nextRequestFulfilled({ - status: 200, - response: { - ...createForm(), - authorizations: { - create: true, - update: false - } - } - }); - - expect(wrapper.vm).toMatchObject({ - ...createForm(), - authorizations: { - create: true, - update: false - } - }); - }); - - test('handle 422', async () => { - const wrapper = createWrapper(); - - wrapper.vm.submit().catch(handleSubmitError); - - await nextRequestFulfilled({ - status: 422, - response: { - errors: { - title: ['invalid'] - } - } - }); - - expect(wrapper.vm.errors).toEqual({ - title: ['invalid'] - }); - }); - - test('patch layout', async () => { - const wrapper = createWrapper({ - propsData:{ - independant: true, - form: { - ...createForm(), - layout: createLayout( [ - [{ legend:'fieldset', fields: [[]] }], - [{ legend:'fieldset', fields: [[]] }] - ]), - } - } - }); - - let { - tabs : [ - { - columns: [{ fields }] - } - ] - } = wrapper.vm.layout; - - expect(typeof fields[0][0].id).toBe('string'); - expect(fields[0][0].id).not.toEqual(fields[1][0].id) - }); - - test('serialize', () => { - const wrapper = createWrapper(); - - expect(wrapper.vm.serialize()).toEqual({}); - - wrapper.setData({ - fields: { - html: { type:'html' } - }, - data: { - field1: 'value', - html: '' - } - }) - - expect(wrapper.vm.serialize()).toEqual({ - field1: 'value', - }); - }); - - test('setup action bar correctly', async () => { - const wrapper = createWrapper(); - - await nextRequestFulfilled({ - status: 200, - response: { - ...createForm(), - authorizations: { - create: false, - update: false, - }, - breadcrumb: { - visible: true, - items: [{ url:'/list' }] - } - } - }); - - expect(wrapper.vm.actionBarProps).toMatchObject({ - showSubmitButton: false, - showBackButton: true, - create: true, - breadcrumb: [{ url:'/list' }], - showBreadcrumb: true, - }); - - - wrapper.vm.authorizations.create = true; - - expect(wrapper.vm.actionBarProps).toMatchObject({ - showSubmitButton: true, - showBackButton: false, - create: true, - }); - - wrapper.setProps({ - instanceId: '10', - }); - wrapper.vm.authorizations.update = true; - - expect(wrapper.vm.actionBarProps).toMatchObject({ - showSubmitButton: true, - showBackButton: false, - create: false, - }); - }); - - test('submit', async () => { - const wrapper = createWrapper({ - propsData: { - independant: true, - form: createForm(), - }, - }); - - wrapper.vm.post = jest.fn(()=>Promise.resolve({ data: { ok: true } })); - - wrapper.vm.uploadingFields = { field:true }; - wrapper.vm.submit(); - - await wait(10); - - expect(wrapper.vm.post).not.toHaveBeenCalled(); - - wrapper.vm.uploadingFields = {} - wrapper.vm.submit(); - - await wait(10); - - expect(wrapper.vm.post).toHaveBeenCalledTimes(1); - }); - - test('dependant submit', async () => { - const wrapper = createWrapper(); - - await nextRequestFulfilled({ - status: 200, - response: { - ...createForm(), - breadcrumb: { - items: [{ type:'form', name:"Form" }] - }, - } - }); - - wrapper.vm.post = jest.fn(()=>Promise.resolve({ data: { redirectUrl: '/test' } })); - jest.spyOn(wrapper.vm, 'handleError'); - - wrapper.vm.submit().catch(handleSubmitError); - - await wait(10); - - expect(wrapper.vm.post).toHaveBeenCalledTimes(1); - expect(wrapper.vm.post.mock.calls[0][0]).toEqual('form/spaceship'); - expect(wrapper.vm.post.mock.calls[0][1]).toEqual({ title: null }); - - expect(location.href).toEqual('/test'); - - - expect(wrapper.vm.handleError).not.toHaveBeenCalled(); - - wrapper.vm.post = jest.fn(()=>Promise.reject({ response: { status:500 } })); - - wrapper.vm.submit().catch(handleSubmitError); - - await wait(10); - - expect(wrapper.vm.handleError).toHaveBeenCalledTimes(1); - expect(wrapper.vm.handleError).toHaveBeenCalledWith({ response: { status:500 } }); - }); - - test('cancel', async ()=>{ - // refer 'redirect to list' test - }); - - test('has localize mixin with right fieldsProps', async () => { - const wrapper = await createWrapper(); - expect(wrapper.vm.$options._localizedForm).toBe('fields'); - }); -}); diff --git a/packages/form/__tests__/__snapshots__/Field.test.js.snap b/packages/form/__tests__/__snapshots__/Field.test.js.snap deleted file mode 100644 index 348cde682..000000000 --- a/packages/form/__tests__/__snapshots__/Field.test.js.snap +++ /dev/null @@ -1,13 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`sharp-field can mount field 1`] = ` -
-
Template field
-
-`; - -exports[`sharp-field can't mount and display error if unknown field 1`] = ` -
- -
-`; diff --git a/packages/form/__tests__/__snapshots__/FieldContainer.test.js.snap b/packages/form/__tests__/__snapshots__/FieldContainer.test.js.snap deleted file mode 100644 index a0095ddcb..000000000 --- a/packages/form/__tests__/__snapshots__/FieldContainer.test.js.snap +++ /dev/null @@ -1,89 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`field-container can mount field container 1`] = ` -
-
-
-
-
- -
- -
-
-
-
Template field
-
- -
Do not fill this field
-
-
-`; - -exports[`field-container can mount field container with error 1`] = ` -
-
-
-
-
- -
- -
-
-
-
Template field
-
-
Must be a number
-
Do not fill this field
-
-
-`; - -exports[`field-container can mount field container with extra style 1`] = ` -
-
-
-
-
- -
- -
-
-
-
Template field
-
- -
Do not fill this field
-
-
-`; - -exports[`field-container can mount field container with success 1`] = ` -
-
-
-
-
- -
- -
-
-
-
Template field
-
- -
Do not fill this field
-
-
-`; diff --git a/packages/form/__tests__/__snapshots__/FieldDisplay.test.js.snap b/packages/form/__tests__/__snapshots__/FieldDisplay.test.js.snap deleted file mode 100644 index 411e17cda..000000000 --- a/packages/form/__tests__/__snapshots__/FieldDisplay.test.js.snap +++ /dev/null @@ -1,3 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`field-display can mount field display 1`] = `
`; diff --git a/packages/form/__tests__/__snapshots__/FieldsLayout.test.js.snap b/packages/form/__tests__/__snapshots__/FieldsLayout.test.js.snap deleted file mode 100644 index cd5707bd8..000000000 --- a/packages/form/__tests__/__snapshots__/FieldsLayout.test.js.snap +++ /dev/null @@ -1,37 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`fields-layout can mount "fieldset" fields layout 1`] = ` -
-
- Fieldset -
-
-
-
-
-
-
-
-
-`; - -exports[`fields-layout can mount "hidden fieldset" fields layout 1`] = ` -
-
- Fieldset -
-
-
-
-
-
-
-
-
-`; - -exports[`fields-layout can mount fields layout 1`] = ` -
-
-
-`; diff --git a/packages/form/__tests__/__snapshots__/Form.test.js.snap b/packages/form/__tests__/__snapshots__/Form.test.js.snap deleted file mode 100644 index f3f5c5e8d..000000000 --- a/packages/form/__tests__/__snapshots__/Form.test.js.snap +++ /dev/null @@ -1,52 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`sharp-form can mount "independant" sharp-form 1`] = ` -
- - -
-
-
- -
-
-
- -
-`; - -exports[`sharp-form can mount sharp-form 1`] = ` -
- - -
-
-
- -
-
-
- -
-`; - -exports[`sharp-form can mount sharp-form with alert 1`] = ` -
- - -
-
-
- -
-
-
- -
-`; diff --git a/packages/form/__tests__/fields/Autocomplete.test.js b/packages/form/__tests__/fields/Autocomplete.test.js deleted file mode 100644 index 7a8301e88..000000000 --- a/packages/form/__tests__/fields/Autocomplete.test.js +++ /dev/null @@ -1,294 +0,0 @@ -import Vue from 'vue'; -import Autocomplete from '../../src/components/fields/Autocomplete.vue'; - -import { MockI18n, nextRequestFulfilled } from '@sharp/test-utils'; -import moxios from 'moxios'; -import { search } from 'sharp'; - -jest.mock('sharp/util/search', ()=>({ - search: jest.fn(()=>[]), -})); - -jest.mock('lodash/debounce', () => fn => (...args) => fn(...args)); - -describe('autocomplete-field', ()=>{ - Vue.use(MockI18n); - - describe('common & local', ()=> { - beforeEach(()=>{ - document.body.innerHTML = ` -
- - -
`; - MockI18n.mockLangFunction(); - }); - - test('can mount Autocomplete field as multiselect', async () => { - await createVm(); - - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('can mount Autocomplete field as result item', async () => { - await createVm({ - data: () => ({ value: {id:1, name:'Theodore Bagwell', alias:'T-Bag'} }) - }); - - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('expose appropriate props to multiselect component', async ()=>{ - let $autocomplete = await createVm({ - propsData: { - readOnly: true - }, - data: () => ({ value: null }) - }); - - let { multiselect } = $autocomplete.$refs; - - expect(multiselect.$props).toMatchObject({ - options: [{id: 1, name:'Theodore Bagwell', alias: 'T-Bag'}, - {id: 2, name:'Lincoln Burrows', alias: 'Linc'}], - value: null, - multiple: false, - trackBy: 'id', - searchable: true, - clearOnSelect: true, - hideSelected: false, - placeholder: 'nom', - allowEmpty: true, - resetAfter: false, - closeOnSelect: true, - taggable: false, - preserveSearch: true, - internalSearch: false, - - disabled: true, - }); - }); - - test('search', async () => { - let $autocomplete = await createVm(); - - let { multiselect } = $autocomplete.$refs; - - multiselect.$emit('search-change', 'query'); - - expect(search).toHaveBeenCalledWith( - [{id:1, name:'Theodore Bagwell', alias:'T-Bag'}, {id:2, name:'Lincoln Burrows', alias: 'Linc'}], - 'query', - { - searchKeys: ['name', 'alias'] - } - ); - - // expect($autocomplete.searchStrategy).toMatchObject({ - // fuse: { - // list: [{id:1, name:'Theodore Bagwell', alias:'T-Bag'}, {id:2, name:'Lincoln Burrows', alias: 'Linc'}] - // }, - // options: { - // keys: ['name', 'alias'] - // } - // }); - }); - - - test('sync opened with multiselect', async () => { - let $autocomplete = await createVm({ - data: () => ({ value:null }) - }); - let { multiselect } = $autocomplete.$refs; - - expect($autocomplete.opened).toBeFalsy(); - - multiselect.$emit('open'); - - expect($autocomplete.opened).toBe(true); - - multiselect.$emit('close'); - - expect($autocomplete.opened).toBe(false); - }); - - test('emit input on select & correct value', async () => { - let inputEmitted = jest.fn(); - - let $autocomplete = await createVm({ - data: () => ({ value:null }), - methods: { - inputEmitted - } - }); - let { $root:vm } = $autocomplete; - let { multiselect } = $autocomplete.$refs; - - multiselect.$emit('select', {id:2, name:'Lincoln Burrows', alias: 'Linc'}); - - expect(inputEmitted).toHaveBeenLastCalledWith({id:2, name:'Lincoln Burrows', alias: 'Linc'}); - }); - - test('define loading slot', async () => { - let $autocomplete = await createVm(); - let { multiselect } = $autocomplete.$refs; - expect(multiselect.$slots.loading).toBeTruthy(); - }); - - test('define noResult slot', async () => { - let $autocomplete = await createVm(); - let { multiselect } = $autocomplete.$refs; - expect(multiselect.$slots.loading).toBeTruthy(); - }); - }); - - describe('remote', () => { - beforeEach(()=>{ - document.body.innerHTML = ` -
- -
`; - moxios.install(); - }); - - afterEach(()=>{ - moxios.uninstall(); - }); - - test("'loading' computed property changes properly", async () => { - let $autocomplete = await createVm({ - propsData: { - remoteMethod: 'POST' - } - }); - - let { multiselect } = $autocomplete.$refs; - - expect($autocomplete.isLoading).toBeFalsy(); - - multiselect.$emit('open'); - multiselect.$emit('search-change','Li'); // less than min chars - expect($autocomplete.isLoading).toBe(false); - - multiselect.$emit('search-change','Linc'); - expect($autocomplete.isLoading).toBe(true); - - await nextRequestFulfilled({ status: 200, response:[] }, 210); - - expect($autocomplete.isLoading).toBe(false); - }); - - test("'hide dropdown' computed property changes properly (query less than min chars)", async () => { - let $autocomplete = await createVm(); - - let { multiselect } = $autocomplete.$refs; - - expect($autocomplete.hideDropdown).toBe(true); - - multiselect.$emit('search-change', 'Th'); - expect($autocomplete.hideDropdown).toBe(true); - - multiselect.$emit('search-change', 'The'); - expect($autocomplete.hideDropdown).toBe(false); - - }); - - test('Load response data', async () => { - let $autocomplete = await createVm(); - - let { multiselect } = $autocomplete.$refs; - - multiselect.$emit('search-change', 'Theo'); - await nextRequestFulfilled({ status:200, response:[{id:1, name:'Theodore Bagwell', alias:'T-Bag'}] }, 210); - - expect($autocomplete.suggestions).toEqual([{id:1, name:'Theodore Bagwell', alias:'T-Bag'}]); - }); - - test("Send proper GET request", async () => { - let $autocomplete = await createVm({ - propsData: { - remoteMethod: 'GET' - } - }); - - let { multiselect } = $autocomplete.$refs; - - multiselect.$emit('search-change', 'Linc'); - - let { request } = await nextRequestFulfilled({ status:200, response:[] }, 210); - let { config:{ method, params, url }} = request; - - expect(method).toBe('get'); - expect(params).toEqual({ search: 'Linc' }); - expect(url).toBe('/autocomplete'); - }); - - test("Send proper POST request", async () => { - let $autocomplete = await createVm({ - propsData: { - remoteMethod: 'POST' - } - }); - - let { multiselect } = $autocomplete.$refs; - - multiselect.$emit('search-change', 'Linc'); - - let { request } = await nextRequestFulfilled({ status:200, response:[] }, 400); - let { config:{ method, data, url }} = request; - - expect(method).toBe('post'); - expect(JSON.parse(data)).toEqual({ search: 'Linc' }); - expect(url).toBe('/autocomplete'); - }); - }); - -}); - -async function createVm(customOptions={}) { - const vm = new Vue({ - el: '#app', - mixins: [customOptions], - - components: { - 'sharp-autocomplete': Autocomplete - }, - - props:['readOnly', 'remoteMethod'], - - 'extends': { - data:()=>({ value: null }), - methods: { - inputEmitted:()=>{} - } - } - }); - - await Vue.nextTick(); - - return vm.$children[0]; -} diff --git a/packages/form/__tests__/fields/Check.test.js b/packages/form/__tests__/fields/Check.test.js deleted file mode 100644 index 8d8e93f4b..000000000 --- a/packages/form/__tests__/fields/Check.test.js +++ /dev/null @@ -1,60 +0,0 @@ -import Vue from 'vue'; -import Check from '../../src/components/fields/Check.vue'; - - -describe('check-field', () => { - Vue.component('sharp-check', Check); - - beforeEach(()=>{ - document.body.innerHTML = ` -
- -
- ` - }); - - test('can mount Check field', async () => { - await createVm(); - - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('can mount "read only" Check field', async () => { - await createVm({ - propsData: { - readOnly: true - } - }); - - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('emit event on checkbox changed & correct value', async () => { - let inputEmitted = jest.fn(); - - await createVm({ - methods: { - inputEmitted - } - }); - - let checkbox = document.querySelector('input'); - checkbox.dispatchEvent(new Event('change', { bubbles: true })); - expect(inputEmitted).toHaveBeenCalledTimes(1); - expect(inputEmitted).toHaveBeenCalledWith(true); - }); -}); - -async function createVm(customOptions={}) { - - const vm = new Vue({ - el: '#app', - mixins: [customOptions], - - props:['readOnly'] - }); - - await Vue.nextTick(); - - return vm.$children[0]; -} \ No newline at end of file diff --git a/packages/form/__tests__/fields/Date.test.js b/packages/form/__tests__/fields/Date.test.js deleted file mode 100644 index fd378ef0e..000000000 --- a/packages/form/__tests__/fields/Date.test.js +++ /dev/null @@ -1,424 +0,0 @@ -import Vue from 'vue'; -import SharpDate from '../../src/components/fields/date/Date.vue'; -import moment from 'moment-timezone'; - -import { MockInjections, MockI18n } from '@sharp/test-utils'; - - -function date(...args) { - return new Date(Date.UTC(...args)); -} - -xdescribe('date-field',()=>{ - Vue.component('sharp-date', { - extends: SharpDate, - components: { - BPopover: { - template:'
', - } - } - }); - - moment.tz.setDefault('UTC'); - - beforeEach(() => { - document.documentElement.lang = 'fr'; - document.body.innerHTML = ` -
- - -
-
- `; - MockI18n.mockLangFunction(); - }); - - test('can mount Date field', async () => { - await createVm(); - - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('can mount Date field without TimePicker', async () => { - await createVm({ - propsData: { - disableTime: true - } - }); - - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('can mount "read only" Date field', async () => { - await createVm({ - propsData: { - readOnly: true, - disableTime: true, - disableDate: true - } - }); - - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('can mount "picker displayed" Date field', async () => { - let $date = await createVm({ - propsData: { - disableTime: true, - disableDate: true - } - }); - - $date.showPicker = true; - - await Vue.nextTick(); - - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('can mount "monday first" Date field', async () => { - let $date = await createVm({ - propsData: { - mondayFirst: true, - } - }); - - $date.showPicker = true; - - await Vue.nextTick(); - - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('expose appropriate props to TimePicker', async () => { - let $date = await createVm({ - propsData: { - displayFormat: 'HH : mm', - stepTime: 10, - minTime: '3:00', - maxTime: '19:00' - } - }); - - let timepicker = $date.$refs.timepicker; - - $date.showPicker = true; - - await Vue.nextTick(); - - expect(timepicker.$props).toMatchObject({ - value: { - HH: '12', - mm: '11' - }, - active: true, - format: 'HH : mm', - minuteInterval: 10, - min: '3:00', - max: '19:00' - }) - }); - - test('expose appropriate props to DatePicker', async () => { - let $date = await createVm(); - - let datepicker = $date.$refs.datepicker; - - expect(datepicker.$props).toMatchObject({ - value: date(1996, 7, 20, 12, 11), - language: 'fr', - inline: true, - mondayFirst: undefined, - }); - }); - - test('have correct input value', async () => { - let $date = await createVm({ - propsData: { - displayFormat: 'DD/MM/YYYY HH : mm' - } - }); - - expect($date.$refs.input.value).toBe('20/08/1996 12 : 11'); - }); - - test('emit input on date changed & correct value', async () => { - let $date = await createVm(); - - let datepicker = $date.$refs.datepicker; - - let inputEmitted = jest.fn(); - $date.$on('input', inputEmitted); - datepicker.$emit('selected', date(1996, 7, 22)); - - expect(inputEmitted).toHaveBeenCalledTimes(1); - expect(inputEmitted.mock.calls[0][0]).toBeInstanceOf(Date); - expect(inputEmitted.mock.calls[0][0]).toEqual(date(1996, 7, 22, 12, 11)); - }); - - test('emit input on time changed & correct value', async () => { - let $date = await createVm(); - - let timepicker = $date.$refs.timepicker; - - let inputEmitted = jest.fn(); - $date.$on('input', inputEmitted); - timepicker.$emit('change', { data: { HH: 13, mm: 20 } }); - - expect(inputEmitted).toHaveBeenCalledTimes(1); - expect(inputEmitted.mock.calls[0][0]).toBeInstanceOf(Date); - expect(inputEmitted.mock.calls[0][0]).toEqual(date(1996, 7, 20, 13, 20)); - }); - - test('emit input on input changed', async () => { - let $date = await createVm({ - displayFormat: 'DD/MM/YYYY HH:mm' - }); - - let { input } = $date.$refs; - - let inputEmitted = jest.fn(); - let clearEmitted = jest.fn(); - - $date.$on('input', inputEmitted); - $date.$field.$on('clear', clearEmitted); - - $date.showPicker = false; - - input.value = '22/08/1996 13:20'; - input.dispatchEvent(new Event('input', { bubbles: true })); - - expect(clearEmitted).toHaveBeenCalledTimes(1); - expect(inputEmitted).toHaveBeenCalledTimes(1); - expect(inputEmitted.mock.calls[0][0]).toBeInstanceOf(Date); - expect(inputEmitted.mock.calls[0][0]).toEqual(date(1996, 7, 22, 13, 20)); - expect($date.showPicker).toBe(false); - }); - - test('emit error on input changed if invalid and hide picker', async () => { - let $date = await createVm({ - displayFormat: 'DD/MM/YYYY HH:mm' - }); - - let { input } = $date.$refs; - - let inputEmitted = jest.fn(); - let errorEmitted = jest.fn(); - - $date.$field.$on('error', errorEmitted); - $date.$on('input', inputEmitted); - - input.value = '20/08/1996 bug 12 : 40'; - input.dispatchEvent(new Event('input', { bubbles: true })); - - expect(inputEmitted).toHaveBeenCalledTimes(0); - expect(errorEmitted).toHaveBeenCalledTimes(1); - expect($date.showPicker).toBe(false); - }); - - test('keep custom user input', async () => { - let $date = await createVm({ - displayFormat: 'DD/MM/YYYY HH:mm' - }); - let { input } = $date.$refs; - - input.value = '20/08/1996 bug 12 : 40'; - input.dispatchEvent(new Event('input', { bubbles: true })); - $date.$forceUpdate(); - - await Vue.nextTick(); - - expect(input.value).toBe('20/08/1996 bug 12 : 40'); - }); - - test('rollback custom user input on blur', async () => { - let $date = await createVm({ - displayFormat: 'DD/MM/YYYY HH:mm' - }); - let { input } = $date.$refs; - - input.value = '20/08/1996 bug 12 : 40'; - input.dispatchEvent(new Event('input', { bubbles: true })); - - input.focus(); - input.blur(); - - $date.$forceUpdate(); - await Vue.nextTick(); - - expect(input.value).toBe('20/08/1996 12:11'); - }); - - test('rollback custom user input on clear button', async () => { - let $date = await createVm({ - displayFormat: 'DD/MM/YYYY HH:mm', - }); - let { input, clearButton } = $date.$refs; - - input.value = '20/08/1996 bug 12 : 40'; - input.dispatchEvent(new Event('input', { bubbles: true })); - - clearButton.click(); - - $date.$forceUpdate(); - await Vue.nextTick(); - - expect(input.value).toBe('20/08/1996 12:11'); - }); - - test('increase/decrease date on keydown up/down', async () => { - let $date = await createVm({ - propsData: { - displayFormat:'DD/MM/YYYY HH:mm', - stepTime: 10 - } - }); - - let { input } = $date.$refs; - - let inputEmitted = jest.fn(); - - $date.$on('input', inputEmitted); - - - // Day change - input.setSelectionRange(1,1); - - input.dispatchEvent(new KeyboardEvent('keydown', { keyCode: 38 })); //UP - expect(inputEmitted).toHaveBeenCalledTimes(1); - expect(inputEmitted.mock.calls[0][0]).toBeInstanceOf(Date); - expect(inputEmitted.mock.calls[0][0]).toEqual(date(1996, 7, 21, 12, 11)); - - input.dispatchEvent(new KeyboardEvent('keydown', { keyCode: 40 })); //DOWN - expect(inputEmitted).toHaveBeenCalledTimes(2); - expect(inputEmitted.mock.calls[1][0]).toBeInstanceOf(Date); - expect(inputEmitted.mock.calls[1][0]).toEqual(date(1996, 7, 19, 12, 11)); - - - // Month change - input.setSelectionRange(3,3); - - input.dispatchEvent(new KeyboardEvent('keydown', { keyCode: 38 })); //UP - expect(inputEmitted).toHaveBeenCalledTimes(3); - expect(inputEmitted.mock.calls[2][0]).toEqual(date(1996, 8, 20, 12, 11)); - - input.dispatchEvent(new KeyboardEvent('keydown', { keyCode: 40 })); //DOWN - expect(inputEmitted).toHaveBeenCalledTimes(4); - expect(inputEmitted.mock.calls[3][0]).toEqual(date(1996, 6, 20, 12, 11)); - - - // Year change - input.setSelectionRange(6,6); - - input.dispatchEvent(new KeyboardEvent('keydown', { keyCode: 38 })); //UP - expect(inputEmitted).toHaveBeenCalledTimes(5); - expect(inputEmitted.mock.calls[4][0]).toEqual(date(1997, 7, 20, 12, 11)); - - input.dispatchEvent(new KeyboardEvent('keydown', { keyCode: 40 })); //DOWN - expect(inputEmitted).toHaveBeenCalledTimes(6); - expect(inputEmitted.mock.calls[5][0]).toEqual(date(1995, 7, 20, 12, 11)); - - - // Hours change - input.setSelectionRange(11,11); - - input.dispatchEvent(new KeyboardEvent('keydown', { keyCode: 38 })); //UP - expect(inputEmitted).toHaveBeenCalledTimes(7); - expect(inputEmitted.mock.calls[6][0]).toEqual(date(1996, 7, 20, 13, 11)); - - input.dispatchEvent(new KeyboardEvent('keydown', { keyCode: 40 })); //DOWN - expect(inputEmitted).toHaveBeenCalledTimes(8); - expect(inputEmitted.mock.calls[7][0]).toEqual(date(1996, 7, 20, 11, 11)); - - - // Minutes change - input.setSelectionRange(14,14); - - input.dispatchEvent(new KeyboardEvent('keydown', { keyCode: 38 })); //UP - expect(inputEmitted).toHaveBeenCalledTimes(9); - expect(inputEmitted.mock.calls[8][0]).toEqual(date(1996, 7, 20, 12, 20)); - - input.dispatchEvent(new KeyboardEvent('keydown', { keyCode: 40 })); //DOWN - expect(inputEmitted).toHaveBeenCalledTimes(10); - expect(inputEmitted.mock.calls[9][0]).toEqual(date(1996, 7, 20, 12, 10)); - }); - - test('increase/decrease minute properly', async () => { - let $date = await createVm({ - propsData: { - displayFormat:'DD/MM/YYYY HH:mm', - stepTime: 10 - } - }); - - let { input } = $date.$refs; - - let inputEmitted = jest.fn(); - - $date.$on('input', inputEmitted); - - input.setSelectionRange(14,14); - input.dispatchEvent(new KeyboardEvent('keydown', { keyCode: 38 })); //UP - expect(inputEmitted).toHaveBeenCalledTimes(1); - expect(inputEmitted.mock.calls[0][0]).toEqual(date(1996, 7, 20, 12, 20)); - - input.value = '20/08/1996 12:11'; - input.dispatchEvent(new Event('input', { bubbles: true })); - - input.setSelectionRange(14,14); - input.dispatchEvent(new KeyboardEvent('keydown', { keyCode: 40 })); //DOWN - expect(inputEmitted).toHaveBeenCalledTimes(3); - expect(inputEmitted.mock.calls[2][0]).toEqual(date(1996, 7, 20, 12, 10)); - }) - - test('select text properly after increase/descrease', async () => { - let $date = await createVm({ - propsData: { - displayFormat:'DD/MM/YYYY HH:mm', - } - }); - - let { input } = $date.$refs; - - input.setSelectionRange(1,1); - input.setSelectionRange = jest.fn(); - input.dispatchEvent(new KeyboardEvent('keydown', { keyCode: 38 })); //UP - - await Vue.nextTick(); - - expect(input.setSelectionRange).toHaveBeenCalledTimes(1); - expect(input.setSelectionRange).toHaveBeenCalledWith(0,2); - }); - -}); - -async function createVm(customOptions={}) { - let vm = new Vue({ - el: '#app', - - mixins: [customOptions, MockInjections], - props: ['readOnly', 'disableTime','disableDate' ,'displayFormat', 'stepTime', 'minTime', 'maxTime','mondayFirst'], - - 'extends': { - methods: { - inputEmitted:()=>{} - }, - data: ()=>({ value: undefined }) - } - }); - - await Vue.nextTick(); - - return vm.$children[0]; -} diff --git a/packages/form/__tests__/fields/List.test.js b/packages/form/__tests__/fields/List.test.js deleted file mode 100644 index 9f12ab9be..000000000 --- a/packages/form/__tests__/fields/List.test.js +++ /dev/null @@ -1,382 +0,0 @@ -import Vue from 'vue'; -import List from '../../src/components/fields/list/List.vue'; - -import { MockInjections, MockTransitions, MockI18n, QueryComponent, createStub } from '@sharp/test-utils'; -import { ErrorNode } from 'sharp/mixins'; - -import { mount, shallowMount } from '@vue/test-utils'; - -describe('list-field', () => { - Vue.use(MockTransitions); - Vue.use(MockI18n); - Vue.use(QueryComponent); - - const fieldDisplayMock = Vue.component('FieldDisplay',{ - name: 'SharpFieldContainer', - inheritAttrs: false, - mixins: [ ErrorNode ], - render:h=>h('div',' FIELD DISPLAY MOCK ') - }); - - beforeEach(()=>{ - document.body.innerHTML = ` -
- -
- `; - MockI18n.mockLangFunction(); - }); - - test('can mount empty list field', async () => { - await createVm({ - propsData: { - addable:true, removable:true, sortable:true - } - }); - - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('can mount empty "read only" list field', async () => { - await createVm({ - propsData: { - readOnly: true, - addable:true, removable:true, sortable:true - } - }); - - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('can mount filled list field', async () => { - await createVm({ - propsData: { - addable:true, removable:true, sortable:true - }, - data:()=>({ - value: [{id:0, name:'Antoine'}, {id:1, name:'Samuel'}] - }) - }); - - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('can mount "read only" filled list field', async () => { - await createVm({ - propsData: { - readOnly:true, - addable: true, removable: true, sortable: true - }, - data:()=>({ - value: [{id:0, name:'Antoine'}] - }) - }); - - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('can mount collapsed list field', async () => { - let $list = await createVm({ - propsData: { - addable: true, removable: true, sortable: true - }, - data:()=>({ - value: [{id:0, name:'Antoine'}] - }), - }); - - expect.assertions(1); - - $list.dragActive = true; - - await Vue.nextTick(); - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('can mount non addable, non removable, non sortable list field', async () => { - await createVm({ - propsData: { - addable: false, removable: false, sortable: false - }, - data:()=>({ - value: [{id:0, name:'Antoine'},{ id:1, name:'Samuel' }] - }), - }); - - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('can mount with full list', async () => { - await createVm({ - propsData: { - addable:true, removable:true, sortable: true - }, - data:()=>({ - value: [{id:0, name:'Antoine'},{id:1, name:'Samuel'},{id:2, name:'Solène'},{id:3, name:'Georges'},{id:4, name:'Gérard'}] - }), - }); - - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('can mount with bulk upload', async () => { - const wrapper = shallowMount(List, { - propsData: { - bulkUploadField: 'file', - bulkUploadLimit: 10, - itemFields: { - file: { - type: 'upload', - } - } - }, - provide: { - $form: null, - }, - stubs: { - Draggable: createStub({ - template: `` - }), - }, - }); - - expect(wrapper.html()).toMatchSnapshot(); - }); - - test('emit input on init to have list and value equals by reference (sync changes)', async () => { - let inputEmitted = jest.fn(); - - let $list = await createVm({ - methods: { - inputEmitted - } - }); - - expect(inputEmitted).toHaveBeenCalledTimes(1); - expect(inputEmitted).toHaveBeenCalledWith($list.list); - }); - - test('create appropriate item', async () => { - let $list = await createVm(); - - let item = $list.createItem(); - - expect(item).toMatchObject({ id: null, name: null }); - }); - - test('items have correct indexes', async () => { - let $list = await createVm({ - data:()=>({ - value:[{id:0, name:'Antoine'},{id:1, name:'Samuel'},{id:2, name:'Solène'}] - }) - }); - - let { list, indexSymbol } = $list; - - expect(list).toMatchObject([ - { [indexSymbol]:0 },{ [indexSymbol]:1 },{ [indexSymbol]:2 } - ]); - - $list.add(); - - expect(list).toMatchObject([ - { [indexSymbol]:0 },{ [indexSymbol]:1 },{ [indexSymbol]:2 },{ [indexSymbol]:3 } - ]); - }); - - test('items have correct drag indexes', async () => { - let $list = await createVm({ - data:()=>({ - value:[{id:0, name:'Antoine'},{id:1, name:'Samuel'},{id:2, name:'Solène'}] - }) - }); - - $list.toggleDrag(); - - let { list, dragIndexSymbol } = $list; - - expect(list).toMatchObject([ - { [dragIndexSymbol]:0 }, { [dragIndexSymbol]:1 }, { [dragIndexSymbol]:2 } - ]); - }); - - test('remove item correctly', async () => { - let $list = await createVm({ - data:()=>({ - value:[{id:0, name:'Antoine'},{id:1, name:'Samuel'},{id:2, name:'Solène'}] - }) - }); - - $list.remove(1); - - let { list, indexSymbol } = $list; - - expect(list).toMatchObject([ - {id:0, name:'Antoine', [indexSymbol]:0 },{id:2, name:'Solène', [indexSymbol]:2} - ]) - }); - - test('expose appropriate collapsed item template props data', async () => { - let $list = await createVm(); - - let { dragIndexSymbol } = $list; - let data = $list.collapsedItemData({ id:1, name:'Samuel', [dragIndexSymbol]: 2 }); - - expect(data).toMatchObject({ - $index: 2, - id: 1, - name: 'Samuel' - }); - }); - - test('expose appropriate props to field-display', () => { - let wrapper = mount(List,{ - provide: MockInjections.provide, - propsData: { - value: [ { id:0, name:'myName' }], - fieldLayout: { - item:[ - [ {key:'name'} ] - ] - }, - itemFields: { name: { type:'text' } }, - itemIdAttribute:"id", - }, - methods: { - update: jest.fn(i => `update ${i}`) - } - }); - let $field = wrapper.find(fieldDisplayMock); - expect($field.vm.$options.propsData).toMatchObject({ - errorIdentifier: 'name' - }); - expect($field.vm.$attrs).toEqual({ - 'field-key': 'name', - 'context-fields': { name: { type:'text', readOnly:false, } }, - 'context-data': expect.objectContaining({ id: 0, name: 'myName', _fieldsLocale: {} }), - 'config-identifier': 'name', - 'update-data': 'update 0', - 'read-only': false, - 'list': true - }); - }); - - test('update data properly', async () => { - const provided = MockInjections.provide(); - provided.$form.localized = true; - provided.$form.locales = ['fr', 'en']; - let $list = await createVm({ - provide: provided, - propsData: { - itemFields: { - name: { key:'name', type:'text' }, - localizedField: { key:'localizedField', type:'text', localized: true } - }, - }, - - data:()=>({ - value:[{id:0, name:'Antoine'},{id:1, name:'Samuel'},{id:2, name:'Solène'}] - }) - }, null, { mockInjections:false }); - - let updateFn = $list.update(1); - $list.fieldLocalizedValue = jest.fn(()=>'fieldLocalizedValue'); - - updateFn('name','George'); - expect($list.list[1]).toMatchObject({ id:1, name:'fieldLocalizedValue' }); - expect($list.fieldLocalizedValue).toHaveBeenCalledWith( - 'name', 'George', - expect.objectContaining({id:1, name:'Samuel'}), - { localizedField:'fr' } - ); - - jest.resetAllMocks(); - - updateFn('localizedField', 'aaa'); - expect($list.list[1]).toMatchObject({ id:1, name:'fieldLocalizedValue', localizedField:undefined }); - expect($list.fieldLocalizedValue).toHaveBeenCalledWith( - 'localizedField', 'aaa', - expect.objectContaining({id:1, name:'fieldLocalizedValue' }), - { localizedField:'fr' } - ); - }); - - test('insert item properly', async () => { - let $list = await createVm({ - data:()=>({ - value:[{id:0, name:'Antoine'},{id:2, name:'Solène'}] - }) - }); - - $list.insertNewItem(0, {}); - - expect($list.list).toMatchObject([ - {id: null, name: null}, {id:0, name:'Antoine'}, {id:2, name:'Solène'} - ]) - }); - - test('have proper field identifier', async () => { - let $list = await createVm({ - data:()=>({ - value:[{id:0, name:'Antoine'}, {id:1, name:'Samuel'}] - }) - }); - - let identifiers = $list.$findDeepChildren('SharpFieldContainer').map(fc => fc.mergedErrorIdentifier); - - expect(identifiers).toEqual(expect.arrayContaining([ '0.name', '1.name' ])); - }); - - test('has localize mixin with right fieldsProps', async () => { - let $list = await createVm(); - expect($list.$options._localizedForm).toBe('itemFields'); - }); -}); - -async function createVm(customOptions={}, mock, { mockInjections=true }={}) { - - const vm = new Vue({ - el: '#app', - mixins: [ - mockInjections ? MockInjections: {}, - customOptions - ], - - components: { - 'sharp-list':mock||List, - }, - - props:['readOnly', 'addable', 'sortable', 'removable', 'itemFields'], - - 'extends': { - data:() => ({ - value: null - }), - methods: { - inputEmitted: ()=>{} - } - } - - }); - - await Vue.nextTick(); - - return vm.$children[0]; -} diff --git a/packages/form/__tests__/fields/Number.test.js b/packages/form/__tests__/fields/Number.test.js deleted file mode 100644 index 1e3241f26..000000000 --- a/packages/form/__tests__/fields/Number.test.js +++ /dev/null @@ -1,35 +0,0 @@ -import Vue from 'vue'; -import NumberInput from '../../src/components/fields/Number.vue'; - -import { MockInjections } from '@sharp/test-utils'; - - -describe('number-field',()=>{ - Vue.component('sharp-number', NumberInput); - - beforeEach(()=>{ - document.body.innerHTML = ` -
- -
- ` - }); - - test('can mount Number field', async () => { - await createVm(); - - expect(document.body.innerHTML).toMatchSnapshot(); - }); -}); - - -async function createVm(customOptions={}) { - const vm = new Vue({ - el: '#app', - mixins: [MockInjections, customOptions], - }); - - await Vue.nextTick(); - - return vm.$children[0]; -} diff --git a/packages/form/__tests__/fields/Select.test.js b/packages/form/__tests__/fields/Select.test.js deleted file mode 100644 index 7785297f6..000000000 --- a/packages/form/__tests__/fields/Select.test.js +++ /dev/null @@ -1,291 +0,0 @@ -import Vue from 'vue'; -import Select from '../../src/components/fields/Select.vue'; - -import { MockI18n } from '@sharp/test-utils'; - - - -describe('select-field',()=>{ - Vue.use(MockI18n); - - beforeEach(()=>{ - document.body.innerHTML = ` -
- - -
- `; - MockI18n.mockLangFunction(); - }); - - test('can mount Select field', async () => { - await createVm({ - data:() => ({ value: null }) // possible String/Number value (no reactive) - }); - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('can mount Select field with clear button', async () => { - await createVm({ - propsData: { - multiple: false - }, - data:() => ({ value: 3 }) // possible String/Number value (no reactive) - }); - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('can mount Select field as checkboxes list', async () => { - await createVm({ - propsData: { - multiple: true, - display: 'list' - }, - data: () => ({ value: [] }) - }); - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('can mount "read only" Select field as checkboxes list', async () => { - await createVm({ - propsData: { - multiple: true, - display: 'list', - readOnly: true, - }, - data:() => ({ value: [] }) - }); - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('can mount Select field as radios list', async () => { - await createVm({ - propsData: { - multiple: false, - display: 'list' - }, - data: () => ({ value: null }) - }); - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('can mount "read only" Select field as radios list', async () => { - await createVm({ - propsData: { - multiple: false, - display: 'list', - readOnly: true - }, - data: () => ({ value: null }) - }); - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('expose appropriate props to multiselect component', async () => { - - let $tags = await createVm({ - propsData: { - multiple: true, readOnly: true - }, - data: () => ({ value: [3] }) - }); - - let { multiselect } = $tags.$children[0].$refs; - - expect(multiselect.$props).toMatchObject({ - value: [3], - placeholder: 'placeholder', - max: 3, - disabled: true, - searchable: false, - // multiple dependant props - closeOnSelect: false, - multiple: true, - hideSelected: true, - }); - }); - - test('expose appropriate props to multiselect component when multiple is false', async () => { - - let $tags = await createVm({ - propsData: { - multiple: false - }, - data: () => ({ value: null }) - }); - - let { multiselect } = $tags.$children[0].$refs; - - expect(multiselect.$props).toMatchObject({ - // multiple dependant props - closeOnSelect: true, - multiple: false, - hideSelected: false, - }); - }); - - test('clear on cross button clicked', async () => { - let inputEmitted = jest.fn(); - - await createVm({ - propsData: { - multiple: false, - }, - methods: { - inputEmitted - }, - data: () => ({ value: 3 }) - }); - - let clearBtn = document.querySelector('.SharpSelect__clear-button'); - clearBtn.dispatchEvent(new MouseEvent('click')); - - expect(inputEmitted).toHaveBeenCalledWith(null); - }); - - test('check correct checkboxes depending on value', async () => { - let value = []; - await createVm({ - propsData: { - multiple: true, - display: 'list' - }, - data:() => ({ value }) - }); - - let checkboxes = document.querySelectorAll('input'); - - expect(document.querySelectorAll('input:checked').length).toBe(0); - - value.push(3); - await Vue.nextTick(); - - expect(checkboxes[0].checked).toBe(true); - expect(checkboxes[1].checked).toBe(false); - }); - - test('emit input on checkbox changed and correct value', async () => { - let inputEmitted = jest.fn(); - - await createVm({ - propsData: { - multiple: true, - display: 'list' - }, - methods: { - inputEmitted - }, - data: () => ({ value: [] }) - }); - - let checkbox = document.querySelector('input'); - - checkbox.click(); - - expect(inputEmitted).toHaveBeenCalledTimes(1); - expect(inputEmitted).toHaveBeenCalledWith([3]); - }); - - test('check correct radio depending on value', async () => { - - let { $root:vm } = await createVm({ - propsData: { - multiple: false, - display: 'list' - }, - data: () => ({ value: null }), - }); - - let radios = document.querySelectorAll('input'); - - expect(document.querySelectorAll('input:checked').length).toBe(0); - - vm.value = 3; - await Vue.nextTick(); - - expect(radios[0].checked).toBe(true); - expect(radios[1].checked).toBe(false); - }); - - test('emit input on radio clicked and correct value', async () => { - let inputEmitted = jest.fn(); - - await createVm({ - propsData: { - multiple: false, - display: 'list' - }, - methods: { - inputEmitted - }, - data: () => ({ value: null }) - }); - - let radio = document.querySelector('input'); - - radio.dispatchEvent(new Event('change', { bubbles: true })); - - expect(inputEmitted).toHaveBeenCalledTimes(1); - expect(inputEmitted).toHaveBeenCalledWith(3); - }); - - test('correct options labels', async () => { - let $select = await createVm({ - data: () => ({ value: null }) - }); - - expect($select.$children[0].multiselectLabel(3)).toBe('AAA'); - expect($select.$children[0].multiselectLabel(4)).toBe('BBB'); - }); - - test('corresponding multiselect options ids', async () => { - let $select = await createVm({ - data: () => ({ value: null }) - }); - - expect($select.$children[0].multiselectOptions).toEqual([3,4]); - }); - - test('corresponding input id and label for', async () => { - await createVm({ - propsData: { - multiple:false, - display:'list' - }, - data: () => ({ value: null }) - }); - - let radio = document.querySelector('input'), - label = document.querySelector('label'); - - expect(radio.id).toBe('select.0'); - expect(label.htmlFor).toBe('select.0'); - }); -}); - -async function createVm(customOptions={}) { - - const vm = new Vue({ - el: '#app', - mixins: [customOptions], - - components: { - 'sharp-select': Select - }, - - props:['multiple', 'display', 'readOnly'], - }); - - await Vue.nextTick(); - - return vm.$children[0]; -} diff --git a/packages/form/__tests__/fields/Tags.test.js b/packages/form/__tests__/fields/Tags.test.js deleted file mode 100644 index 6a8ac2bf4..000000000 --- a/packages/form/__tests__/fields/Tags.test.js +++ /dev/null @@ -1,130 +0,0 @@ -import Vue from 'vue'; -import Tags from '../../src/components/fields/Tags.vue'; - -import { MockI18n } from '@sharp/test-utils'; - -describe('tags-field', () => { - Vue.use(MockI18n); - - beforeEach(()=>{ - document.body.innerHTML = ` -
- - -
- `; - MockI18n.mockLangFunction(); - }); - - test('can mout Tags field', async () => { - await createVm(); - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('expose appropriate props to multiselect component', async () => { - let $tags = await createVm({ - propsData: { - readOnly: true, - value: [{ id:3, label:'AAA'}] - }, - }); - - let { multiselect } = $tags.$refs; - - expect(multiselect.$props).toMatchObject({ - value: [{id:3, label:'AAA'}], - placeholder: 'placeholder', - tagPlaceholder: 'createText', - taggable: true, - max: 2, - closeOnSelect: false, - multiple: true, - searchable: true, - hideSelected: true, - disabled: true - }); - }); - - test('instantiate proper internal ids', async () => { - let $tags = await createVm({ - propsData: { - value: [{ id:4, label:'BBB'}] - }, - }); - - expect($tags.tags[0].internalId).toEqual(1); // ( second option internal id ) - - expect($tags.indexedOptions[0].internalId).toEqual(0); - expect($tags.indexedOptions[1].internalId).toEqual(1); - }); - - test('adding a tag & with proper internal id', async () => { - let $tags = await createVm({ - propsData: { - value: [] - }, - }); - - let { multiselect } = $tags.$refs; - - expect($tags.tags.length).toBe(0); - - multiselect.$emit('tag', 'CCC'); - - await Vue.nextTick(); - - expect($tags.tags.length).toBe(1); - expect($tags.tags[0]).toEqual({ id:null, label:'CCC', _internalId: 2 }); - }); - - test('emit a tag properly', async () => { - let $tags = await createVm({ - propsData: { - value: [{ id:4, label:'BBB'}] - }, - }); - - let { multiselect } = $tags.$refs; - let inputEmitted = jest.fn(); - - multiselect.$emit('tag', 'CCC'); - - $tags.$on('input', inputEmitted); - await Vue.nextTick(); - - expect(inputEmitted).toHaveBeenCalledTimes(1); - expect(inputEmitted).toHaveBeenCalledWith([{ id:4, label:'BBB'},{ id:null, label:'CCC' }]); - }); - -}); - -async function createVm(customOptions={}) { - - const vm = new Vue({ - el: '#app', - mixins: [customOptions], - - components: { - 'sharp-tags': Tags - }, - - props:['value','readOnly'], - - 'extends':{ - methods: { - inputEmitted:()=>{} - } - }, - }); - - await Vue.nextTick(); - - return vm.$children[0]; -} \ No newline at end of file diff --git a/packages/form/__tests__/fields/Text.test.js b/packages/form/__tests__/fields/Text.test.js deleted file mode 100644 index 307dd5aa3..000000000 --- a/packages/form/__tests__/fields/Text.test.js +++ /dev/null @@ -1,65 +0,0 @@ -import Vue from 'vue'; -import Text from '../../src/components/fields/Text.vue'; - -import { MockInjections } from '@sharp/test-utils'; - -describe('text-field', () => { - Vue.component('sharp-text', Text); - - beforeEach(()=>{ - document.body.innerHTML = ` -
- - -
- ` - }); - - test('can mount Text field', async () => { - await createVm(); - - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('emit event on input and correct value', async () => { - let inputEmitted = jest.fn(); - - await createVm({ - methods: { - inputEmitted - } - }); - let input = document.querySelector('input'); - input.dispatchEvent(new Event('input', { bubbles:true })); - expect(inputEmitted).toHaveBeenCalledTimes(1); - expect(inputEmitted).toHaveBeenCalledWith('AAA'); - }); - - test('take input type in account', async () => { - await createVm({ - propsData: { - inputType: 'password' - } - }); - let input = document.querySelector('input'); - expect(input.type).toBe('password'); - }); - -}); - -async function createVm(customOptions={}) { - - const vm = new Vue({ - el: '#app', - mixins: [MockInjections, customOptions], - - props:['inputType'] - }); - - await Vue.nextTick(); - - return vm.$children[0]; -} \ No newline at end of file diff --git a/packages/form/__tests__/fields/Textarea.test.js b/packages/form/__tests__/fields/Textarea.test.js deleted file mode 100644 index 8e139f35b..000000000 --- a/packages/form/__tests__/fields/Textarea.test.js +++ /dev/null @@ -1,58 +0,0 @@ -import Vue from 'vue'; -import Textarea from '../../src/components/fields/Textarea.vue'; - -describe('textarea-field',()=>{ - Vue.component('sharp-textarea', Textarea); - - beforeEach(()=>{ - document.body.innerHTML = ` -
- -
- ` - }); - - test('can mount Textarea field', async () => { - await createVm(); - - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('emit event on input', async () => { - let inputEmitted = jest.fn(); - - await createVm({ - methods: { - inputEmitted - } - }); - let input = document.querySelector('textarea'); - input.dispatchEvent(new Event('input', { bubbles: true })); - expect(inputEmitted.mock.calls.length).toBe(1); - }); - - test('emit correct value', async () => { - let inputEmitted = jest.fn(); - - await createVm({ - methods: { - inputEmitted - } - }); - let input = document.querySelector('textarea'); - input.dispatchEvent(new Event('input', { bubbles: true })); - expect(inputEmitted.mock.calls[0][0]).toBe('AAA'); - }); -}); - - -async function createVm(customOptions={}) { - const vm = new Vue({ - el: '#app', - mixins: [customOptions], - }); - - await Vue.nextTick(); - - return vm.$children[0]; -} \ No newline at end of file diff --git a/packages/form/__tests__/fields/VueClip.test.js b/packages/form/__tests__/fields/VueClip.test.js deleted file mode 100644 index d999f3c7b..000000000 --- a/packages/form/__tests__/fields/VueClip.test.js +++ /dev/null @@ -1,723 +0,0 @@ -import Vue from 'vue'; -import VueClip from '../../src/components/fields/upload/VueClip.vue'; - -import { MockInjections, MockI18n } from '@sharp/test-utils'; - - -/** Vue clip native methods -// addedFile(File) -// removedFile(File) -// sending() -// complete() -// error() -// uploadProgress() -// thumbnail() -// drop() -// dragEnter() -// dragLeave() -// totalUploadProgress() -// maxFilesExceeded() -// queueComplete() -*/ - - -function mockFile(props) { - return { - upload: {}, - ...props, - } -} - -function mockXhrResponse(data) { - return { - responseText: JSON.stringify(data) - } -} - -describe('vue-clip',() => { - Vue.use(MockI18n); - - let toLocaleString = Number.prototype.toLocaleString; - Number.prototype.toLocaleString = function(locale, options) { - return toLocaleString.call(this,'en-EN', options) - }; - - beforeEach(()=>{ - document.body.innerHTML = ` -
- -
- `; - MockI18n.mockLangFunction(); - }); - - - test('can mount VueClip component', async () => { - await createVm(); - - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('can mount read-only VueClip component', async () => { - await createVm({ - propsData: { - readOnly: true - } - }); - - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('can mount initially non image VueClip component', async () => { - await createVm({ - data: () => ({ - value: { - name: 'Fichier.pdf', - path: 'storage/data/Fichier.pdf', - disk: 'local', - size: 15000 - } - }) - }); - - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('can mount initially image VueClip component', async () => { - await createVm({ - propsData: { - ratioX: 1, ratioY: 2 - }, - data: () => ({ - value: { - name: 'Image.jpg', - path: 'storage/data/Image.jpg', - disk: 'local', - thumbnail: '/image.jpg', - size: 15000 - } - }) - }); - - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('can mount non transformable image', async () => { - await createVm({ - propsData: { - ratioX: 1, ratioY: 2, transformableFileTypes: ['.png'] - }, - data: () => ({ - value: { - name: 'Image.jpg', - path: 'storage/data/Image.jpg', - disk: 'local', - thumbnail: '/image.jpg', - size: 15000 - } - }) - }); - - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('can mount "in progress" VueClip component', async () => { - let $vueClip = await createVm(); - - $vueClip.addedFile({ - name: 'Fichier.pdf', - size: 15000, - upload: {} - }); - - let { file } = $vueClip; - - file.progress = 50; - - await Vue.nextTick(); - - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('can mount "destroyed" VueClip component', async () => { - let $vueClip = await createVm(); - - $vueClip.$destroy(); - - await Vue.nextTick(); - - expect(document.body.innerHTML).toMatchSnapshot(); - }); - - test('init files and reset on value null', async () => { - let $vueClip = await createVm({ - data: ()=>({ - value: { - name: 'Fichier.pdf' - } - }) - }); - - let { $root:vm } = $vueClip; - - expect($vueClip.files).toMatchObject([{ - name: 'Fichier.pdf' - }]); - - vm.value = null; - - await Vue.nextTick(); - - expect($vueClip.files).toEqual([]); - }); - - test('call function on state changed', async () => { - let $vueClip = await createVm({ - data: ()=>({ - value: { - name: 'Fichier.pdf' - } - }) - }); - - $vueClip.onStatusAdded = jest.fn(); - $vueClip.onStatusError = jest.fn(); - $vueClip.onStatusSuccess = jest.fn(); - - $vueClip.file.status = 'added'; - await Vue.nextTick(); - expect($vueClip.onStatusAdded).toHaveBeenCalledTimes(1); - - $vueClip.file.status = 'error'; - await Vue.nextTick(); - expect($vueClip.onStatusError).toHaveBeenCalledTimes(1); - - $vueClip.file.status = 'success'; - await Vue.nextTick(); - expect($vueClip.onStatusSuccess).toHaveBeenCalledTimes(1); - }); - - test('file property is the first item of "files"', async () => { - let $vueClip = await createVm({ - data: ()=>({ - value: { - name: 'Fichier.pdf' - } - }) - }); - - expect($vueClip.files[0]).toBe($vueClip.file); - }); - - test('compute images properties correctly', async () => { - let $vueClip = await createVm({ - data: ()=>({ - value: { - name: 'Image.jpg', - thumbnail: '/image.jpg' - } - }) - }); - - expect($vueClip.transformedImg).toBeFalsy(); - - expect($vueClip.originalImageSrc).toBe($vueClip.file.thumbnail); - expect($vueClip.imageSrc).toBe($vueClip.file.thumbnail); - - $vueClip.remove(); - - $vueClip.addedFile(mockFile({ - name: 'Fic.pdf', - blobUrl: 'blob:<>' - })); - - await Vue.nextTick(); - - expect($vueClip.originalImageSrc).toBe($vueClip.file.blobUrl); - expect($vueClip.imageSrc).toBe($vueClip.file.blobUrl); - - $vueClip.transformedImg = 'blob:<>'; - - await Vue.nextTick(); - - expect($vueClip.imageSrc).toBe($vueClip.transformedImg); - }); - - test('operations finished without any active', async () =>{ - let $vueClip = await createVm({ - data: ()=>({ - value: { - name: 'Image.jpg', - thumbnail: '/image.jpg' - } - }) - }); - - expect($vueClip.operations).toEqual(['transform']); - - expect($vueClip.operationFinished).toEqual({ - transform: null - }); - - expect($vueClip.activeOperationsCount).toBe(0); - }); - - - test('operations finished with one active', async () => { - let $vueClip = await createVm({ - propsData: { - ratioX: 1, - ratioY: 1 - }, - data: ()=>({ - value: { - name: 'Image.jpg', - thumbnail: '/image.jpg' - } - }), - }); - - // reset status to simulate new file - $vueClip.file.status = null; - - expect($vueClip.operationFinished).toEqual({ - transform: false - }); - - expect($vueClip.activeOperationsCount).toBe(1); - expect($vueClip.operationFinishedCount).toBe(0); - - - $vueClip.transformedImg = 'data:image/jpeg'; - - expect($vueClip.operationFinishedCount).toBe(1); - expect($vueClip.operationFinished).toEqual({ - transform: true - }); - }); - - test('progress with operations', async () => { - let $vueClip = await createVm({ - propsData: { - ratioX: 1, - ratioY: 1 - }, - data: ()=>({ - value: { - name: 'Image.jpg', - thumbnail: '/image.jpg' - } - }) - }); - - // reset status to simulate new file - $vueClip.file.status = null; - - $vueClip.file.progress = 50; - - expect($vueClip.progress).toBe(47.5); - - $vueClip.file.progress = 100; - - expect($vueClip.progress).toBe(95); - - $vueClip.transformedImg = 'data:image/jpeg'; - - expect($vueClip.progress).toBe(100); - }); - - test('file size', async () => { - let $vueClip = await createVm({ - data: ()=>({ - value: { - name: 'Fichier.pdf', - size: 0 - } - }) - }); - - Number.prototype.toLocaleString = jest.fn(Number.prototype.toLocaleString); - - $vueClip.file.size = 1024*1024/2; - - expect($vueClip.size).toBe('512 KB'); - expect(Number.prototype.toLocaleString).toHaveBeenCalled(); - - $vueClip.file.size = 768; - expect($vueClip.size).toBe('0.75 KB'); - }); - - test('has transform', async () => { - let $vueClip = await createVm({ - propsData: { - ratioX:1, ratioY:1 - }, - data: ()=>({ - value: { - name: 'Photo2.jpg', - thumbnail: 'Photo2.jpg', - } - }) - }); - - let { $root:vm } = $vueClip; - - expect($vueClip.hasInitialTransform).toBe(false); - expect($vueClip.isTransformable).toBe(true); - - vm.ratioX = 0; - - await Vue.nextTick(); - - expect($vueClip.hasInitialTransform).toBe(false); - - vm.transformableFileTypes = ['.jpg']; - - await Vue.nextTick(); - - expect($vueClip.hasInitialTransform).toBe(false); - expect($vueClip.isTransformable).toBe(true); - - vm.ratioX = 1; - $vueClip.file.status = null; - await Vue.nextTick(); - - expect($vueClip.hasInitialTransform).toBe(true); - - $vueClip.file.name = 'visual.png'; - - expect($vueClip.isTransformable).toBe(false); - expect($vueClip.hasInitialTransform).toBe(false); - }); - - test('file extension', async () => { - let $vueClip = await createVm({ - data: ()=>({ - value: { - name: 'Photo2.jpg' - } - }) - }); - expect($vueClip.fileExtension).toEqual('.jpg'); - }); - - test('filename', async () => { - let $vueClip = await createVm({ - data:()=> ({ - value: { - name: '/sharp/entities/Image.png' - } - }) - }); - - expect($vueClip.fileName).toBe('Image.png'); - - $vueClip.file.name = 'Photo2.jpg'; - - await Vue.nextTick(); - - expect($vueClip.fileName).toBe('Photo2.jpg'); - }); - - test('set pending', async () => { - let $vueClip = await createVm({ - data:()=> ({ - value: { - name: 'Fichier.pdf', - type: '', - } - }) - }); - - - $vueClip.onStatusAdded(); - expect($vueClip.$form.setUploading).toHaveBeenCalledTimes(1); - expect($vueClip.$form.setUploading).toHaveBeenCalledWith('my_upload.0', true); - - $vueClip.file.xhrResponse = mockXhrResponse({}); - - $vueClip.onStatusSuccess(); - expect($vueClip.$form.setUploading).toHaveBeenCalledTimes(2); - expect($vueClip.$form.setUploading).toHaveBeenLastCalledWith('my_upload.0', false); - - $vueClip.onStatusError(); - expect($vueClip.$form.setUploading).toHaveBeenCalledTimes(3); - expect($vueClip.$form.setUploading).toHaveBeenLastCalledWith('my_upload.0', false); - }); - - test('on status added', async () => { - let $vueClip = await createVm({ - data:()=> ({ - value: { - name: 'Fichier.pdf', - type: 'application/pdf', - } - }) - }); - - let handleAdd = jest.fn(); - - $vueClip.$on('add', handleAdd); - $vueClip.onStatusAdded(); - - expect(handleAdd).toHaveBeenCalled(); - }); - - test('on status error', async () => { - let $vueClip = await createVm({ - data:()=> ({ - value: { - name: 'Fichier.pdf' - } - }) - }); - - let handleError = jest.fn(); - $vueClip.remove = jest.fn(); - - $vueClip.file.errorMessage = "Can't upload"; - - $vueClip.$on('error', handleError); - $vueClip.onStatusError(); - - await $vueClip.$nextTick(); - - expect(handleError).toHaveBeenCalledTimes(1); - expect(handleError).toHaveBeenCalledWith("Can't upload", expect.anything()); - }); - - test('on status success', async () => { - let $vueClip = await createVm({ - data:()=> ({ - value: { - name: 'Fichier.pdf' - } - }) - }); - - $vueClip.file.xhrResponse = mockXhrResponse({ - fileName: 'storage/Fichier.pdf' - }); - - let handleSuccess = jest.fn(), handleInput = jest.fn(); - - $vueClip.$on('success', handleSuccess); - $vueClip.$on('input', handleInput); - - $vueClip.onStatusSuccess(); - - expect(handleSuccess).toHaveBeenCalledTimes(1); - expect(handleSuccess).toHaveBeenCalledWith({ - fileName: 'storage/Fichier.pdf', - name: 'Fichier.pdf', - uploaded: true - }); - - expect(handleInput).toHaveBeenCalledTimes(1); - expect(handleInput).toHaveBeenCalledWith({ - fileName: 'storage/Fichier.pdf', - name: 'Fichier.pdf', - uploaded: true - }); - }); - - test('remove', async () => { - let $vueClip = await createVm({ - data:()=> ({ - value: { - name: 'Fichier.pdf' - } - }) - }); - - let handleInput=jest.fn(), handleReset=jest.fn(); - $vueClip.$on('input', handleInput); - $vueClip.$on('reset', handleReset); - - $vueClip.remove(); - - expect(handleInput).toHaveBeenCalledTimes(1); - expect(handleInput).toHaveBeenCalledWith(null); - - expect(handleReset).toHaveBeenCalledTimes(1); - - expect($vueClip.files).toEqual([]); - }); - - function mockCropper() { - return { - cropper: { - ready: false, - }, - getCroppedCanvas:jest.fn(()=>({ - toDataURL:jest.fn(()=>'data:image/jpeg') - })), - getData:jest.fn(()=>({ - width:100, height:200, x:20, y:40, rotate: 0 - })), - getImageData:jest.fn(()=>({ - naturalWidth: 200, naturalHeight: 800 - })) - } - } - - xtest('crop', async () => { - let $vueClip = await createVm({ - propsData: { - ratioX: 1, - ratioY: 1 - }, - data:()=> ({ - value: { - name: 'Image.jpg', - thumbnail: '/image.jpg' - } - }) - }); - - expect($vueClip.$refs.cropper).toBeTruthy(); - - $vueClip.$refs.cropper = mockCropper(); - let { cropper } = $vueClip.$refs.cropper; - - expect($vueClip.isCropperReady()).toBe(false); - cropper.ready = true; - expect($vueClip.isCropperReady()).toBe(true); - - - $vueClip.file.xhrResponse = mockXhrResponse({}); - $vueClip.onCropperReady = jest.fn($vueClip.onCropperReady); - - $vueClip.onStatusSuccess(); - - let handleInput = jest.fn(), handleUpdated = jest.fn(); - $vueClip.$on('input', handleInput); - $vueClip.$on('updated', handleUpdated); - - await Vue.nextTick(); - - expect($vueClip.allowCrop).toBe(true); - expect($vueClip.isTransformable).toBe(true); - expect($vueClip.onCropperReady).toHaveBeenCalled(); - - expect($vueClip.transformedImg).toBe('data:image/jpeg'); - - let testEmit = handler => { - expect(handler).toHaveBeenCalledTimes(1); - expect(handler.mock.calls[0][0]).toEqual({ - name: 'Image.jpg', - thumbnail: '/image.jpg', - transformed: true, - filters: { - crop: { - width: .5, - height: .25, - x: .1, - y: .05, - }, - rotate: { - angle: -0, - }, - } - }) - }; - - testEmit(handleInput); - testEmit(handleUpdated); - - $vueClip.$refs.cropper.getData = jest.fn(()=>({ - width: 100, height: 200, x:20, y:40, rotate: -90 - })); - - $vueClip.updateCropData($vueClip.$refs.cropper); - - testEmit = handler => { - expect(handler).toHaveBeenCalledTimes(2); - expect(handler.mock.calls[1][0]).toMatchObject({ - transformed: true, - filters: { - crop: { - width: 0.125, - height: 1, - x: 0.025, - y: 0.2, - }, - rotate: { - angle: 90, - }, - } - }); - }; - - testEmit(handleInput); - testEmit(handleUpdated); - - $vueClip.remove(); - - expect($vueClip.transformedImg).toBe(null); - }); - - test('cropper modal', async () => { - let $vueClip = await createVm({ - propsData: { - ratioX: 1, ratioY:1 - }, - data:()=> ({ - value: { - name: 'Image.jpg', - thumbnail: '/image.jpg' - } - }) - }); - - const modal = $vueClip.$refs.modal; - - $vueClip.updateTransformedImage = jest.fn(); - $vueClip.updateFilters = jest.fn(); - - modal.$emit('submit'); - - expect($vueClip.updateTransformedImage).toHaveBeenCalledTimes(1); - expect($vueClip.updateFilters).toHaveBeenCalledTimes(1); - - $vueClip.handleEditButtonClick(); - - expect($vueClip.showEditModal).toBe(true); - }); -}); - -async function createVm(customOptions={}) { - const vm = new Vue({ - el: '#app', - mixins: [customOptions, MockInjections], - - components: { - 'sharp-vue-clip': { - 'extends': VueClip, - components: { - 'vue-cropper': { render() {} } - } - } - }, - - props:['readOnly', 'ratioX', 'ratioY', 'transformableFileTypes'], - - 'extends': { - data:() => ({ - value: null - }) - } - }); - - await Vue.nextTick(); - - return vm.$children[0]; -} diff --git a/packages/form/__tests__/fields/__snapshots__/Autocomplete.test.js.snap b/packages/form/__tests__/fields/__snapshots__/Autocomplete.test.js.snap deleted file mode 100644 index ec5ee68a4..000000000 --- a/packages/form/__tests__/fields/__snapshots__/Autocomplete.test.js.snap +++ /dev/null @@ -1,110 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`autocomplete-field common & local can mount Autocomplete field as multiselect 1`] = ` -
-
-
-
-
- - - - - - - nom - -
- -
-
-
-`; - -exports[`autocomplete-field common & local can mount Autocomplete field as result item 1`] = ` -
-
-
-
- -
- - - - - -
- Theodore Bagwell, T-Bag -
-
- -
- -
-
-
-`; diff --git a/packages/form/__tests__/fields/__snapshots__/Check.test.js.snap b/packages/form/__tests__/fields/__snapshots__/Check.test.js.snap deleted file mode 100644 index 52d307b90..000000000 --- a/packages/form/__tests__/fields/__snapshots__/Check.test.js.snap +++ /dev/null @@ -1,23 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`check-field can mount "read only" Check field 1`] = ` -
-
- - -
-
-`; - -exports[`check-field can mount Check field 1`] = ` -
-
- - -
-
-`; diff --git a/packages/form/__tests__/fields/__snapshots__/Date.test.js.snap b/packages/form/__tests__/fields/__snapshots__/Date.test.js.snap deleted file mode 100644 index 8400a6d50..000000000 --- a/packages/form/__tests__/fields/__snapshots__/Date.test.js.snap +++ /dev/null @@ -1,740 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`date-field can mount "monday first" Date field 1`] = ` -
-
-
-
- - - -
-
-
-
-
- - -
-
- - - - - - - Août - 1996 - - - - - - -
-
-
-
- Lun - Mar - Mer - Jeu - Ven - Sam - Dim -
-
-
- - - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - - 8 - - 9 - - 10 - - 11 - - 12 - - 13 - - 14 - - 15 - - 16 - - 17 - - 18 - - 19 - - 20 - - 21 - - 22 - - 23 - - 24 - - 25 - - 26 - - 27 - - 28 - - 29 - - 30 - - 31 - - -
-
-
-
-
- - -
- -
- HH - mm -
- -
-
-
-
-
-
-`; - -exports[`date-field can mount "picker displayed" Date field 1`] = ` -
-
-
-
- - - -
-
-
-
- - -
-
-
-
-
-`; - -exports[`date-field can mount "read only" Date field 1`] = ` -
-
-
-
- - - -
-
-
-
- - -
-
-
-
-
-`; - -exports[`date-field can mount Date field 1`] = ` -
-
-
-
- - - -
-
-
-
-
- - -
-
- - - - - - - Août - 1996 - - - - - - -
-
-
-
- Dim - Lun - Mar - Mer - Jeu - Ven - Sam -
-
-
- - - - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - - 8 - - 9 - - 10 - - 11 - - 12 - - 13 - - 14 - - 15 - - 16 - - 17 - - 18 - - 19 - - 20 - - 21 - - 22 - - 23 - - 24 - - 25 - - 26 - - 27 - - 28 - - 29 - - 30 - - 31 - -
-
-
-
-
- - -
- -
- HH - mm -
- -
-
-
-
-
-
-`; - -exports[`date-field can mount Date field without TimePicker 1`] = ` -
-
-
-
- - - -
-
-
-
-
- - -
-
- - - - - - - Août - 1996 - - - - - - -
-
-
-
- Dim - Lun - Mar - Mer - Jeu - Ven - Sam -
-
-
- - - - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - - 8 - - 9 - - 10 - - 11 - - 12 - - 13 - - 14 - - 15 - - 16 - - 17 - - 18 - - 19 - - 20 - - 21 - - 22 - - 23 - - 24 - - 25 - - 26 - - 27 - - 28 - - 29 - - 30 - - 31 - -
-
-
-
-
- - -
- -
-
-
-
-
-`; diff --git a/packages/form/__tests__/fields/__snapshots__/List.test.js.snap b/packages/form/__tests__/fields/__snapshots__/List.test.js.snap deleted file mode 100644 index 11fd5a770..000000000 --- a/packages/form/__tests__/fields/__snapshots__/List.test.js.snap +++ /dev/null @@ -1,297 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`list-field can mount "read only" filled list field 1`] = ` -
-
-
- -
-
-
-
- -
-
-
-
FIELD DISPLAY MOCK
-
-
-
- - -
-
-
- -
-
-`; - -exports[`list-field can mount collapsed list field 1`] = ` -
-
-
- -
-
-
-
- -
- Antoine -
- -
-
-
- -
-
- -
-
-`; - -exports[`list-field can mount empty "read only" list field 1`] = ` -
-
-
- -
-
-
-
- {{ form.list.empty }} -
-
-`; - -exports[`list-field can mount empty list field 1`] = ` -
-
-
- -
-
-
-
- -
-
- -
-
-`; - -exports[`list-field can mount filled list field 1`] = ` -
-
-
- -
-
-
-
-
- -
-
-
-
-
FIELD DISPLAY MOCK
-
-
-
- -
- -
-
-
-
- -
-
-
-
-
FIELD DISPLAY MOCK
-
-
-
- -
- -
-
-
-
- -
-
- -
-
-`; - -exports[`list-field can mount non addable, non removable, non sortable list field 1`] = ` -
-
-
- -
-
-
-
- -
-
-
-
FIELD DISPLAY MOCK
-
-
-
- - -
-
- -
-
-
-
FIELD DISPLAY MOCK
-
-
-
- - -
-
-
- -
-
-`; - -exports[`list-field can mount with bulk upload 1`] = ` -
-
- -
- - - - -
- - + Ajouter un élément - -
-
- -
-`; - -exports[`list-field can mount with full list 1`] = ` -
-
-
- -
-
-
-
- -
-
-
-
FIELD DISPLAY MOCK
-
-
-
- -
- -
-
-
- -
-
-
-
FIELD DISPLAY MOCK
-
-
-
- -
- -
-
-
- -
-
-
-
FIELD DISPLAY MOCK
-
-
-
- -
- -
-
-
- -
-
-
-
FIELD DISPLAY MOCK
-
-
-
- -
- -
-
-
- -
-
-
-
FIELD DISPLAY MOCK
-
-
-
- -
- -
-
-
-
- -
-
-`; diff --git a/packages/form/__tests__/fields/__snapshots__/Number.test.js.snap b/packages/form/__tests__/fields/__snapshots__/Number.test.js.snap deleted file mode 100644 index 23eb8fc2b..000000000 --- a/packages/form/__tests__/fields/__snapshots__/Number.test.js.snap +++ /dev/null @@ -1,7 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`number-field can mount Number field 1`] = ` -
- -
-`; diff --git a/packages/form/__tests__/fields/__snapshots__/Select.test.js.snap b/packages/form/__tests__/fields/__snapshots__/Select.test.js.snap deleted file mode 100644 index 26c607227..000000000 --- a/packages/form/__tests__/fields/__snapshots__/Select.test.js.snap +++ /dev/null @@ -1,205 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`select-field can mount "read only" Select field as checkboxes list 1`] = ` -
-
-
-
-
- - -
-
-
-
- - -
-
-
- -
-
-`; - -exports[`select-field can mount "read only" Select field as radios list 1`] = ` -
-
-
-
-
- - -
-
-
-
- - -
-
-
-
-
-`; - -exports[`select-field can mount Select field 1`] = ` -
-
-
-
- - - - - - - placeholder - -
- -
-
-`; - -exports[`select-field can mount Select field as checkboxes list 1`] = ` -
-
-
-
-
- - -
-
-
-
- - -
-
-
- -
-
-`; - -exports[`select-field can mount Select field as radios list 1`] = ` -
-
-
-
-
- - -
-
-
-
- - -
-
-
-
-
-`; - -exports[`select-field can mount Select field with clear button 1`] = ` -
-
- -
- - - - - AAA - -
- -
-
-`; diff --git a/packages/form/__tests__/fields/__snapshots__/Tags.test.js.snap b/packages/form/__tests__/fields/__snapshots__/Tags.test.js.snap deleted file mode 100644 index 39dbcafe5..000000000 --- a/packages/form/__tests__/fields/__snapshots__/Tags.test.js.snap +++ /dev/null @@ -1,42 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`tags-field can mout Tags field 1`] = ` -
-
-
-
- - - - - - - placeholder - -
- -
-
-`; diff --git a/packages/form/__tests__/fields/__snapshots__/Text.test.js.snap b/packages/form/__tests__/fields/__snapshots__/Text.test.js.snap deleted file mode 100644 index 7670def4c..000000000 --- a/packages/form/__tests__/fields/__snapshots__/Text.test.js.snap +++ /dev/null @@ -1,7 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`text-field can mount Text field 1`] = ` -
- -
-`; diff --git a/packages/form/__tests__/fields/__snapshots__/Textarea.test.js.snap b/packages/form/__tests__/fields/__snapshots__/Textarea.test.js.snap deleted file mode 100644 index d9e98f910..000000000 --- a/packages/form/__tests__/fields/__snapshots__/Textarea.test.js.snap +++ /dev/null @@ -1,7 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`textarea-field can mount Textarea field 1`] = ` -
- -
-`; diff --git a/packages/form/__tests__/fields/__snapshots__/VueClip.test.js.snap b/packages/form/__tests__/fields/__snapshots__/VueClip.test.js.snap deleted file mode 100644 index a77d24161..000000000 --- a/packages/form/__tests__/fields/__snapshots__/VueClip.test.js.snap +++ /dev/null @@ -1,236 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`vue-clip can mount "destroyed" VueClip component 1`] = ` -
-
-
- - -
- - - -
-
-`; - -exports[`vue-clip can mount "in progress" VueClip component 1`] = ` -
-
-
-
-
- -
-
- -
-
-
14.65 KB
- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - - -
-
- -`; - -exports[`vue-clip can mount VueClip component 1`] = ` -
-
-
- - -
- - - -
-
- -`; - -exports[`vue-clip can mount initially image VueClip component 1`] = ` -
-
-
-
-
-
- -
-
-
- - - -
-
- - -
-
-
-
- -
- - - -
-
- -`; - -exports[`vue-clip can mount initially non image VueClip component 1`] = ` -
-
-
-
-
- -
-
- - - -
-
- - -
-
-
-
- -
- - - -
-
- -`; - -exports[`vue-clip can mount non transformable image 1`] = ` -
-
-
-
-
-
- -
-
-
- - - -
-
- - -
-
-
-
- -
- - - -
-
- -`; - -exports[`vue-clip can mount read-only VueClip component 1`] = ` -
-
-
- - -
- - - -
-
- -`; diff --git a/packages/form/__tests__/mixins/localize/Autocomplete.test.js b/packages/form/__tests__/mixins/localize/Autocomplete.test.js deleted file mode 100644 index 1f04751c4..000000000 --- a/packages/form/__tests__/mixins/localize/Autocomplete.test.js +++ /dev/null @@ -1,49 +0,0 @@ -import localizeAutocomplete from '../../../src/mixins/localize/Autocomplete'; -import localizeField from '../../../src/mixins/localize/field'; -import { mount } from '@vue/test-utils'; - -import { mockInjections } from "./mock"; - -describe('localize-autocomplete', ()=>{ - let wrapper; - beforeEach(()=>{ - wrapper = mount({ - mixins: [localizeAutocomplete], - data: ()=>({ - searchKeys:['title', 'label'], - localValues: [] - }), - render() {} - }, { - propsData: { localized: false, locale:'en' }, - provide: mockInjections({ locales: ['en', 'fr'], localized:true }) - }); - }); - - test('has field mixin', ()=>{ - expect(localizeAutocomplete.mixins).toContain(localizeField); - }); - - test('localizedSearchKeys', ()=>{ - Object.defineProperty(wrapper.vm, 'localizedDataKeys', { get:()=>['title'] }); - expect(wrapper.vm.localizedSearchKeys).toEqual(['title', 'label']); - wrapper.setProps({ localized: true }); - expect(wrapper.vm.localizedSearchKeys).toEqual(['title.en', 'label']); - wrapper.setProps({ locale: 'fr' }); - expect(wrapper.vm.localizedSearchKeys).toEqual(['title.fr', 'label']); - }); - - test('localizedDataKeys', ()=>{ - expect(wrapper.vm.localizedDataKeys).toEqual([]); - wrapper.setData({ - localValues: [{ title: { fr: 'FR text', en: 'EN text' }, label: 'aaa' }] - }); - expect(wrapper.vm.localizedDataKeys).toEqual(['title']); - }); - - test('localizedTemplateData', ()=>{ - expect(wrapper.vm.localizedTemplateData({ title: 'aaa', label:'bbb' })).toEqual({ title: 'aaa', label:'bbb' }); - wrapper.setProps({ localized: true }); - expect(wrapper.vm.localizedTemplateData({ title: { fr:'FR text', en: 'EN text' }, label:'bbb' })).toEqual({ title: 'EN text', label:'bbb' }); - }); -}); diff --git a/packages/form/__tests__/mixins/localize/Select.test.js b/packages/form/__tests__/mixins/localize/Select.test.js deleted file mode 100644 index 5cc513bb8..000000000 --- a/packages/form/__tests__/mixins/localize/Select.test.js +++ /dev/null @@ -1,33 +0,0 @@ -import localizeField from '../../../src/mixins/localize/field'; -import localizeSelect from '../../../src/mixins/localize/Select'; -import { mount } from '@vue/test-utils'; -import { mockInjections } from "./mock"; - -describe('localize-select', ()=>{ - let wrapper; - beforeEach(()=>{ - wrapper = mount({ - mixins:[localizeSelect], - render() {} - }, { provide:mockInjections({ localized:true }) }) - }); - - test('has field mixin', ()=>{ - expect(localizeSelect.mixins).toContain(localizeField); - }); - - test('localizeLabel', ()=>{ - expect(wrapper.vm.localizeLabel('label')).toEqual('label'); - wrapper.setProps({ - localized: true, - locale: 'en' - }); - expect(wrapper.vm.localizeLabel({ en:'localizedLabel' })).toEqual('localizedLabel'); - }); - - test('localizeOptionLabel', ()=>{ - wrapper.vm.localizeLabel = jest.fn(); - wrapper.vm.localizedOptionLabel({ label: 'label' }); - expect(wrapper.vm.localizeLabel).toHaveBeenCalledWith('label'); - }); -}); diff --git a/packages/form/__tests__/mixins/localize/Tags.test.js b/packages/form/__tests__/mixins/localize/Tags.test.js deleted file mode 100644 index 56ada84fa..000000000 --- a/packages/form/__tests__/mixins/localize/Tags.test.js +++ /dev/null @@ -1,58 +0,0 @@ -import localizeTags from '../../../src/mixins/localize/Tags'; -import localizeSelect from '../../../src/mixins/localize/Select'; -import { mount } from '@vue/test-utils'; -import { localeObject } from "../../../src/util/locale"; -import { mockInjections } from "./mock"; - - -jest.mock('sharp', ()=>({ - lang: jest.fn(key=>key) -})); -jest.mock('../../../src/util/locale', ()=>({ - localeObject: jest.fn(()=>'localeObject') -})); - -describe('localize-select', ()=>{ - let wrapper; - beforeEach(()=>{ - wrapper = mount({ - mixins: [localizeTags], - render() {} - }, { - provide: mockInjections({ locales:['en', 'fr'], localized: true }) - }) - }); - - test('extends Select', ()=>{ - expect(localizeTags.extends).toBe(localizeSelect); - }); - - test('localizeLabel', ()=>{ - expect(wrapper.vm.localizeLabel('label')).toEqual('label'); - wrapper.setProps({ - localized: true, - locale: 'en' - }); - expect(wrapper.vm.localizeLabel({ en:'localizedLabel' })).toEqual('localizedLabel'); - expect(wrapper.vm.localizeLabel({ en:null, fr:'label localisé' })).toEqual('form.tags.unknown_label'); - }); - - test('localizedTagLabel', ()=>{ - expect(wrapper.vm.localizedTagLabel('label')).toEqual('label'); - expect(localeObject).not.toHaveBeenCalled(); - wrapper.setProps({ - localized: true, - locale: 'en' - }); - - expect(wrapper.vm.localizedTagLabel('tagLabel')).toEqual('localeObject'); - expect(localeObject).toHaveBeenCalledTimes(1); - expect(localeObject).toHaveBeenCalledWith({ - locales: ['en', 'fr'], - resolve: expect.any(Function) - }); - let { resolve } = localeObject.mock.calls[0][0]; - expect(resolve('en')).toEqual('tagLabel'); - expect(resolve('fr')).toEqual(null); - }); -}); diff --git a/packages/form/__tests__/mixins/localize/editor.test.js b/packages/form/__tests__/mixins/localize/editor.test.js deleted file mode 100644 index 2626d2b06..000000000 --- a/packages/form/__tests__/mixins/localize/editor.test.js +++ /dev/null @@ -1,54 +0,0 @@ -import { LocalizedEditor } from '../../../src/mixins/localize/editor'; -import { localeObjectOrEmpty } from "../../../src/util/locale"; -import { mount } from '@vue/test-utils'; -import { mockInjections } from "./mock"; - -jest.mock('../../../src/util/locale', ()=>({ - localeObjectOrEmpty:jest.fn(()=>'localeObjectOrEmpty') -})); - -describe('localize-editor', ()=>{ - let wrapper; - beforeEach(() => { - wrapper = mount({ - mixins:[LocalizedEditor], - data() { - return { - value: { text: null } - } - }, - render() {} - }, { - propsData: { localized:false, locale:'en' }, - provide: mockInjections({ locales:['en', 'fr'], localized: true }) - }); - }); - - test('localizedText', ()=>{ - expect(wrapper.vm.localizedText).toEqual(null); - wrapper.setProps({ - localized: true - }); - expect(wrapper.vm.localizedText).toEqual(null); - wrapper.setData({ - value: { text: { en:'english text' } } - }); - expect(wrapper.vm.localizedText).toEqual('english text'); - }); - - test('localizedValue', ()=>{ - expect(wrapper.vm.localizedValue('aaa')).toEqual({ - text: 'aaa' - }); - expect(localeObjectOrEmpty).not.toHaveBeenCalled(); - wrapper.setProps({ - localized: true - }); - wrapper.setData({ - value: { text: { fr:'coucou' }, files:[] } - }); - expect(wrapper.vm.localizedValue('aaa', 'en')).toEqual({ text: 'localeObjectOrEmpty', files:[] }); - expect(localeObjectOrEmpty).toHaveBeenCalledWith({ localeObject: { fr:'coucou' }, locale: 'en', value: 'aaa' }); - }); - -}); diff --git a/packages/form/__tests__/mixins/localize/field.test.js b/packages/form/__tests__/mixins/localize/field.test.js deleted file mode 100644 index 462507898..000000000 --- a/packages/form/__tests__/mixins/localize/field.test.js +++ /dev/null @@ -1,36 +0,0 @@ -import localizeField from '../../../src/mixins/localize/field'; -import { mount } from '@vue/test-utils'; -import { mockInjections } from "./mock"; - -describe('localize-field', ()=>{ - let wrapper; - beforeEach(()=>{ - wrapper = mount({ - mixins: [localizeField], - render() {} - }, { - propsData: { locale: 'fr', localized: false }, - provide: mockInjections({ locales:['en', 'fr'], localized: false }) - }); - }); - - test('has locales', ()=>{ - expect(wrapper.vm.locales).toEqual(['en', 'fr']); - - wrapper.vm.$form.locales = ['en']; - - expect(wrapper.vm.locales).toEqual(['en']); - }); - - test('isLocalized', ()=>{ - expect(wrapper.vm.isLocalized).toEqual(false); - wrapper.vm.$form.localized = true; - expect(wrapper.vm.isLocalized).toEqual(false); - wrapper.setProps({ localized:true }); - expect(wrapper.vm.isLocalized).toEqual(true); - }); - - test('has props', ()=>{ - expect(wrapper.vm.$props).toMatchObject({ locale:'fr', localized:false }); - }); -}); \ No newline at end of file diff --git a/packages/form/__tests__/mixins/localize/form.test.js b/packages/form/__tests__/mixins/localize/form.test.js deleted file mode 100644 index a5e9549cf..000000000 --- a/packages/form/__tests__/mixins/localize/form.test.js +++ /dev/null @@ -1,50 +0,0 @@ -import { mount } from '@vue/test-utils'; -import localizeForm from '../../../src/mixins/localize/form'; -import { isLocalizableValueField, localeObjectOrEmpty } from "../../../src/util/locale"; - - -jest.mock('../../../src/util/locale', ()=>({ - isLocalizableValueField: jest.fn(()=>true), - localeObjectOrEmpty: jest.fn(()=>'localeObjectOrEmpty') -})); - - -describe('localize-form', ()=>{ - let wrapper; - beforeEach(()=>{ - wrapper = mount({ - mixins:[localizeForm('fields')], - data() { - return { - data: { title:'myTitle' }, - fields: { - title: { type:'text', localized: false } - }, - fieldLocale: { title:'en' }, - localized: true - } - }, - render() {} - }); - }); - - test('has localizedForm option', ()=>{ - expect(wrapper.vm.$options._localizedForm).toBe('fields'); - }); - - test('fieldLocalizedValue', () => { - expect(wrapper.vm.fieldLocalizedValue('title', 'ABC')).toEqual('ABC'); - expect(isLocalizableValueField).not.toHaveBeenCalled(); - expect(localeObjectOrEmpty).not.toHaveBeenCalled(); - - wrapper.vm.fields.title.localized = true; - wrapper.vm.data.title = { en:'myTitle' }; - - expect(wrapper.vm.fieldLocalizedValue('title', 'ABC')).toEqual('localeObjectOrEmpty'); - expect(isLocalizableValueField).toHaveBeenCalledWith(expect.objectContaining({ type:'text'})); - expect(localeObjectOrEmpty).toHaveBeenLastCalledWith({ localeObject: { en:'myTitle' }, locale:'en', value:'ABC' }); - - expect(wrapper.vm.fieldLocalizedValue('title', 'ABC', { title: { fr:'monTitre' } })).toEqual('localeObjectOrEmpty'); - expect(localeObjectOrEmpty).toHaveBeenLastCalledWith({ localeObject: { fr:'monTitre' }, locale:'en', value:'ABC' }); - }) -}); diff --git a/packages/form/__tests__/mixins/localize/mock.js b/packages/form/__tests__/mixins/localize/mock.js deleted file mode 100644 index 0d941b48a..000000000 --- a/packages/form/__tests__/mixins/localize/mock.js +++ /dev/null @@ -1,7 +0,0 @@ -import Vue from 'vue'; - -export function mockInjections({ locales, localized }) { - return { - $form:new Vue({ data:()=>({ locales, localized }) }) - } -} \ No newline at end of file diff --git a/packages/form/__tests__/util/dynamic-attributes.test.js b/packages/form/__tests__/util/dynamic-attributes.test.js deleted file mode 100644 index 0a6930e12..000000000 --- a/packages/form/__tests__/util/dynamic-attributes.test.js +++ /dev/null @@ -1,254 +0,0 @@ -import * as dynamicAttributesUtil from '../../src/util/dynamic-attributes/util'; -import * as dynamicAttributesResolve from '../../src/util/dynamic-attributes/resolve'; - -import { - transformAttributes, - hasDependency, -} from "../../src/util/dynamic-attributes"; - -import { - resolveValue, - getContextSources, -} from '../../src/util/dynamic-attributes/resolve'; - -import { - getEmptyValueSources, - getDynamicAttributeOptions, - getValueFromMap, - getValueFromTemplate, - getSourcesFromTemplate, -} from '../../src/util/dynamic-attributes/util'; - -describe('Dynamic attributes', () => { - beforeEach(() => { - jest.restoreAllMocks() - }); - - test('getDynamicAttributesOptions', () => { - expect(getDynamicAttributeOptions()).toBeUndefined(); - expect(getDynamicAttributeOptions([{ name:'attribute' }], 'other')).toBeUndefined(); - expect(getDynamicAttributeOptions([{ name:'other' }, { name:'attribute' }], 'attribute')) - .toEqual({ name:'attribute' }); - }); - - test('getValueForMap', () => { - expect( - getValueFromMap({ - map: { - 'true': { - 'Renault': { - '2017': 'value' - } - }, - }, - path: ['check', 'brand_name', 'year'], - contextData: { - check: true, - brand_name: 'Renault', - year: 2017, - }, - }) - ).toEqual('value'); - }); - - test('getValueFromTemplate', () => { - expect(getValueFromTemplate({ - template: '{{name}}/{{year}}', - contextData: { - name: 'George', - year: 2019, - }, - sources: ['name', 'year'], - })).toBe('George/2019'); - }); - test('getValueFromTemplate should not throw', () => { - expect(getValueFromTemplate({ - template: '{{name}}/{{year}}', - contextData: { - name: 'George', - }, - sources: ['name', 'year'], - })).toBe('George/'); - }); - - test('getSourcesFromTemplate', () => { - expect(getSourcesFromTemplate('{{name}}/{{year}}/{{empty}}')) - .toEqual(['name', 'year', 'empty']); - }); - - test('getEmptyValueSources', () => { - expect(getEmptyValueSources({ - contextSources: ['field1', 'field2', 'field3', 'field4', 'field5'], - contextData: { - field1: '', - field2: null, - field3: undefined, - field4: 0, - field5: 'aaa' - }, - })).toEqual(['field1', 'field2', 'field3']); - }); - - test('getContextSources', () => { - expect(getContextSources({ - dynamicOptions: { type:'map', path:'path' } - })).toBe('path'); - - jest.spyOn(dynamicAttributesUtil, 'getSourcesFromTemplate') - .mockImplementation(()=>'templateResolvedSources'); - expect(getContextSources({ - dynamicOptions: { type:'template' }, - attributeValue: '/name' - })).toBe('templateResolvedSources'); - expect(getSourcesFromTemplate).toHaveBeenCalledWith('/name'); - - expect(getContextSources({})).toEqual([]); - }); - - describe('resolveValue', () => { - beforeEach(() => { - jest.spyOn(dynamicAttributesUtil, 'getEmptyValueSources').mockImplementation(()=>[]); - }); - - test('resolve not dynamic', () => { - jest.spyOn(dynamicAttributesUtil, 'getDynamicAttributeOptions').mockImplementation(); - expect( - resolveValue('attr', 'attrValue', { - dynamicAttributes: [{ name:'attr', }], - }) - ).toEqual({ value:'attrValue' }); - expect(getDynamicAttributeOptions).toHaveBeenCalledWith([{ name:'attr', }], 'attr'); - }); - - test('resolve map', () => { - jest.spyOn(dynamicAttributesUtil, 'getValueFromMap').mockImplementation(()=>'resolvedValue'); - jest.spyOn(dynamicAttributesUtil, 'getDynamicAttributeOptions').mockImplementation(()=>({ - name: 'options', - type: 'map', - path: ['brand_name'], - })); - expect( - resolveValue('options', { 1:[] }, { - contextData: { - brand_name: 'Renault', - }, - }) - ).toEqual({ value:'resolvedValue' }); - expect(getValueFromMap).toHaveBeenCalledWith({ - map: { 1:[] }, - path: ['brand_name'], - contextData: { - brand_name: 'Renault', - } - }); - }); - - test('resolve template', () => { - jest.spyOn(dynamicAttributesUtil, 'getValueFromTemplate').mockImplementation(()=>'resolvedValue'); - jest.spyOn(dynamicAttributesUtil, 'getSourcesFromTemplate').mockImplementation(()=>['url']); - jest.spyOn(dynamicAttributesUtil, 'getDynamicAttributeOptions').mockImplementation(()=>({ - name: 'url', - type: 'template', - })); - expect( - resolveValue('url', '/api/{{brand_name}}', { - contextData: { - year: 2016, - }, - }) - ).toEqual({ value: 'resolvedValue' }); - expect(getSourcesFromTemplate).toHaveBeenCalledWith('/api/{{brand_name}}'); - expect(getValueFromTemplate).toHaveBeenCalledWith({ - template: '/api/{{brand_name}}', - sources: ['url'], - contextData: { - year: 2016, - }, - }); - }); - - test('resolve default & empty', () => { - jest.spyOn(dynamicAttributesUtil, 'getEmptyValueSources').mockImplementation(()=>(['field'])); - jest.spyOn(dynamicAttributesUtil, 'getDynamicAttributeOptions').mockImplementation(()=>({ - default: 'defaultValue', - })); - expect(resolveValue('attr', 'value', {})).toEqual({ isEmpty: false, value:'defaultValue', }); - - getDynamicAttributeOptions.mockImplementation(()=>({})); - expect(resolveValue('attr', 'value', {})).toEqual({ isEmpty: true, value:undefined }); - }); - }); - - test('transformAttributes', () => { - jest.spyOn(dynamicAttributesResolve, 'resolveValue').mockImplementation(() => ({ value:'resolvedValue' })); - expect( - transformAttributes({ - localValues: [], - placeholder: 'Enter text', - }, [ - { name:'localValues' }, - ], { - autocomplete: 4, - }) - ).toEqual({ - attributes: { - localValues: 'resolvedValue', - placeholder: 'resolvedValue', - }, - resolvedEmptyAttributes: [], - }); - - expect(resolveValue).toHaveBeenCalledWith('localValues', [], { - dynamicAttributes: [{ name:'localValues' }], - contextData: { - autocomplete: 4, - }, - }); - }); - - test('transformAttributes with empty', () => { - jest.spyOn(dynamicAttributesResolve, 'resolveValue').mockImplementation(()=>({ - value:'defaultValue', isEmpty: true, - })); - expect( - transformAttributes({ - localValues: [], - placeholder: 'Enter text', - }, null, null) - ).toEqual({ - attributes: { - localValues: 'defaultValue', - placeholder: 'defaultValue', - }, - resolvedEmptyAttributes: ['localValues', 'placeholder'], - }); - }); - - test('hasDependency', () => { - jest.spyOn(dynamicAttributesResolve, 'getContextSources') - .mockImplementation(() => ['autocomplete']); - - expect( - hasDependency( - 'autocomplete', [ - { name: 'options' } - ], - { options: [] }, - ) - ).toBe(true); - expect(getContextSources).toHaveBeenCalledWith({ - dynamicOptions: { name: 'options' }, - attributeValue: [], - }); - - expect( - hasDependency( - 'select', [ - { name: 'dynamicAttribute' } - ], - { dynamicAttribute: [] }, - ) - ).toBe(false); - expect(hasDependency()).toBe(false); - }); -}); \ No newline at end of file diff --git a/packages/form/__tests__/util/locale.test.js b/packages/form/__tests__/util/locale.test.js deleted file mode 100644 index f2c1b4884..000000000 --- a/packages/form/__tests__/util/locale.test.js +++ /dev/null @@ -1,53 +0,0 @@ -import { - isLocaleObject, - localeObjectOrEmpty, - isLocalizableValueField, - isLocaleObjectEmpty, - localeObject -} from "../../src/util/locale"; - -describe('localize-utils', ()=>{ - test('isLocaleObject', ()=>{ - expect(isLocaleObject('aaa', ['fr', 'en'])).toBe(false); - expect(isLocaleObject(1, ['fr', 'en'])).toBe(false); - expect(isLocaleObject(['aaa', 'bbb'], ['fr', 'en'])).toBe(false); - expect(isLocaleObject({}, ['fr', 'en'])).toBe(false); - expect(isLocaleObject({ fr: 'aaa' }, ['fr', 'en'])).toBe(false); - expect(isLocaleObject({ fr: 'aaa', en: null }, ['fr', 'en'])).toBe(true); - }); - test('isLocaleObjectEmpty', ()=>{ - expect(isLocaleObjectEmpty({ fr:'aaa', en:'bbb' })).toBe(false); - expect(isLocaleObjectEmpty({ fr:'aaa', en:null })).toBe(false); - expect(isLocaleObjectEmpty({ fr:'', en:null })).toBe(true); - expect(isLocaleObjectEmpty({ fr:null, en:null })).toBe(true); - }); - test('isLocalizableValueField', ()=>{ - expect(isLocalizableValueField({ type:'text' })).toBe(true); - expect(isLocalizableValueField({ type:'textarea' })).toBe(true); - expect(isLocalizableValueField({ type:'markdown' })).toBe(false); - expect(isLocalizableValueField({ type:'wysiwyg' })).toBe(false); - }); - test('localeObject', ()=>{ - expect(localeObject({ locales:['fr', 'en'] })).toEqual({ fr:null, en:null }); - expect(localeObject({ locales:['fr', 'en'], resolve:l=>l })).toEqual({ fr:'fr', en:'en' }); - }); - test('localeObjectOrEmpty', ()=>{ - expect(localeObjectOrEmpty({ - localeObject: { fr:'FR text', en:'EN text' }, - locale:'fr', - value:'new text' - })).toEqual({ fr:'new text', en:'EN text' }); - - expect(localeObjectOrEmpty({ - localeObject: null, - locale:'fr', - value:'new text' - })).toEqual({ fr:'new text' }); - - expect(localeObjectOrEmpty({ - localeObject: { en:null }, - locale:'fr', - value:null - })).toEqual(null); - }); -}); \ No newline at end of file diff --git a/packages/form/package-lock.json b/packages/form/package-lock.json deleted file mode 100644 index 19b52ec72..000000000 --- a/packages/form/package-lock.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "sharp-form", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "sharp-form", - "version": "1.0.0", - "dependencies": { - "sharp-files": "file:../files", - "sharp-ui": "file:../ui" - } - }, - "../files": { - "version": "1.0.0" - }, - "../ui": { - "name": "sharp-ui", - "version": "1.0.0" - }, - "node_modules/sharp-files": { - "resolved": "../files", - "link": true - }, - "node_modules/sharp-ui": { - "resolved": "../ui", - "link": true - } - }, - "dependencies": { - "sharp-files": { - "version": "file:../files" - }, - "sharp-ui": { - "version": "file:../ui" - } - } -} diff --git a/packages/form/package.json b/packages/form/package.json index 55e40d528..13d23efec 100644 --- a/packages/form/package.json +++ b/packages/form/package.json @@ -1,10 +1,6 @@ { - "name": "sharp-form", + "name": "@sharp/form", "private": true, "version": "1.0.0", - "main": "src/index.js", - "dependencies": { - "sharp-files": "file:../files", - "sharp-ui": "file:../ui" - } + "main": "src/index.ts" } diff --git a/packages/form/scss/_page.scss b/packages/form/scss/_page.scss index d49ddfd0d..d88f09de5 100644 --- a/packages/form/scss/_page.scss +++ b/packages/form/scss/_page.scss @@ -1,5 +1,5 @@ -.form { +.FormPage { .SharpActionView { padding-bottom: 0; } diff --git a/packages/form/scss/components/fields/editor/_iframe-node.scss b/packages/form/scss/components/fields/editor/_iframe-node.scss deleted file mode 100644 index 6f1593ea9..000000000 --- a/packages/form/scss/components/fields/editor/_iframe-node.scss +++ /dev/null @@ -1,15 +0,0 @@ - -.iframe-node { - &__modal-renderer { - position: relative; - iframe { - display: block; - width: 100%; - max-height: 260px; - - &[height$="%"] { // e.g 100% - height: 260px; - } - } - } -} diff --git a/packages/form/src/api.js b/packages/form/src/api.js deleted file mode 100644 index 4aefd44de..000000000 --- a/packages/form/src/api.js +++ /dev/null @@ -1,36 +0,0 @@ -import axios from 'axios'; -import { api, apiUrl } from "sharp"; -import { validateAutocompleteResponse } from "./util/autocomplete"; - -export function getAutocompleteSuggestions({ - url, - method, - locale, - searchAttribute, - query, - dataWrapper, - fieldKey, - cancelToken, -}) { - const isGet = method.toLowerCase() === 'get'; - const params = { - locale, - [searchAttribute]: query, - }; - // use default request because it can be external API call - return axios({ - url, - method, - params: isGet ? params : undefined, - data: !isGet ? params : undefined, - cancelToken, - }) - .then(response => { - if(!validateAutocompleteResponse({ results:response.data, dataWrapper, fieldKey, url })) { - return []; - } - return dataWrapper - ? response.data?.[dataWrapper] ?? [] - : response.data ?? []; - }); -} diff --git a/packages/form/src/components/ActionBar.vue b/packages/form/src/components/ActionBar.vue deleted file mode 100644 index 742603855..000000000 --- a/packages/form/src/components/ActionBar.vue +++ /dev/null @@ -1,55 +0,0 @@ - - - diff --git a/packages/form/src/components/BottomBar.vue b/packages/form/src/components/BottomBar.vue deleted file mode 100644 index fbd85c8c7..000000000 --- a/packages/form/src/components/BottomBar.vue +++ /dev/null @@ -1,95 +0,0 @@ - - - diff --git a/packages/form/src/components/Field.vue b/packages/form/src/components/Field.vue deleted file mode 100644 index f0fdb9217..000000000 --- a/packages/form/src/components/Field.vue +++ /dev/null @@ -1,84 +0,0 @@ - diff --git a/packages/form/src/components/FieldDisplay.js b/packages/form/src/components/FieldDisplay.js deleted file mode 100644 index 3cd3c26c2..000000000 --- a/packages/form/src/components/FieldDisplay.js +++ /dev/null @@ -1,82 +0,0 @@ -import { logError } from 'sharp'; -import { UnknownField } from "sharp/components"; -import FieldContainer from './ui/FieldContainer.vue'; -import { isLocalizableValueField } from "../util/locale"; -import { computeCondition } from '../util/conditional-display'; -import { isArray } from "axios/lib/utils"; - - -export function acceptCondition (fields, data, condition) { - if(!condition) - return true; - - return computeCondition(fields,data,condition); -} - -const getValue = (form, field, value, locale) => { - if(form.localized && field.localized && value && isLocalizableValueField(field)) { - if(typeof value !== 'object' || isArray(value)) { - logError(`Localized field '${field.key}' value must be a object, given :`, JSON.stringify(value)); - return value; - } - return value[locale]; - } - - return value; -}; - - -export default { - name: 'SharpFieldDisplay', - functional: true, - - inject:['$form'], - - - - render(h, { props, injections, data }) { - let { fieldKey, - contextFields, - contextData, - errorIdentifier, - updateVisibility, - readOnly, - ...sharedProps } = props; - - let { $form } = injections; - - let field = contextFields[fieldKey]; - let value = contextData[fieldKey]; - - if(!(fieldKey in contextFields)) { - logError(`Field display ('layout') : Can't find a field with key '${fieldKey}' in 'fields'`,contextFields); - return h(UnknownField, { props: { name: fieldKey } }); - } - - let isVisible = acceptCondition(contextFields, contextData, field.conditionalDisplay); - - updateVisibility && updateVisibility(fieldKey, isVisible); - - return isVisible ? h(FieldContainer, { - ...data, - attrs: { - fieldKey, - fieldProps: { - ...field, - readOnly: readOnly || field.readOnly, - }, - fieldType: field.type, - value: getValue($form, field, value, props.locale), - originalValue: value, - label: field.label, - helpMessage: field.helpMessage, - errorIdentifier, - localizedErrorIdentifier: field.localized - ? `${errorIdentifier}.${props.locale}` - : null, - ...sharedProps - } - }) : null - - } -} diff --git a/packages/form/src/components/Form.vue b/packages/form/src/components/Form.vue deleted file mode 100644 index e4929bef4..000000000 --- a/packages/form/src/components/Form.vue +++ /dev/null @@ -1,420 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/Autocomplete.vue b/packages/form/src/components/fields/Autocomplete.vue deleted file mode 100644 index eb59b93f2..000000000 --- a/packages/form/src/components/fields/Autocomplete.vue +++ /dev/null @@ -1,311 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/Check.vue b/packages/form/src/components/fields/Check.vue deleted file mode 100644 index cdabf2629..000000000 --- a/packages/form/src/components/fields/Check.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/Html.vue b/packages/form/src/components/fields/Html.vue deleted file mode 100644 index 9fa0acad4..000000000 --- a/packages/form/src/components/fields/Html.vue +++ /dev/null @@ -1,24 +0,0 @@ - - - \ No newline at end of file diff --git a/packages/form/src/components/fields/Number.vue b/packages/form/src/components/fields/Number.vue deleted file mode 100644 index 297bf81b7..000000000 --- a/packages/form/src/components/fields/Number.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/Select.vue b/packages/form/src/components/fields/Select.vue deleted file mode 100644 index 88acf74da..000000000 --- a/packages/form/src/components/fields/Select.vue +++ /dev/null @@ -1,121 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/Tags.vue b/packages/form/src/components/fields/Tags.vue deleted file mode 100644 index 4c98104f2..000000000 --- a/packages/form/src/components/fields/Tags.vue +++ /dev/null @@ -1,123 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/Text.vue b/packages/form/src/components/fields/Text.vue deleted file mode 100644 index 50b7e2e70..000000000 --- a/packages/form/src/components/fields/Text.vue +++ /dev/null @@ -1,50 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/Textarea.vue b/packages/form/src/components/fields/Textarea.vue deleted file mode 100644 index f4dae593b..000000000 --- a/packages/form/src/components/fields/Textarea.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/date-range/DateRange.vue b/packages/form/src/components/fields/date-range/DateRange.vue deleted file mode 100644 index 90258789e..000000000 --- a/packages/form/src/components/fields/date-range/DateRange.vue +++ /dev/null @@ -1,116 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/date/Date.vue b/packages/form/src/components/fields/date/Date.vue deleted file mode 100644 index 3945ca29c..000000000 --- a/packages/form/src/components/fields/date/Date.vue +++ /dev/null @@ -1,246 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/date/DatePicker.vue b/packages/form/src/components/fields/date/DatePicker.vue deleted file mode 100644 index e7d6b2f3d..000000000 --- a/packages/form/src/components/fields/date/DatePicker.vue +++ /dev/null @@ -1,87 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/editor/Editor.vue b/packages/form/src/components/fields/editor/Editor.vue deleted file mode 100644 index 29d09f934..000000000 --- a/packages/form/src/components/fields/editor/Editor.vue +++ /dev/null @@ -1,155 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/editor/EditorField.vue b/packages/form/src/components/fields/editor/EditorField.vue deleted file mode 100644 index 80fe645f7..000000000 --- a/packages/form/src/components/fields/editor/EditorField.vue +++ /dev/null @@ -1,74 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/editor/LocalizedEditors.vue b/packages/form/src/components/fields/editor/LocalizedEditors.vue deleted file mode 100644 index 6f9cda988..000000000 --- a/packages/form/src/components/fields/editor/LocalizedEditors.vue +++ /dev/null @@ -1,55 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/editor/extensions/embed/EmbedFormModal.vue b/packages/form/src/components/fields/editor/extensions/embed/EmbedFormModal.vue deleted file mode 100644 index 9f5a83663..000000000 --- a/packages/form/src/components/fields/editor/extensions/embed/EmbedFormModal.vue +++ /dev/null @@ -1,70 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/editor/extensions/embed/EmbedNode.vue b/packages/form/src/components/fields/editor/extensions/embed/EmbedNode.vue deleted file mode 100644 index e8825a9e9..000000000 --- a/packages/form/src/components/fields/editor/extensions/embed/EmbedNode.vue +++ /dev/null @@ -1,142 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/editor/extensions/embed/embed.js b/packages/form/src/components/fields/editor/extensions/embed/embed.js deleted file mode 100644 index 1c28e1c03..000000000 --- a/packages/form/src/components/fields/editor/extensions/embed/embed.js +++ /dev/null @@ -1,101 +0,0 @@ -import { Node } from "@tiptap/core"; -import { VueNodeViewRenderer } from "@tiptap/vue-2"; -import { serializeAttributeValue, parseAttributeValue } from "sharp-embeds"; -import EmbedNode from "./EmbedNode.vue"; -import { hyphenate } from "./util"; - -export const Embed = Node.create({ - name: 'embed', - - group: 'block', - - atom: true, - - isolating: true, - - priority: 150, - - addOptions: () => ({ - label: null, - tag: null, - attributes: [], - template: null, - }), - - addAttributes() { - return { - attributes: { - default: {}, - parseHTML: element => { - const attributes = this.options.attributes - .reduce((res, attributeName) => ({ - ...res, - [attributeName]: parseAttributeValue(element.getAttribute(hyphenate(attributeName))), - }), {}); - - if(this.options.attributes.includes('slot')) { - attributes.slot = element.innerHTML; - } - - return attributes; - }, - renderHTML: attributes => this.options.attributes - .filter(attributeName => attributes.attributes[attributeName] != null) - .reduce((res, attributeName) => ({ - ...res, - [hyphenate(attributeName)]: serializeAttributeValue(attributes.attributes[attributeName]), - }), {}), - }, - additionalData: { - default: null, - renderHTML: () => null, - }, - isNew: { - default: false, - renderHTML: () => null, - }, - } - }, - - parseHTML() { - return [ - { - tag: this.options.tag, - }, - ] - }, - - renderHTML({ node, HTMLAttributes }) { - const element = document.createElement(this.options.tag); - - Object.entries(HTMLAttributes) - .filter(([name]) => name !== 'slot') - .forEach(([name, value]) => { - element.setAttribute(name, value); - }); - - if(HTMLAttributes.slot) { - element.innerHTML = HTMLAttributes.slot; - } - - return element; - }, - - addCommands() { - return { - insertEmbed: ({ embedKey }) => ({ commands, tr }) => { - return commands - .insertContentAt(tr.selection.to, { - type: `embed:${embedKey}`, - attrs: { - isNew: true, - }, - }); - }, - } - }, - - addNodeView() { - return VueNodeViewRenderer(EmbedNode); - }, -}); diff --git a/packages/form/src/components/fields/editor/extensions/embed/index.js b/packages/form/src/components/fields/editor/extensions/embed/index.js deleted file mode 100644 index 74d8c8a4e..000000000 --- a/packages/form/src/components/fields/editor/extensions/embed/index.js +++ /dev/null @@ -1,97 +0,0 @@ -import Vue from "vue"; -import { Embed } from "./embed"; -import { postEmbedForm, postResolveEmbedForm, postResolveEmbeds } from "sharp-embeds"; -import debounce from "lodash/debounce"; - - - -export function getEmbedExtension({ - embedKey, - embedOptions, - form, -}) { - - const state = Vue.observable({ - embeds: [], - currentIndex: 0, - created: false, - resolved: null, - onResolve: null, - }); - - state.resolved = new Promise(resolve => state.onResolve = resolve); - - const resolveEmbeds = embeds => { - return postResolveEmbeds({ - entityKey: form.entityKey, - instanceId: form.instanceId, - embedKey, - embeds, - form: true, - }) - } - - const config = { - name: `embed:${embedKey}`, - onCreate: debounce(async () => { - if(state.currentIndex > 0) { - state.embeds = await resolveEmbeds(state.embeds); - state.onResolve(); - } - state.created = true; - }), - } - - const options = { - label: embedOptions.label, - tag: embedOptions.tag, - attributes: embedOptions.attributes ?? [], - template: embedOptions.template, - state, - isReady: () => { - return state.created; - }, - getEmbed: id => { - return state.embeds[id]; - }, - async getAdditionalData(attrs) { - if(state.created) { - return null; - } - const index = state.currentIndex++; - state.embeds.push(attrs); - await state.resolved; - return state.embeds[index]; - }, - onUpdate: (id, data) => { - state.embeds = { - ...state.embeds, - [id]: data, - } - }, - onRemove: (id) => { - const { [id]:removedEmbed, ...embed } = state.embeds; - state.embeds = embed; - }, - resolveForm(attributes) { - return postResolveEmbedForm({ - entityKey: form.entityKey, - instanceId: form.instanceId, - embedKey, - attributes, - }); - }, - postForm(data) { - return postEmbedForm({ - entityKey: form.entityKey, - instanceId: form.instanceId, - embedKey, - data, - }); - }, - } - - return Embed - .extend(config) - .configure(options); -} diff --git a/packages/form/src/components/fields/editor/extensions/embed/util.js b/packages/form/src/components/fields/editor/extensions/embed/util.js deleted file mode 100644 index 2a3d60db2..000000000 --- a/packages/form/src/components/fields/editor/extensions/embed/util.js +++ /dev/null @@ -1,6 +0,0 @@ - - -export function hyphenate(attributeName) { - return attributeName - .replace(/[A-Z]+(?![a-z])|[A-Z]/g, (char, ofs) => (ofs ? '-' : '') + char.toLowerCase()) -} diff --git a/packages/form/src/components/fields/editor/extensions/html/HtmlNode.vue b/packages/form/src/components/fields/editor/extensions/html/HtmlNode.vue deleted file mode 100644 index 683b37aec..000000000 --- a/packages/form/src/components/fields/editor/extensions/html/HtmlNode.vue +++ /dev/null @@ -1,89 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/editor/extensions/html/html.js b/packages/form/src/components/fields/editor/extensions/html/html.js deleted file mode 100644 index 6c81948d8..000000000 --- a/packages/form/src/components/fields/editor/extensions/html/html.js +++ /dev/null @@ -1,77 +0,0 @@ -import { Node } from "@tiptap/core"; -import { VueNodeViewRenderer } from "@tiptap/vue-2"; -import HtmlNode from "./HtmlNode.vue"; -import { setupContent, setupContentDOM } from "./util"; - -export const Html = Node.create({ - name: 'html-content', - group: 'block', - onBeforeCreate() { - if(!this.editor.storage.markdown) { - this.editor.setOptions({ - content: setupContent( - this.editor.options.content, - this.editor.schema - ) - }); - } - }, - - addStorage() { - return { - markdown: { - parse: { - updateDOM(dom) { - setupContentDOM(dom, this.editor.schema); - }, - } - } - } - }, - - addAttributes() { - return { - content: { - default: '', - parseHTML(element) { - return element.innerHTML.trim(); - }, - }, - new: { - default: false, - }, - } - }, - - renderHTML({ node }) { - const parent = document.createElement('div'); - parent.setAttribute('data-html-content', 'true'); - parent.innerHTML = node.attrs.content; - return parent; - }, - - parseHTML() { - return [ - { - tag: '[data-html-content]', - } - ] - }, - - addCommands() { - return { - insertHtml: () => ({ commands }) => { - return commands.insertContent({ - type: this.name, - attrs: { - new: true, - }, - }) - }, - } - }, - - addNodeView() { - return VueNodeViewRenderer(HtmlNode); - }, -}); diff --git a/packages/form/src/components/fields/editor/extensions/html/index.js b/packages/form/src/components/fields/editor/extensions/html/index.js deleted file mode 100644 index 74047c8b9..000000000 --- a/packages/form/src/components/fields/editor/extensions/html/index.js +++ /dev/null @@ -1,2 +0,0 @@ - -export * from './html'; diff --git a/packages/form/src/components/fields/editor/extensions/iframe/IframeNode.vue b/packages/form/src/components/fields/editor/extensions/iframe/IframeNode.vue deleted file mode 100644 index 6b3bd3f34..000000000 --- a/packages/form/src/components/fields/editor/extensions/iframe/IframeNode.vue +++ /dev/null @@ -1,153 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/editor/extensions/iframe/iframe.js b/packages/form/src/components/fields/editor/extensions/iframe/iframe.js deleted file mode 100644 index 99407b92f..000000000 --- a/packages/form/src/components/fields/editor/extensions/iframe/iframe.js +++ /dev/null @@ -1,86 +0,0 @@ -import { Node } from '@tiptap/core' -import { PasteRule } from "@tiptap/core"; -import { VueNodeViewRenderer } from "@tiptap/vue-2"; -import IframeNode from "./IframeNode.vue"; - -export const Iframe = Node.create({ - name: 'iframe', - - group: 'block', - - atom: true, - - addOptions: () => ({ - HTMLAttributes: { - class: 'iframe-wrapper', - }, - }), - - addAttributes() { - return { - src: { - default: null, - }, - frameborder: { - default: 0, - }, - width: { - default: null - }, - height: { - default: null - }, - allow: { - default: null, - }, - allowfullscreen: { - default: null, - }, - isNew: { - default: false, - renderHTML: () => null, - }, - } - }, - - parseHTML() { - return [{ - tag: 'iframe', - }] - }, - - renderHTML({ HTMLAttributes }) { - return ['div', this.options.HTMLAttributes, ['iframe', HTMLAttributes]] - }, - - addPasteRules() { - return [ - new PasteRule({ - find: /(?:^|\s)().*/g, - handler: ({ state, range, match }) => { - const html = match[1]; - setTimeout(() => { - this.editor.commands.insertContentAt(range, html); - }); - } - }), - ] - }, - - addCommands() { - return { - insertIframe: () => ({ commands, tr }) => { - return commands.insertContentAt(tr.selection.to, { - type: this.name, - attrs: { - isNew: true, - }, - }); - }, - } - }, - - addNodeView() { - return VueNodeViewRenderer(IframeNode); - }, -}); diff --git a/packages/form/src/components/fields/editor/extensions/index.js b/packages/form/src/components/fields/editor/extensions/index.js deleted file mode 100644 index 29dbe8889..000000000 --- a/packages/form/src/components/fields/editor/extensions/index.js +++ /dev/null @@ -1,219 +0,0 @@ -import { Extension, getExtensionField, getSchema } from "@tiptap/core"; -import StarterKit from "@tiptap/starter-kit"; -import { Heading } from "@tiptap/extension-heading"; -import { HardBreak } from "@tiptap/extension-hard-break"; -import { Link } from "@tiptap/extension-link"; -import { Image } from "@tiptap/extension-image"; -import { HorizontalRule } from "@tiptap/extension-horizontal-rule"; -import { Placeholder } from "@tiptap/extension-placeholder"; -import { Table } from "@tiptap/extension-table"; -import { TableRow } from "@tiptap/extension-table-row"; -import { TableHeader } from "@tiptap/extension-table-header"; -import { TableCell } from "@tiptap/extension-table-cell"; -import { Highlight } from "@tiptap/extension-highlight"; -import { CodeBlock } from "@tiptap/extension-code-block"; -import { Superscript } from "@tiptap/extension-superscript"; -import { Selected } from "./selected"; -import { Html } from "./html"; -import { TrailingNode } from "./trailing-node"; -import { Iframe } from "./iframe/iframe"; -import { Paste } from "./paste"; -import { Small } from "./small"; -import CharacterCount from '@tiptap/extension-character-count'; -import { getAllowedHeadingLevels, toolbarHasButton } from "../util"; - - -function getHeadingExtension(toolbar) { - if(!toolbar) { - return Heading; - } - const levels = getAllowedHeadingLevels(toolbar); - if(levels.length > 0) { - return Heading.configure({ - levels, - }); - } -} - -function getLinkExtension(toolbar) { - if(toolbarHasButton(toolbar, 'link')) { - return Link.configure({ - openOnClick: false, - HTMLAttributes: { - rel: null, - target: null, - }, - }); - } -} - -function getImageExtension(toolbar) { - return Image.configure({ - HTMLAttributes: { - class: 'editor__image', - }, - }); -} - -function getHorizontalRuleExtension(toolbar) { - if(toolbarHasButton(toolbar, 'horizontal-rule')) { - return HorizontalRule.extend({ - selectable: false, - }); - } -} - -function getTableExtensions(toolbar) { - if(toolbarHasButton(toolbar, 'table')) { - return [ - Table, - TableRow, - TableHeader, - TableCell, - ]; - } -} - -function getPlaceholderExtension(placeholder) { - if(placeholder) { - return Placeholder.configure({ - placeholder, - }); - } -} - -function getIframeExtension(toolbar) { - if(toolbarHasButton(toolbar, 'iframe')) { - return Iframe; - } -} - -function getHighlightExtension(toolbar) { - if(toolbarHasButton(toolbar, 'highlight')) { - return Highlight; - } -} - -function getSmallExtension(toolbar) { - if(toolbarHasButton(toolbar, 'small')) { - return Small; - } -} - -function getCodeBlockExtension(toolbar) { - if(toolbarHasButton(toolbar, 'code-block')) { - return CodeBlock; - } -} - -function getSuperscriptExtension(toolbar) { - if(toolbarHasButton(toolbar, 'superscript')) { - return Superscript; - } -} - -function getPasteExtension({ toolbar, inline }) { - const extensions = getToolbarExtensions({ - toolbar: toolbar ?? [], // if no toolbar, prevent pasting formatted HTML - inline, - }); - const schema = getSchema(extensions); - return Paste.configure({ - schema, - inline, - }); -} - -function getHardBreakExtension({ inline }) { - return HardBreak - .extend({ - addKeyboardShortcuts() { - if(inline) { - return { - 'Enter': () => this.editor.commands.setHardBreak(), - ...this.parent(), - } - } - return this.parent(); - }, - }); -} - -function getTrailingNodeExtension({ inline }) { - if(!inline) { - return TrailingNode; - } -} - -function getCharacterCountExtension() { - return Extension.create({ - addExtensions() { // use addExtension to ensure unique state - return [ - CharacterCount.configure(), - ] - } - }); -} - -function getStarterKitExtensions(toolbar) { - const bulletList = toolbarHasButton(toolbar, 'bullet-list'); - const orderedList = toolbarHasButton(toolbar, 'ordered-list'); - const starterKit = StarterKit.configure({ - blockquote: toolbarHasButton(toolbar, 'blockquote'), - bold: toolbarHasButton(toolbar, 'bold'), - bulletList, - code: toolbarHasButton(toolbar, 'code'), - codeBlock: false, - document: true, - dropcursor: true, - gapcursor: true, - hardBreak: false, - heading: false, - history: true, - horizontalRule: false, - italic: toolbarHasButton(toolbar, 'italic'), - listItem: bulletList || orderedList, - orderedList, - paragraph: true, - strike: false, - text: true, - }); - return getExtensionField(starterKit, 'addExtensions', starterKit)(); -} - -function getToolbarExtensions({ toolbar, inline }) { - const extensions = [ - getStarterKitExtensions(toolbar), - getHeadingExtension(toolbar), - getLinkExtension(toolbar), - getImageExtension(toolbar), - getHorizontalRuleExtension(toolbar), - getTableExtensions(toolbar), - getHighlightExtension(toolbar), - getSmallExtension(toolbar), - getIframeExtension(toolbar), - getCodeBlockExtension(toolbar), - getSuperscriptExtension(toolbar), - getHardBreakExtension({ inline }), - ]; - return extensions - .flat() - .filter(extension => !!extension); -} - -export function getDefaultExtensions({ placeholder, toolbar, inline } = {}) { - const extensions = [ - getToolbarExtensions({ toolbar, inline }), - getPasteExtension({ toolbar, inline }), - getPlaceholderExtension(placeholder), - getTrailingNodeExtension({ inline }), - getCharacterCountExtension(), - Html, - Selected, - ]; - return extensions - .flat() - .filter(extension => !!extension); -} - -export * from './upload'; diff --git a/packages/form/src/components/fields/editor/extensions/paste.js b/packages/form/src/components/fields/editor/extensions/paste.js deleted file mode 100644 index 022b1574b..000000000 --- a/packages/form/src/components/fields/editor/extensions/paste.js +++ /dev/null @@ -1,57 +0,0 @@ -import { Extension } from "@tiptap/core"; -import { Plugin } from '@tiptap/pm/state'; -import { DOMParser, Schema } from '@tiptap/pm/model'; - -export const Paste = Extension.create({ - name: 'paste', - addOptions: () => ({ - schema: null, - inline: false, - }), - addProseMirrorPlugins() { - const schema = getNormalizedSchema( - this.options.schema, - this.editor.schema - ); - const parser = DOMParser.fromSchema(schema); - return [ - new Plugin({ - props: { - clipboardParser: parser, - clipboardTextParser: (text, $context) => { - if(this.options.inline) { - const dom = document.createElement('div'); - dom.innerHTML = text.trim().replace(/(\r\n?|\n)/g, '
'); - return parser.parseSlice(dom, { - preserveWhitespace: true, - context: $context, - }); - } - return null; - }, - transformPastedHTML: html => { - if(this.options.inline) { - return html - .replace(/<\/p>\s*]*>/g, '

') - .replace(/]*>/g, '') - .replace(/<\/p>/g, ''); - } - return html; - }, - }, - }) - ] - }, -}); - -// needed to keep same references of node/mark types -function getNormalizedSchema(target, source) { - const schema = new Schema(target.spec); - schema.nodes = Object.fromEntries( - Object.entries(source.nodes).filter(([key]) => !!target.nodes[key]) - ); - schema.marks = Object.fromEntries( - Object.entries(source.marks).filter(([key]) => !!target.marks[key]) - ); - return schema; -} diff --git a/packages/form/src/components/fields/editor/extensions/selected.js b/packages/form/src/components/fields/editor/extensions/selected.js deleted file mode 100644 index 4ffcc1de3..000000000 --- a/packages/form/src/components/fields/editor/extensions/selected.js +++ /dev/null @@ -1,27 +0,0 @@ -import { Plugin } from "@tiptap/pm/state"; -import { Decoration, DecorationSet } from "@tiptap/pm/view"; -import { Extension } from "@tiptap/core"; - -export const Selected = Extension.create({ - name: 'selected', - addProseMirrorPlugins() { - return [ - new Plugin({ - props: { - decorations(state) { - const selection = state.selection; - const decorations = []; - - state.doc.nodesBetween(selection.from, selection.to, (node, position) => { - if (node.isBlock) { - decorations.push(Decoration.node(position, position + node.nodeSize, {class: 'selected'})); - } - }); - - return DecorationSet.create(state.doc, decorations); - } - } - }) - ] - } -}) diff --git a/packages/form/src/components/fields/editor/extensions/small.js b/packages/form/src/components/fields/editor/extensions/small.js deleted file mode 100644 index 61798c59a..000000000 --- a/packages/form/src/components/fields/editor/extensions/small.js +++ /dev/null @@ -1,31 +0,0 @@ -import { Mark, mergeAttributes } from "@tiptap/core"; - -export const Small = Mark.create({ - name: 'small', - - parseHTML() { - return [ - { - tag: 'small', - }, - ] - }, - - renderHTML({ HTMLAttributes }) { - return ['small', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0] - }, - - addCommands() { - return { - toggleSmall: () => ({ commands }) => { - return commands.toggleMark(this.name) - }, - } - }, - - addKeyboardShortcuts() { - return { - 'Mod-Shift-s': () => this.editor.commands.toggleSmall(), - } - }, -}); diff --git a/packages/form/src/components/fields/editor/extensions/trailing-node.js b/packages/form/src/components/fields/editor/extensions/trailing-node.js deleted file mode 100644 index f24803b3b..000000000 --- a/packages/form/src/components/fields/editor/extensions/trailing-node.js +++ /dev/null @@ -1,57 +0,0 @@ -import { Extension } from '@tiptap/core' -import { PluginKey, Plugin } from '@tiptap/pm/state' - - -function nodeEqualsType({ types, node }) { - return (Array.isArray(types) && types.includes(node.type)) || node.type === types -} - -export const TrailingNode = Extension.create({ - name: 'trailingNode', - - addOptions: () => ({ - node: 'paragraph', - notAfter: [ - 'paragraph', - ], - }), - - addProseMirrorPlugins() { - const plugin = new PluginKey(this.name) - const disabledNodes = Object.entries(this.editor.schema.nodes) - .map(([, value]) => value) - .filter(node => this.options.notAfter.includes(node.name)) - - return [ - new Plugin({ - key: plugin, - appendTransaction: (_, __, state) => { - const { doc, tr, schema } = state - const shouldInsertNodeAtEnd = plugin.getState(state) - const endPosition = doc.content.size - const type = schema.nodes[this.options.node] - - if (!shouldInsertNodeAtEnd) { - return - } - - return tr.insert(endPosition, type.create()) - }, - state: { - init: (_, state) => { - const lastNode = state.tr.doc.lastChild - return !nodeEqualsType({ node: lastNode, types: disabledNodes }) - }, - apply: (tr, value) => { - if (!tr.docChanged) { - return value - } - - const lastNode = tr.doc.lastChild - return !nodeEqualsType({ node: lastNode, types: disabledNodes }) - }, - }, - }), - ] - }, -}) diff --git a/packages/form/src/components/fields/editor/extensions/upload/UploadFileInput.vue b/packages/form/src/components/fields/editor/extensions/upload/UploadFileInput.vue deleted file mode 100644 index e42dcdf8f..000000000 --- a/packages/form/src/components/fields/editor/extensions/upload/UploadFileInput.vue +++ /dev/null @@ -1,46 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/editor/extensions/upload/UploadNode.vue b/packages/form/src/components/fields/editor/extensions/upload/UploadNode.vue deleted file mode 100644 index 4be1979d8..000000000 --- a/packages/form/src/components/fields/editor/extensions/upload/UploadNode.vue +++ /dev/null @@ -1,141 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/editor/extensions/upload/events-plugin.js b/packages/form/src/components/fields/editor/extensions/upload/events-plugin.js deleted file mode 100644 index 6eaa83b45..000000000 --- a/packages/form/src/components/fields/editor/extensions/upload/events-plugin.js +++ /dev/null @@ -1,56 +0,0 @@ -import { Plugin } from '@tiptap/pm/state'; - - -function insertFiles(files, { editor, pos }) { - [...files] - .reverse() - .reduce((chain, file) => - chain.insertUpload({ - file, - pos, - }), - editor.chain() - ) - .run(); -} - -export function getEventsPlugin(editor) { - return new Plugin({ - props: { - handlePaste(view, event) { - const clipboardData = event.clipboardData || event.originalEvent.clipboardData; - - if(!clipboardData.files.length) { - return; - } - - event.preventDefault(); - - insertFiles(clipboardData.files, { - pos: editor.state.selection, - editor, - }); - - return false; - }, - handleDOMEvents: { - drop(view, event) { - if (!event.dataTransfer?.files?.length) { - return - } - - event.preventDefault(); - - const coordinates = view.posAtCoords({ left: event.clientX, top: event.clientY }); - - insertFiles(event.dataTransfer.files, { - pos: coordinates.pos, - editor, - }); - - return true; - }, - }, - }, - }); -} diff --git a/packages/form/src/components/fields/editor/extensions/upload/index.js b/packages/form/src/components/fields/editor/extensions/upload/index.js deleted file mode 100644 index 8717efee7..000000000 --- a/packages/form/src/components/fields/editor/extensions/upload/index.js +++ /dev/null @@ -1,103 +0,0 @@ -import Vue from 'vue'; -import debounce from 'lodash/debounce'; -import { - filesEquals, - postResolveFiles, - defaultFileThumbnailHeight, - defaultFileThumbnailWidth, -} from "sharp-files"; -import { Upload } from "./upload"; - - -export function getUploadExtension({ - fieldProps, - uniqueIdentifier, - fieldConfigIdentifier, - form, -}) { - - const state = Vue.observable({ - registeredFiles: [], - created: false, - resolved: null, - onResolve: null, - }); - - state.resolved = new Promise(resolve => state.onResolve = resolve); - - const updateFiles = files => { - this.$emit('input', { - ...this.value, - files, - }); - } - - const resolveFiles = files => { - return postResolveFiles({ - entityKey: form.entityKey, - instanceId: form.instanceId, - files, - thumbnailWidth: defaultFileThumbnailWidth, - thumbnailHeight: defaultFileThumbnailHeight, - }); - } - - const config = { - onBeforeCreate: () => { - updateFiles([]) - }, - onCreate: debounce(async () => { - if(state.registeredFiles.length > 0) { - const files = await resolveFiles(state.registeredFiles); - updateFiles(files); - state.onResolve(); - } - state.created = true; - state.registeredFiles = []; - }), - } - - const options = { - fieldProps: { - ...fieldProps, - uniqueIdentifier, - fieldConfigIdentifier, - }, - state, - registerFile: async attrs => { - if(state.created) { - updateFiles([ - ...this.value.files, - attrs, - ]); - return attrs; - } - - state.registeredFiles.push(attrs); - await state.resolved; - return this.value.files.find(file => filesEquals(attrs, file)); - }, - onSuccess: uploadedFile => { - updateFiles([ - ...this.value.files, - uploadedFile, - ]); - }, - onRemove: removedFile => { - updateFiles( - this.value.files - .filter(file => !filesEquals(file, removedFile)), - ); - }, - onUpdate: updatedFile => { - updateFiles( - this.value.files - .map(file => filesEquals(file, updatedFile) ? updatedFile : file), - ); - } - }; - - return Upload - .extend(config) - .configure(options); -} diff --git a/packages/form/src/components/fields/editor/extensions/upload/upload.js b/packages/form/src/components/fields/editor/extensions/upload/upload.js deleted file mode 100644 index 55fdee4a6..000000000 --- a/packages/form/src/components/fields/editor/extensions/upload/upload.js +++ /dev/null @@ -1,142 +0,0 @@ -import { Node } from "@tiptap/core"; -import { VueNodeViewRenderer } from "@tiptap/vue-2"; -import UploadNode from "./UploadNode.vue"; -import { - parseFilterCrop, - serializeFilterCrop, - parseFilterRotate, - serializeFilterRotate, -} from "sharp-files"; -import { getEventsPlugin } from "./events-plugin"; - -export const Upload = Node.create({ - name: 'upload', - - group: 'block', - - atom: true, - - isolating: true, - - priority: 150, - - addOptions: () => ({ - fieldProps: {}, - isReady: () => true, - getFile: () => {}, - registerFile: () => {}, - onInput: () => {}, - onRemove: () => {}, - onUpdate: () => {}, - }), - - addAttributes() { - return { - disk: { - default: null, - }, - path: { - default: null, - }, - name: { - default: null, - }, - size: { - default: null, - renderHTML: () => null - }, - thumbnail: { - default: null, - renderHTML: () => null - }, - filters: { - parseHTML: element => ({ - crop: parseFilterCrop(element.getAttribute('filter-crop')), - rotate: parseFilterRotate(element.getAttribute('filter-rotate')), - }), - renderHTML: () => null, - }, - 'filter-crop': { - default: null, - renderHTML: attributes => ({ - 'filter-crop': serializeFilterCrop(attributes.filters?.crop), - }), - }, - 'filter-rotate': { - default: null, - renderHTML: attributes => ({ - 'filter-rotate': serializeFilterRotate(attributes.filters?.rotate), - }), - }, - /** - * @type File - */ - file: { - default: null, - renderHTML: () => null, - }, - isImage: { - default: false, - parseHTML: element => element.matches('x-sharp-image'), - renderHTML: () => null, - }, - uploaded: { - default: false, - renderHTML: () => null, - }, - notFound: { - default: false, - renderHTML: () => null, - }, - } - }, - - parseHTML() { - return [ - { - tag: 'x-sharp-image', - }, - { - tag: 'x-sharp-file', - }, - ] - }, - - renderHTML({ node, HTMLAttributes }) { - if(node.attrs.isImage) { - return ['x-sharp-image', HTMLAttributes]; - } - return ['x-sharp-file', HTMLAttributes]; - }, - - addProseMirrorPlugins() { - return [ - getEventsPlugin(this.editor), - ] - }, - - addCommands() { - return { - insertUpload: ({ file, pos }) => ({ commands, tr }) => { - return commands - .insertContentAt(pos ?? tr.selection.to, { - type: this.name, - attrs: { - file, - isImage: file.type.match(/^image\//), - }, - }); - }, - newUpload: () => ({ editor }) => { - /** - * @see UploadFileInput - */ - editor.emit('new-upload'); - }, - } - }, - - addNodeView() { - return VueNodeViewRenderer(UploadNode); - }, -}); diff --git a/packages/form/src/components/fields/editor/index.js b/packages/form/src/components/fields/editor/index.js deleted file mode 100644 index 0cfac7441..000000000 --- a/packages/form/src/components/fields/editor/index.js +++ /dev/null @@ -1,31 +0,0 @@ -import { Iframe } from "./extensions/iframe/iframe"; -import { Link } from "@tiptap/extension-link"; - -export const defaultEditorOptions = { - injectCSS: false, - enableInputRules: false, - enablePasteRules: [Iframe, Link], -} - -export const editorProps = { - id: String, - value: { - type: Object, - default: ()=>({}) - }, - markdown: Boolean, - locale: String, - localized: Boolean, - placeholder: String, - toolbar: Array, - minHeight: Number, - maxHeight: Number, - embeds: Object, - inline: Boolean, - uniqueIdentifier: String, - fieldConfigIdentifier: String, - showCharacterCount: Boolean, - maxLength: Number, -} - -export * from './extensions'; diff --git a/packages/form/src/components/fields/editor/modes/html/Wysiwyg.vue b/packages/form/src/components/fields/editor/modes/html/Wysiwyg.vue deleted file mode 100644 index 22802874c..000000000 --- a/packages/form/src/components/fields/editor/modes/html/Wysiwyg.vue +++ /dev/null @@ -1,76 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/editor/modes/html/util.js b/packages/form/src/components/fields/editor/modes/html/util.js deleted file mode 100644 index 79adf9fcd..000000000 --- a/packages/form/src/components/fields/editor/modes/html/util.js +++ /dev/null @@ -1,67 +0,0 @@ -/** - * trim empty paragraphs at the end - */ -export function trimHTML(content, { inline }) { - if(inline) { - return content.replace(/<\/?p>/g, ''); - } - return content.replace(/(

\s*<\/p>)+$/, ''); -} - -/** - * normalize HTML coming from legacy Trix output - */ -export function normalizeHTML(html) { - const dom = document.createElement('div'); - dom.innerHTML = html; - - normalizeAdjacentDivs(dom); - normalizeParagraphs(dom); - - return dom.innerHTML; -} - -function normalizeAdjacentDivs(dom) { - elementDivs(dom) - .forEach(div => { - if(div.previousElementSibling?.matches?.('div')) { - const previousDiv = div.previousElementSibling; - const lastChild = previousDiv.childNodes[previousDiv.childNodes.length - 1]; - if(!lastChild?.matches?.('br')) { - div.innerHTML = `${previousDiv.innerHTML}
${div.innerHTML}`; - previousDiv.remove(); - } - } - }); -} - -function normalizeParagraphs(dom) { - elementDivs(dom) - .forEach(div => { - trimNewLines(div); - if(div.childNodes.length) { - const p = document.createElement('p'); - p.innerHTML = div.innerHTML; - dom.replaceChild(p, div); - } else { - div.remove(); - } - }); -} - -function elementDivs(el) { - return [...el.children] - .filter(el => el.matches('div') && !el.attributes.length) -} - -function trimNewLines(div) { - [...div.childNodes] - .reverse() - .slice(0, 2) - .filter(node => node.matches?.('br')) - .forEach(node => { - if(!node.nextSibling) { - node.remove() - } - }); -} diff --git a/packages/form/src/components/fields/editor/modes/markdown/Markdown.vue b/packages/form/src/components/fields/editor/modes/markdown/Markdown.vue deleted file mode 100644 index b1b707ed2..000000000 --- a/packages/form/src/components/fields/editor/modes/markdown/Markdown.vue +++ /dev/null @@ -1,101 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/editor/toolbar/EmbedDropdown.vue b/packages/form/src/components/fields/editor/toolbar/EmbedDropdown.vue deleted file mode 100644 index 178fe406e..000000000 --- a/packages/form/src/components/fields/editor/toolbar/EmbedDropdown.vue +++ /dev/null @@ -1,46 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/editor/toolbar/LinkDropdown.vue b/packages/form/src/components/fields/editor/toolbar/LinkDropdown.vue deleted file mode 100644 index 9d8d21a7c..000000000 --- a/packages/form/src/components/fields/editor/toolbar/LinkDropdown.vue +++ /dev/null @@ -1,176 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/editor/toolbar/MenuBar.vue b/packages/form/src/components/fields/editor/toolbar/MenuBar.vue deleted file mode 100644 index 8f60db0cd..000000000 --- a/packages/form/src/components/fields/editor/toolbar/MenuBar.vue +++ /dev/null @@ -1,124 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/editor/toolbar/OptionsDropdown.vue b/packages/form/src/components/fields/editor/toolbar/OptionsDropdown.vue deleted file mode 100644 index ec5c41a64..000000000 --- a/packages/form/src/components/fields/editor/toolbar/OptionsDropdown.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/editor/toolbar/TableDropdown.vue b/packages/form/src/components/fields/editor/toolbar/TableDropdown.vue deleted file mode 100644 index bb002dfa0..000000000 --- a/packages/form/src/components/fields/editor/toolbar/TableDropdown.vue +++ /dev/null @@ -1,116 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/editor/toolbar/config.js b/packages/form/src/components/fields/editor/toolbar/config.js deleted file mode 100644 index 59c7ef234..000000000 --- a/packages/form/src/components/fields/editor/toolbar/config.js +++ /dev/null @@ -1,151 +0,0 @@ -import { lang } from "sharp"; -import { getToolbarIcon } from '../util/icons'; - - -export const buttons = { - 'bold': { - command: editor => editor.chain().focus().toggleBold().run(), - isActive: editor => editor.isActive('bold'), - icon: getToolbarIcon('bold'), - label: lang('form.editor.toolbar.bold.title'), - }, - 'italic': { - command: editor => editor.chain().focus().toggleItalic().run(), - isActive: editor => editor.isActive('italic'), - icon: getToolbarIcon('italic'), - label: lang('form.editor.toolbar.italic.title'), - }, - 'highlight': { - command: editor => editor.chain().focus().toggleHighlight().run(), - isActive: editor => editor.isActive('highlight'), - icon: getToolbarIcon('highlight'), - label: lang('form.editor.toolbar.highlight.title'), - }, - 'small': { - command: editor => editor.chain().focus().toggleSmall().run(), - isActive: editor => editor.isActive('small'), - icon: getToolbarIcon('small'), - label: lang('form.editor.toolbar.small.title'), - }, - 'heading-1': { - command: editor => editor.chain().focus().toggleHeading({ level: 1 }).run(), - isActive: editor => editor.isActive('heading', { level: 1 }), - icon: getToolbarIcon('h1'), - label: lang('form.editor.toolbar.heading_1.title'), - }, - 'heading-2': { - command: editor => editor.chain().focus().toggleHeading({ level: 2 }).run(), - isActive: editor => editor.isActive('heading', { level: 2 }), - icon: getToolbarIcon('h2'), - label: lang('form.editor.toolbar.heading_2.title'), - }, - 'heading-3': { - command: editor => editor.chain().focus().toggleHeading({ level: 3 }).run(), - isActive: editor => editor.isActive('heading', { level: 3 }), - icon: getToolbarIcon('h3'), - label: lang('form.editor.toolbar.heading_3.title'), - }, - 'code': { - command: editor => editor.chain().focus().toggleCode().run(), - isActive: editor => editor.isActive('code'), - icon: getToolbarIcon('code'), - label: lang('form.editor.toolbar.code.title'), - }, - 'blockquote': { - command: editor => editor.chain().focus().toggleBlockquote().run(), - isActive: editor => editor.isActive('blockquote'), - icon: getToolbarIcon('quote'), - label: lang('form.editor.toolbar.quote.title'), - }, - 'bullet-list': { - command: editor => editor.chain().focus().toggleBulletList().run(), - isActive: editor => editor.isActive('bulletList'), - icon: getToolbarIcon('ul'), - label: lang('form.editor.toolbar.unordered_list.title'), - }, - 'ordered-list': { - command: editor => editor.chain().focus().toggleOrderedList().run(), - isActive: editor => editor.isActive('orderedList'), - icon: getToolbarIcon('ol'), - label: lang('form.editor.toolbar.ordered_list.title'), - }, - 'link': { - command: (editor, { href, label }) => { - const selection = editor.state.tr.selection; - - if(editor.isActive('link')) { - editor.chain() - .focus() - .extendMarkRange('link') - .setLink({ href }) - .run(); - - } else if(selection.empty) { - editor.chain() - .focus() - .insertContent(`${label || href}`) - .run(); - - } else { - editor.chain().focus().setLink({ href }).run(); - } - }, - isActive: editor => editor.isActive('link'), - icon: getToolbarIcon('link'), - label: lang('form.editor.toolbar.link.title'), - }, - 'upload-image': { - command: editor => editor.chain().focus().newUpload().run(), - isActive: editor => editor.isActive('upload') || editor.isActive('image'), - icon: getToolbarIcon('image'), - label: lang('form.editor.toolbar.upload_image.title'), - }, - 'upload': { - command: editor => editor.chain().focus().newUpload().run(), - isActive: editor => editor.isActive('upload'), - icon: getToolbarIcon('document'), - label: lang('form.editor.toolbar.upload.title'), - }, - 'horizontal-rule': { - command: editor => editor.chain().focus().setHorizontalRule().run(), - isActive: editor => editor.isActive('horizontalRule'), - icon: getToolbarIcon('hr'), - label: lang('form.editor.toolbar.horizontal_rule.title'), - }, - 'iframe': { - command: editor => editor.chain().focus().insertIframe().run(), - isActive: editor => editor.isActive('iframe'), - icon: getToolbarIcon('iframe'), - label: lang('form.editor.toolbar.iframe.title'), - }, - 'table': { - command: editor => editor.chain().focus().insertTable().run(), // handled in TableDropdown - isActive: editor => editor.isActive('table'), - icon: getToolbarIcon('table'), - }, - 'html': { - command: editor => editor.chain().focus().insertHtml().run(), - isActive: editor => editor.isActive('html'), - icon: getToolbarIcon('html'), - }, - 'code-block': { - command: editor => editor.chain().focus().toggleCodeBlock().run(), - isActive: editor => editor.isActive('codeBlock'), - icon: getToolbarIcon('code-block'), - }, - 'superscript': { - command: editor => editor.chain().focus().toggleSuperscript().run(), - isActive: editor => editor.isActive('superscript'), - icon: getToolbarIcon('superscript'), - }, - 'undo': { - command: editor => editor.chain().undo().run(), - icon: getToolbarIcon('undo'), - label: lang('form.editor.toolbar.undo.title'), - }, - 'redo': { - command: editor => editor.chain().redo().run(), - icon: getToolbarIcon('redo'), - label: lang('form.editor.toolbar.redo.title'), - } -} diff --git a/packages/form/src/components/fields/editor/util/icons.js b/packages/form/src/components/fields/editor/util/icons.js deleted file mode 100644 index 2bd193bc2..000000000 --- a/packages/form/src/components/fields/editor/util/icons.js +++ /dev/null @@ -1,33 +0,0 @@ - - -const toolbarIcons = { - 'bold': 'fas fa-bold', - 'italic': 'fas fa-italic', - 'strike': 'fas fa-strikethrough', - 'link': 'fas fa-link', - 'highlight': 'fas fa-highlighter', - 'small': 'fas fa-font', - 'h1': 'fas fa-heading', - 'h2': 'fas fa-heading fa-sm', - 'h3': 'fas fa-heading fa-xs', - 'quote': 'fas fa-quote-right', - 'code': 'fas fa-code', - 'ul': 'fas fa-list-ul', - 'ol': 'fas fa-list-ol', - 'indent': 'fas fa-indent', - 'de-indent': 'fas fa-outdent', - 'undo': 'fas fa-undo', - 'redo': 'fas fa-redo', - 'hr': 'fas fa-minus', - 'image': 'far fa-image', - 'document': 'fas fa-paperclip', - 'iframe': 'far fa-caret-square-right', - 'table': 'fas fa-table', - 'html': 'far fa-file-code', - 'code-block': 'fas fa-file-code', - 'superscript': 'fas fa-superscript', -}; - -export function getToolbarIcon(key) { - return toolbarIcons[key] || null; -} diff --git a/packages/form/src/components/fields/editor/util/index.js b/packages/form/src/components/fields/editor/util/index.js deleted file mode 100644 index 4bd1de4f9..000000000 --- a/packages/form/src/components/fields/editor/util/index.js +++ /dev/null @@ -1,12 +0,0 @@ - - -export function getAllowedHeadingLevels(toolbar) { - return toolbar - .map(button => button.match(/^heading-(\d)$/)) - .filter(match => !!match) - .map(match => Number(match[1])); -} - -export function toolbarHasButton(toolbar, buttonName) { - return !toolbar || toolbar.some(button => button === buttonName); -} diff --git a/packages/form/src/components/fields/geolocation/Geolocation.vue b/packages/form/src/components/fields/geolocation/Geolocation.vue deleted file mode 100644 index 0fa27d238..000000000 --- a/packages/form/src/components/fields/geolocation/Geolocation.vue +++ /dev/null @@ -1,224 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/geolocation/GeolocationEdit.vue b/packages/form/src/components/fields/geolocation/GeolocationEdit.vue deleted file mode 100644 index b8e71c043..000000000 --- a/packages/form/src/components/fields/geolocation/GeolocationEdit.vue +++ /dev/null @@ -1,152 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/geolocation/maps/gmaps/Gmaps.vue b/packages/form/src/components/fields/geolocation/maps/gmaps/Gmaps.vue deleted file mode 100644 index ed82f9c12..000000000 --- a/packages/form/src/components/fields/geolocation/maps/gmaps/Gmaps.vue +++ /dev/null @@ -1,40 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/geolocation/maps/gmaps/GmapsEditable.vue b/packages/form/src/components/fields/geolocation/maps/gmaps/GmapsEditable.vue deleted file mode 100644 index 67203da74..000000000 --- a/packages/form/src/components/fields/geolocation/maps/gmaps/GmapsEditable.vue +++ /dev/null @@ -1,65 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/geolocation/maps/gmaps/geocode.js b/packages/form/src/components/fields/geolocation/maps/gmaps/geocode.js deleted file mode 100644 index 347641a06..000000000 --- a/packages/form/src/components/fields/geolocation/maps/gmaps/geocode.js +++ /dev/null @@ -1,26 +0,0 @@ -import { normalizeBounds } from "./util"; - -let geocoder = null; - -export default function gmapsGeocode({ address, latLng }) { - if(!geocoder) { - geocoder = new google.maps.Geocoder(); - } - return new Promise((resolve, reject) => { - geocoder.geocode({ address, location:latLng }, (results, status) => { - if(status === 'OK') { - resolve( - results.map(result => ({ - location: result.geometry.location.toJSON(), - bounds: normalizeBounds(result.geometry.viewport), - address: result.formatted_address, - })) - ); - } else if(status === 'ZERO_RESULTS') { - resolve([]); - } else { - reject(status); - } - }); - }); -} \ No newline at end of file diff --git a/packages/form/src/components/fields/geolocation/maps/gmaps/load.js b/packages/form/src/components/fields/geolocation/maps/gmaps/load.js deleted file mode 100644 index 23f58c63f..000000000 --- a/packages/form/src/components/fields/geolocation/maps/gmaps/load.js +++ /dev/null @@ -1,15 +0,0 @@ -import Vue from 'vue'; -import once from 'lodash/once'; -import { loadGmapApi } from 'sharp/vendor/vue2-google-maps'; - -export default once(({ apiKey }) => { - const options = { v: 3 }; - - if(apiKey) { - options.key = apiKey; - } - loadGmapApi(options); - - // https://github.com/xkjyeah/vue-google-maps/blob/vue2/src/main.js - return Vue.$gmapApiPromiseLazy(); -}); diff --git a/packages/form/src/components/fields/geolocation/maps/gmaps/util.js b/packages/form/src/components/fields/geolocation/maps/gmaps/util.js deleted file mode 100644 index 1c962b1ab..000000000 --- a/packages/form/src/components/fields/geolocation/maps/gmaps/util.js +++ /dev/null @@ -1,30 +0,0 @@ - - -export const defaultMapOptions = { - mapTypeControl: false, - streetViewControl: false -}; - -export function normalizeBounds(latLngBounds) { - return [ - latLngBounds.getSouthWest().toJSON(), - latLngBounds.getNorthEast().toJSON(), - ]; -} - -export function toLatLngBounds(normalizedBounds) { - const bounds = normalizedBounds; - return Array.isArray(bounds) - ? new google.maps.LatLngBounds(bounds[0], bounds[1]) - : null; -} - -export function createMapOptions({ maxBounds, ...options }) { - const res = { ...options }; - if(Array.isArray(maxBounds)) { - res.restriction = { - latLngBounds: toLatLngBounds(maxBounds), - }; - } - return res; -} \ No newline at end of file diff --git a/packages/form/src/components/fields/geolocation/maps/index.js b/packages/form/src/components/fields/geolocation/maps/index.js deleted file mode 100644 index e07d584e5..000000000 --- a/packages/form/src/components/fields/geolocation/maps/index.js +++ /dev/null @@ -1,41 +0,0 @@ -import Gmaps from './gmaps/Gmaps.vue'; -import GmapsEditable from './gmaps/GmapsEditable.vue'; -import loadGmaps from './gmaps/load'; -import gmapsGeocode from './gmaps/geocode'; - -import Osm from './osm/Osm.vue'; -import OsmEditable from './osm/OsmEditable.vue'; -import osmGeocode from './osm/geocode'; - - -export function getMapByProvider(provider) { - if(provider === 'gmaps') { - return Gmaps; - } else if(provider === 'osm') { - return Osm; - } -} - -export function getEditableMapByProvider(provider) { - if(provider === 'gmaps') { - return GmapsEditable; - } else if(provider === 'osm') { - return OsmEditable; - } -} - -export function loadMapProvider(provider, options) { - if(provider === 'gmaps') { - return Promise.resolve(loadGmaps(options)); - } - return Promise.resolve(); -} - -export function geocode(provider, data, options) { - if(provider === 'gmaps') { - return gmapsGeocode(data); - } else if(provider === 'osm') { - return osmGeocode(data); - } - return Promise.resolve([]); -} \ No newline at end of file diff --git a/packages/form/src/components/fields/geolocation/maps/osm/Osm.vue b/packages/form/src/components/fields/geolocation/maps/osm/Osm.vue deleted file mode 100644 index 9bb86e1f7..000000000 --- a/packages/form/src/components/fields/geolocation/maps/osm/Osm.vue +++ /dev/null @@ -1,50 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/geolocation/maps/osm/OsmEditable.vue b/packages/form/src/components/fields/geolocation/maps/osm/OsmEditable.vue deleted file mode 100644 index d96afdc9d..000000000 --- a/packages/form/src/components/fields/geolocation/maps/osm/OsmEditable.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/geolocation/maps/osm/geocode.js b/packages/form/src/components/fields/geolocation/maps/osm/geocode.js deleted file mode 100644 index ff37381de..000000000 --- a/packages/form/src/components/fields/geolocation/maps/osm/geocode.js +++ /dev/null @@ -1,42 +0,0 @@ -import axios from 'axios'; - -//https://wiki.openstreetmap.org/wiki/Nominatim - -function getResults(address) { - return axios.get('https://nominatim.openstreetmap.org/search', { - params: { - q: address, - format: 'json', - } - }).then(response => response.data); -} - -function getReverseResults(latLng) { - return axios.get('https://nominatim.openstreetmap.org/reverse', { - params: { - lat: latLng.lat, - lon: latLng.lng, - format: 'json', - } - }).then(response => [response.data]); -} - -async function osmGeocode({ address, latLng }) { - const results = !!latLng - ? await getReverseResults(latLng) - : await getResults(address); - - return results.map(result => ({ - location: { - lat: Number(result.lat), - lng: Number(result.lon), - }, - bounds: [ - { lat: Number(result.boundingbox[0]), lng: Number(result.boundingbox[2]) }, - { lat: Number(result.boundingbox[1]), lng: Number(result.boundingbox[3]) }, - ], - address: result.display_name, - })); -} - -export default osmGeocode; \ No newline at end of file diff --git a/packages/form/src/components/fields/geolocation/maps/osm/util.js b/packages/form/src/components/fields/geolocation/maps/osm/util.js deleted file mode 100644 index c7cc49423..000000000 --- a/packages/form/src/components/fields/geolocation/maps/osm/util.js +++ /dev/null @@ -1,17 +0,0 @@ -import { latLngBounds } from 'leaflet'; - -export function normalizeBounds(latLngBounds) { - const sw = latLngBounds.getSouthWest(); - const ne = latLngBounds.getNorthEast(); - return [ - { lat: sw.lat, lng: sw.lng }, - { lat: ne.lat, lng: sw.lng }, - ]; -} - -export function toLatLngBounds(normalizedBounds) { - const bounds = normalizedBounds; - return Array.isArray(bounds) - ? latLngBounds(bounds[0], bounds[1]) - : null; -} \ No newline at end of file diff --git a/packages/form/src/components/fields/geolocation/util.js b/packages/form/src/components/fields/geolocation/util.js deleted file mode 100644 index c9ebc3256..000000000 --- a/packages/form/src/components/fields/geolocation/util.js +++ /dev/null @@ -1,31 +0,0 @@ -export function dd2dms(D, lng){ - let dir = D<0?lng?'W':'S':lng?'E':'N', - deg = 0|(D<0?D=-D:D), - min = 0|D%1*60, - sec = (0|D*60%1*6000)/100; - - return `${deg}°${min}"${sec}' ${dir}`; -} - - -export function providerName(providerData) { - return providerData - ? providerData.name - : null; -} - -export function providerOptions(providerData) { - return providerData - ? providerData.options || {} - : {}; -} - -export function tilesUrl(mapsOptions) { - return mapsOptions - ? mapsOptions.tilesUrl - : null; -} - -export function triggerResize() { - window.dispatchEvent(new Event('resize')); -} diff --git a/packages/form/src/components/fields/index.js b/packages/form/src/components/fields/index.js deleted file mode 100644 index d90b586e0..000000000 --- a/packages/form/src/components/fields/index.js +++ /dev/null @@ -1,48 +0,0 @@ -import Autocomplete from './Autocomplete.vue'; -import Textarea from './Textarea.vue'; -import Text from './Text.vue'; -import NumberInput from './Number.vue'; -import Upload from './upload/Upload.vue'; -import TagInput from './Tags.vue'; -import DateInput from './date/Date.vue'; -import Check from './Check.vue'; -import List from './list/List.vue'; -import Select from './Select.vue'; -import Html from './Html.vue'; -import Geolocation from './geolocation/Geolocation.vue'; -import Editor from './editor/EditorField.vue'; -import DateRange from './date-range/DateRange.vue'; - -export default { - 'autocomplete' : Autocomplete, - 'text' : Text, - 'textarea' : Textarea, - 'editor' : Editor, - 'number' : NumberInput, - 'upload' : Upload, - 'tags' : TagInput, - 'date' : DateInput, - 'check' : Check, - 'list' : List, - 'select' : Select, - 'html' : Html, - 'geolocation' : Geolocation, - 'daterange' : DateRange, -}; - -export { - Autocomplete, - Text, - Textarea, - Editor, - NumberInput, - Upload, - TagInput, - DateInput, - Check, - List, - Select, - Html, - Geolocation, - DateRange, -} diff --git a/packages/form/src/components/fields/list/List.vue b/packages/form/src/components/fields/list/List.vue deleted file mode 100644 index 28d5fc55e..000000000 --- a/packages/form/src/components/fields/list/List.vue +++ /dev/null @@ -1,348 +0,0 @@ - - diff --git a/packages/form/src/components/fields/list/ListItem.vue b/packages/form/src/components/fields/list/ListItem.vue deleted file mode 100644 index 03cc41006..000000000 --- a/packages/form/src/components/fields/list/ListItem.vue +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/packages/form/src/components/fields/list/ListUpload.vue b/packages/form/src/components/fields/list/ListUpload.vue deleted file mode 100644 index 3725520bf..000000000 --- a/packages/form/src/components/fields/list/ListUpload.vue +++ /dev/null @@ -1,96 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/select/Checkboxes.vue b/packages/form/src/components/fields/select/Checkboxes.vue deleted file mode 100644 index 2b6684588..000000000 --- a/packages/form/src/components/fields/select/Checkboxes.vue +++ /dev/null @@ -1,85 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/select/DropdownSelect.vue b/packages/form/src/components/fields/select/DropdownSelect.vue deleted file mode 100644 index 140582c28..000000000 --- a/packages/form/src/components/fields/select/DropdownSelect.vue +++ /dev/null @@ -1,81 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/select/Radios.vue b/packages/form/src/components/fields/select/Radios.vue deleted file mode 100644 index a9716b31d..000000000 --- a/packages/form/src/components/fields/select/Radios.vue +++ /dev/null @@ -1,49 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/upload/EditModal.vue b/packages/form/src/components/fields/upload/EditModal.vue deleted file mode 100644 index 7cbcac689..000000000 --- a/packages/form/src/components/fields/upload/EditModal.vue +++ /dev/null @@ -1,189 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/upload/Upload.vue b/packages/form/src/components/fields/upload/Upload.vue deleted file mode 100644 index 7c05f5ffb..000000000 --- a/packages/form/src/components/fields/upload/Upload.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/upload/VueClip.vue b/packages/form/src/components/fields/upload/VueClip.vue deleted file mode 100644 index a14092b2e..000000000 --- a/packages/form/src/components/fields/upload/VueClip.vue +++ /dev/null @@ -1,467 +0,0 @@ - - - diff --git a/packages/form/src/components/fields/upload/util/filters.js b/packages/form/src/components/fields/upload/util/filters.js deleted file mode 100644 index 85b4ed482..000000000 --- a/packages/form/src/components/fields/upload/util/filters.js +++ /dev/null @@ -1,42 +0,0 @@ -import { serializeFilterNumber } from "sharp-files"; - -export function getCropDataFromFilters({ filters, imageWidth, imageHeight }) { - const rotate = filters?.rotate?.angle ?? 0; - let rw = imageWidth, rh = imageHeight; - - if(Math.abs(rotate) % 180) { - rw = imageHeight; - rh = imageWidth; - } - - const { width, height, x, y } = filters?.crop ?? {}; - - return { - width: (width ?? 1) * rw, - height: (height ?? 1) * rh, - x: (x ?? 0) * rw, - y: (y ?? 0) * rh, - rotate: rotate * -1, - } -} - -export function getFiltersFromCropData({ cropData, imageWidth, imageHeight }) { - let rw = imageWidth, rh = imageHeight; - - if(Math.abs(cropData.rotate) % 180) { - rw = imageHeight; - rh = imageWidth; - } - - return { - crop: { - width: serializeFilterNumber(cropData.width / rw, 4), - height: serializeFilterNumber(cropData.height / rh, 4), - x: serializeFilterNumber(cropData.x / rw, 4), - y: serializeFilterNumber(cropData.y / rh, 4), - }, - rotate: { - angle: serializeFilterNumber(cropData.rotate * -1, 4), - }, - } -} diff --git a/packages/form/src/components/fields/upload/util/image.js b/packages/form/src/components/fields/upload/util/image.js deleted file mode 100644 index 4aba7a86b..000000000 --- a/packages/form/src/components/fields/upload/util/image.js +++ /dev/null @@ -1,16 +0,0 @@ - -export function getImageBlobUrl(file) { - if(!file.type.match(/^image\//)) { - return Promise.resolve(null); - } - const img = new Image(); - img.src = URL.createObjectURL(file); - - return new Promise((resolve, reject) => { - img.onload = () => resolve(img.src); - img.onerror = (e) => { - URL.revokeObjectURL(img.src); - reject(`Image format not handled by browser for "${file.name}"`); - }; - }); -} diff --git a/packages/form/src/components/index.js b/packages/form/src/components/index.js deleted file mode 100644 index 64639fea4..000000000 --- a/packages/form/src/components/index.js +++ /dev/null @@ -1,5 +0,0 @@ - -export * from './fields'; -export { default as Form } from './Form.vue'; -export { default as LocaleSelect } from './ui/LocaleSelect.vue'; -export { default as FieldLocaleSelect } from './ui/FieldLocaleSelect.vue'; diff --git a/packages/form/src/components/pages/FormPage.vue b/packages/form/src/components/pages/FormPage.vue deleted file mode 100644 index 7760d2f56..000000000 --- a/packages/form/src/components/pages/FormPage.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - diff --git a/packages/form/src/components/ui/FieldContainer.vue b/packages/form/src/components/ui/FieldContainer.vue deleted file mode 100644 index 31539a784..000000000 --- a/packages/form/src/components/ui/FieldContainer.vue +++ /dev/null @@ -1,215 +0,0 @@ - - - diff --git a/packages/form/src/components/ui/FieldLocaleSelect.vue b/packages/form/src/components/ui/FieldLocaleSelect.vue deleted file mode 100644 index 367e40abd..000000000 --- a/packages/form/src/components/ui/FieldLocaleSelect.vue +++ /dev/null @@ -1,54 +0,0 @@ - - - diff --git a/packages/form/src/components/ui/FieldsLayout.vue b/packages/form/src/components/ui/FieldsLayout.vue deleted file mode 100644 index 9400ea5f0..000000000 --- a/packages/form/src/components/ui/FieldsLayout.vue +++ /dev/null @@ -1,74 +0,0 @@ - - - diff --git a/packages/form/src/components/ui/LocaleSelect.vue b/packages/form/src/components/ui/LocaleSelect.vue deleted file mode 100644 index 65d58d81e..000000000 --- a/packages/form/src/components/ui/LocaleSelect.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - diff --git a/packages/form/src/index.js b/packages/form/src/index.js deleted file mode 100644 index c4b22b632..000000000 --- a/packages/form/src/index.js +++ /dev/null @@ -1,10 +0,0 @@ -import FieldDisplay from './components/FieldDisplay'; -import routes from './routes'; - - -export default function (Vue, { router, store }) { - Vue.component('FieldDisplay', FieldDisplay); - router.addRoutes(routes); -} - -export * from './components'; diff --git a/packages/form/src/mixins/localize/Autocomplete.js b/packages/form/src/mixins/localize/Autocomplete.js deleted file mode 100644 index 664868162..000000000 --- a/packages/form/src/mixins/localize/Autocomplete.js +++ /dev/null @@ -1,34 +0,0 @@ -import localizeField from './field'; -import { isLocaleObject } from "../../util/locale"; - -export default { - mixins: [localizeField], - computed: { - localizedSearchKeys() { - return this.localized - ? this.searchKeys.map(key => { - let res = key; - if(this.localizedDataKeys.includes(key)) - res+=`.${this.locale}`; - return res; - }) - : this.searchKeys; - }, - localizedDataKeys() { - return (Array.isArray(this.localValues) && this.localValues.length - ? Object.keys(this.localValues[0]).filter(key => this.isLocaleObject(this.localValues[0][key])) - : []); - } - }, - methods: { - isLocaleObject(obj) { - return this.locales && isLocaleObject(obj, this.locales); - }, - localizedTemplateData(templateData) { - return this.localized ? Object.entries(templateData).reduce((res, [key, value]) => { - res[key] = this.isLocaleObject(value) ? value[this.locale] : value; - return res; - }, {}) : templateData; - } - } -} \ No newline at end of file diff --git a/packages/form/src/mixins/localize/Select.js b/packages/form/src/mixins/localize/Select.js deleted file mode 100644 index 61e5666cf..000000000 --- a/packages/form/src/mixins/localize/Select.js +++ /dev/null @@ -1,14 +0,0 @@ -import localizeField from './field'; - -export default { - mixins: [localizeField], - - methods: { - localizeLabel(label) { - return this.isLocalized ? label[this.locale] : label; - }, - localizedOptionLabel(option) { - return this.localizeLabel(option.label); - } - } -} \ No newline at end of file diff --git a/packages/form/src/mixins/localize/Tags.js b/packages/form/src/mixins/localize/Tags.js deleted file mode 100644 index d4eae391e..000000000 --- a/packages/form/src/mixins/localize/Tags.js +++ /dev/null @@ -1,22 +0,0 @@ -import { lang } from "sharp"; - -import localizeSelect from './Select'; -import { localeObject } from "../../util/locale"; - -export default { - extends: localizeSelect, - methods: { - localizeLabel(label) { // display - return this.isLocalized ? label[this.locale] || lang('form.tags.unknown_label') : label; - }, - localizedTagLabel(text) { // data - return this.isLocalized ? localeObject({ - locales:this.locales, - resolve:l => l===this.locale ? text : null - }) : text; - }, - localizedCustomLabel(option) { - return this.localizeLabel(option.label) - } - } -} diff --git a/packages/form/src/mixins/localize/editor.js b/packages/form/src/mixins/localize/editor.js deleted file mode 100644 index a454c7946..000000000 --- a/packages/form/src/mixins/localize/editor.js +++ /dev/null @@ -1,34 +0,0 @@ -import localizeField from "./field"; -import { localeObjectOrEmpty } from "../../util/locale"; - -/** - * Can be used in Editor components - */ -export const LocalizedEditor = { - mixins: [localizeField], - - computed: { - localizedText() { - if(this.isLocalized) { - return this.value?.text?.[this.locale] ?? null; - } - - return this.value?.text ?? null; - } - }, - - methods: { - localizedValue(text, locale) { - return { - ...this.value, - text: this.isLocalized - ? localeObjectOrEmpty({ - localeObject: this.value?.text, - locale, - value: text - }) - : text - }; - } - } -} diff --git a/packages/form/src/mixins/localize/field.js b/packages/form/src/mixins/localize/field.js deleted file mode 100644 index 88ec1a173..000000000 --- a/packages/form/src/mixins/localize/field.js +++ /dev/null @@ -1,20 +0,0 @@ - -export default { - inject: { - $form: { - default:() => ({}) - }, - }, - props: { - locale: String, - localized: Boolean - }, - computed:{ - locales() { - return this.$form.locales; - }, - isLocalized() { - return this.$form.localized && this.localized; - } - } -} diff --git a/packages/form/src/mixins/localize/form.js b/packages/form/src/mixins/localize/form.js deleted file mode 100644 index 6f96a5012..000000000 --- a/packages/form/src/mixins/localize/form.js +++ /dev/null @@ -1,33 +0,0 @@ -import { isLocalizableValueField, localeObjectOrEmpty } from "../../util/locale"; - -export default function (fieldsProp) { - return { - _localizedForm: fieldsProp, - methods: { - fieldLocalizedValue(key, value, data=this.data, fieldLocale=this.fieldLocale) { - let field = this[fieldsProp][key]; - if(this.localized && field.localized && isLocalizableValueField(field)) { - return localeObjectOrEmpty({ - localeObject: data[key], - locale: fieldLocale[key], - value - }); - } - return value; - }, - defaultFieldLocaleMap({ fields, locales }, locale) { - return Object.values(fields) - .filter(field => { - if(field.type === 'list') { - return Object.values(field.itemFields ?? {}).some(field => field.localized); - } - return field.localized; - }) - .reduce((res, field) => ({ - ...res, - [field.key]: locale || locales && locales[0], - }),{}) - } - }, - } -} diff --git a/packages/form/src/routes.js b/packages/form/src/routes.js deleted file mode 100644 index 4c5b44f0a..000000000 --- a/packages/form/src/routes.js +++ /dev/null @@ -1,10 +0,0 @@ -import FormPage from './components/pages/FormPage.vue'; - -export default [ - /** New spec */ - { - name: 'form', - path: '/(.*)?/s-form/:entityKey/:instanceId?', - component: FormPage, - } -] diff --git a/packages/form/src/store/form.js b/packages/form/src/store/form.js deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/form/src/util/accessibility.js b/packages/form/src/util/accessibility.js deleted file mode 100644 index 227e1be97..000000000 --- a/packages/form/src/util/accessibility.js +++ /dev/null @@ -1,14 +0,0 @@ - - -export function onLabelClicked(vm, id, handler) { - if(!id) { - return - } - const label = document.querySelector(`label[for="${id}"]`); - if(label) { - label.addEventListener('click', handler); - vm.$on('hook:beforeDestroy', () => { - label.removeEventListener('click', handler); - }); - } -} diff --git a/packages/form/src/util/autocomplete.js b/packages/form/src/util/autocomplete.js deleted file mode 100644 index f4f7777b4..000000000 --- a/packages/form/src/util/autocomplete.js +++ /dev/null @@ -1,19 +0,0 @@ -import {logError} from "sharp"; - -export function validateAutocompleteResponse({ results, dataWrapper, fieldKey, url }) { - if(results) { - if (dataWrapper && !results.hasOwnProperty(dataWrapper)) { - logError(`Autocomplete (${fieldKey}): dataWrapper "${dataWrapper}" seems to be invalid :`); - logError(`- search url "${url}"`); - logError(`- results`, results); - return false; - } - if(!dataWrapper && !Array.isArray(results)) { - logError(`Autocomplete (${fieldKey}): search results response is not an array, please use setDataWrapper() if results are wrapped inside an object (https://sharp.code16.fr/docs/guide/form-fields/autocomplete.html#setdatawrapper)`); - logError(`- search url "${url}"`); - logError(`- response`, results); - return false; - } - } - return true; -} \ No newline at end of file diff --git a/packages/form/src/util/dynamic-attributes/index.js b/packages/form/src/util/dynamic-attributes/index.js deleted file mode 100644 index f318a287e..000000000 --- a/packages/form/src/util/dynamic-attributes/index.js +++ /dev/null @@ -1,43 +0,0 @@ -import { resolveValue } from "./resolve"; -import { getContextSources } from "./resolve"; - - -export function hasDependency(sourceKey, dynamicAttributes, attributes) { - return (dynamicAttributes || []).some(options => { - const attributeValue = attributes[options.name]; - const contextSources = getContextSources({ - dynamicOptions: options, - attributeValue, - }); - return contextSources.includes(sourceKey); - }); -} - -export function transformAttributes(attributes, dynamicAttributes, contextData) { - const transformedData = Object.entries(attributes || {}) - .reduce((res, [attributeName, attributeValue]) => { - const resolvedData = resolveValue(attributeName, attributeValue, { - dynamicAttributes, - contextData, - }); - const emptyAttrs = res.resolvedEmptyAttributes || []; - - if(resolvedData.isEmpty) { - emptyAttrs.push(attributeName); - } - - return { - ...res, - resolvedEmptyAttributes: emptyAttrs, - attributes: { - ...res.attributes, - [attributeName]: resolvedData.value, - }, - }; - }, {}); - - return { - attributes: transformedData.attributes, - resolvedEmptyAttributes: transformedData.resolvedEmptyAttributes, - }; -} \ No newline at end of file diff --git a/packages/form/src/util/dynamic-attributes/util.js b/packages/form/src/util/dynamic-attributes/util.js deleted file mode 100644 index d4b0c5632..000000000 --- a/packages/form/src/util/dynamic-attributes/util.js +++ /dev/null @@ -1,48 +0,0 @@ -import get from 'lodash/get'; -import buildTemplate from 'lodash/template'; -import { logError } from "sharp"; - -const interpolateRE = /{{([\s\S]+?)}}/g; - -export function getEmptyValueSources({ contextSources, contextData }) { - return contextSources.filter(sourceKey => { - const value = contextData[sourceKey]; - return value == null || value === ''; - }); -} - -export function warnEmptyValue(emptySources, { sourceName, attributeName }) { - emptySources.forEach(sourceKey => { - logError(`Dynamic attribute '${attributeName}' of the field '${sourceName}' has invalid source: - The field '${sourceKey}' has value null, undefined or empty string.\n - Ensure the field not clearable and has initial default value.\n - You can also define a default value for the attribute.`); - }); -} - -export function getDynamicAttributeOptions(dynamicAttributes, attributeName) { - return (dynamicAttributes || []) - .find(option => option.name === attributeName); -} - -export function getValueFromMap({ map, path, contextData }) { - const valuePath = path.map(key => contextData[key]); - return get(map, valuePath); -} - -export function getSourcesFromTemplate(template) { - return [...template.matchAll(interpolateRE)].map(match => match[1].trim()); -} - -export function getValueFromTemplate({ template, sources, contextData }) { - const compile = buildTemplate(template, { - interpolate: interpolateRE, - evaluate: false, - escape: false, - }); - const defaultData = (sources||[]).reduce((res, key) => ({ ...res, [key]: null, }), {}); - return compile({ - ...defaultData, - ...contextData, - }); -} \ No newline at end of file diff --git a/packages/form/src/util/index.js b/packages/form/src/util/index.js deleted file mode 100644 index ba51d3c77..000000000 --- a/packages/form/src/util/index.js +++ /dev/null @@ -1,4 +0,0 @@ - -export * from './data'; -export * from './transform-fields'; -export * from './locale'; \ No newline at end of file diff --git a/packages/form/src/util/locale.js b/packages/form/src/util/locale.js deleted file mode 100644 index 1db6d435b..000000000 --- a/packages/form/src/util/locale.js +++ /dev/null @@ -1,41 +0,0 @@ -export const LocalizableOptionsFields = [ - 'select', 'autocomplete', 'tags' -]; -export const LocalizableValueFields = [ - 'text', 'textarea', // localized value handled in Form/FieldDisplay components - //'editor' (editor field handle localized value themselves) -]; - -export function isLocaleObject(obj, locales) { - if(!obj || typeof obj !== 'object') return false; - return locales.every(locale => locale in obj); -} - -function isEmpty(value){ - return value === null || value === ''; -} -export function isLocaleObjectEmpty(obj) { - return Object.entries(obj).every(([locale, value])=>isEmpty(value)); -} - -export function isLocalizableValueField(field) { - return LocalizableValueFields.includes(field.type); -} - -export function localeObject({ locales, resolve=()=>null }) { - return locales.reduce((res, locale)=>({ - ...res, [locale]: resolve(locale) - }), {}); -} - -export function localeObjectOrEmpty({ localeObject, locale, value }) { - let localizedValue = { ...localeObject, [locale]: value }; - return !isLocaleObjectEmpty(localizedValue) ? localizedValue: null; -} - -export function resolveTextValue({ field, value }) { - if(field.type === 'editor') { - return (value || {}).text; - } - return value; -} diff --git a/packages/form/src/util/select.js b/packages/form/src/util/select.js deleted file mode 100644 index cad59d88a..000000000 --- a/packages/form/src/util/select.js +++ /dev/null @@ -1,9 +0,0 @@ - - -export function isSelected(option, value) { - if(option.id == null || value == null) { - return false; - } - // noinspection EqualityComparisonWithCoercionJS - return option.id == value; -} diff --git a/packages/form/src/util/trix.js b/packages/form/src/util/trix.js deleted file mode 100644 index 7ed6fe12e..000000000 --- a/packages/form/src/util/trix.js +++ /dev/null @@ -1,3 +0,0 @@ - -// defined in sharp -export default window.Trix; \ No newline at end of file diff --git a/packages/form/src/util/upload.js b/packages/form/src/util/upload.js deleted file mode 100644 index f90fcf559..000000000 --- a/packages/form/src/util/upload.js +++ /dev/null @@ -1,37 +0,0 @@ -import { getXsrfToken, lang, filesizeLabel, UPLOAD_URL } from "sharp"; - - -// size in Mo -export function maxFileSizeMessage(size) { - const bytes = size * 1024 * 1024; - return lang('form.upload.message.file_too_big') - .replace(':size', filesizeLabel(bytes)); -} - - -export function getUploadOptions({ fileFilter, maxFileSize }) { - return { - url: UPLOAD_URL, - uploadMultiple: false, - headers: { - 'X-XSRF-TOKEN': getXsrfToken(), - }, - - ...fileFilter ? { - acceptedFiles: { - extensions: fileFilter, - message: lang('form.upload.message.bad_extension') - } - } : null, - - ...maxFileSize ? { - maxFilesize: { - limit: maxFileSize, - message: maxFileSizeMessage(maxFileSize), - }, - } : null, - - createImageThumbnails: false, - } -} - diff --git a/packages/form/src/util/url.js b/packages/form/src/util/url.js deleted file mode 100644 index 49e1adc1e..000000000 --- a/packages/form/src/util/url.js +++ /dev/null @@ -1,7 +0,0 @@ -import { routeUrl } from 'sharp/router'; - -export function formUrl({ entityKey, instanceId }, options) { - return routeUrl({ - name: 'form', params: { entityKey, instanceId }, - }, options); -} diff --git a/packages/form/src/util/validation.js b/packages/form/src/util/validation.js deleted file mode 100644 index 812681d32..000000000 --- a/packages/form/src/util/validation.js +++ /dev/null @@ -1,9 +0,0 @@ -import { lang } from "sharp"; - - -export function validateTextField(value, { maxlength }) { - if(maxlength && value?.length > maxlength) { - return lang('form.text.validation.maxlength').replace(':maxlength',maxlength); - } - return null; -} diff --git a/packages/plugin/package.json b/packages/plugin/package.json index 0f03497a7..0a6ba4257 100644 --- a/packages/plugin/package.json +++ b/packages/plugin/package.json @@ -20,8 +20,6 @@ }, "homepage": "https://github.com/dvlpp/sharp#readme", "devDependencies": { - "core-js": "^2.5.6", "laravel-mix": "^4.1.2" - }, - "dependencies": {} + } } diff --git a/packages/plugin/src/index.js b/packages/plugin/src/index.js index 4212fb394..5e604afea 100644 --- a/packages/plugin/src/index.js +++ b/packages/plugin/src/index.js @@ -1,9 +1,14 @@ -import 'core-js/modules/es7.object.entries'; -export default { - install(Vue, { customFields }) { - Object.entries(customFields).forEach(([name, field])=>{ - Vue.component(`SharpCustomField_${name}`, field); - }); +// export default { +// install(Vue, { customFields }) { +// Object.entries(customFields).forEach(([name, field])=>{ +// Vue.component(`SharpCustomField_${name}`, field); +// }); +// } +// }; + +export function defineSharpPlugin({ customFields }) { + window.sharpPlugin = { + customFields, } -}; \ No newline at end of file +} diff --git a/packages/search/package.json b/packages/search/package.json deleted file mode 100644 index 1777e8651..000000000 --- a/packages/search/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "sharp-search", - "private": true, - "version": "1.0.0", - "main": "src/index.js" -} diff --git a/packages/search/src/api.js b/packages/search/src/api.js deleted file mode 100644 index 0d5231713..000000000 --- a/packages/search/src/api.js +++ /dev/null @@ -1,7 +0,0 @@ -import {api} from "sharp"; - - -export function getSearchResults({ query }) { - return api.get('/search', { params: { q: query } }) - .then(response => response.data); -} diff --git a/packages/search/src/components/GlobalSearch.vue b/packages/search/src/components/GlobalSearch.vue deleted file mode 100644 index 13932530d..000000000 --- a/packages/search/src/components/GlobalSearch.vue +++ /dev/null @@ -1,160 +0,0 @@ - - - - - diff --git a/packages/search/src/index.js b/packages/search/src/index.js deleted file mode 100644 index 16aac206a..000000000 --- a/packages/search/src/index.js +++ /dev/null @@ -1,10 +0,0 @@ -import GlobalSearch from './components/GlobalSearch.vue'; - - -export default function (Vue) { - Vue.component('sharp-global-search', GlobalSearch); -} - -export { - GlobalSearch, -} diff --git a/packages/show/__tests__/EntityList.test.js b/packages/show/__tests__/EntityList.test.js deleted file mode 100644 index c887f4a5a..000000000 --- a/packages/show/__tests__/EntityList.test.js +++ /dev/null @@ -1,163 +0,0 @@ -import Vuex from "vuex"; -import merge from 'lodash/merge'; -import { createLocalVue, shallowMount } from '@vue/test-utils'; -import EntityList from '../src/components/fields/entity-list/EntityList.vue'; -import showModule from "../src/store/show"; -import { createStub } from "@sharp/test-utils"; - -jest.mock('sharp'); - - -describe('show entity list field', () => { - - function createWrapper({ storeModule, ...options } = {}) { - const localVue = createLocalVue(); - localVue.use(Vuex); - - return shallowMount(EntityList, { - ...options, - propsData: { - fieldKey: 'fieldKey', - label: 'label', - ...options.propsData, - }, - created() { - jest.spyOn(this.$store, 'dispatch').mockImplementation(() => Promise.resolve()); - }, - // language=Vue - stubs: { - EntityList: createStub({ - template: ` - - - `, - }), - }, - store: new Vuex.Store({ - modules: { - 'show': merge({}, showModule, storeModule), - } - }), - localVue, - }); - } - - test('mount', () => { - expect(createWrapper().html()).toMatchSnapshot(); - }); - - test('mount collapsed', () => { - const wrapper = createWrapper({ - propsData: { - collapsable: true, - }, - }) - expect(wrapper.html()).toMatchSnapshot(); - }); - - test('isVisible', () => { - let wrapper = null; - - /** default */ - wrapper = createWrapper(); - expect(wrapper.vm.isVisible).toBeUndefined(); - - /** has empty visible enabled */ - wrapper = createWrapper({ - propsData: { - emptyVisible: true, - } - }); - expect(wrapper.vm.isVisible).toBe(true); - - /** has empty list */ - wrapper = createWrapper({ - data:() => ({ - list: { data: { list: { items:[] } } } - }) - }); - expect(wrapper.vm.isVisible).toBe(false); - - /** has empty visible enabled with list */ - wrapper = createWrapper({ - propsData: { - emptyVisible: true, - }, - data:() => ({ - list: { data: { list: { items:[] } } } - }) - }); - expect(wrapper.vm.isVisible).toBe(true); - - /** has items */ - wrapper = createWrapper({ - data:() => ({ - list: { data: { list: { items:[{ id:1 }] } } } - }) - }); - expect(wrapper.vm.isVisible).toBe(true); - - /** has create button */ - wrapper = createWrapper({ - propsData: { - showCreateButton: true, - }, - data:() => ({ - list: { data: { list: { items:[] } }, authorizations: { create:true } } - }) - }); - expect(wrapper.vm.isVisible).toBe(true); - - /** has filter active */ - wrapper = createWrapper({ - data:() => ({ - list: { data: { list: { items:[] } } } - }), - computed: { - filters: () => [ - { key:'name' } - ], - filtersValues: () => ({ - name: 'aaa', - }), - } - }); - expect(wrapper.vm.isVisible).toBe(true); - - /** has search active */ - wrapper = createWrapper({ - data:() => ({ - list: { data: { list: { items:[] } } } - }), - computed: { - query: () => ({ - search: 'aaa', - }), - } - }); - expect(wrapper.vm.isVisible).toBe(true); - }) - - test('visibleFilters', () => { - const wrapper = createWrapper({ - computed: { - filters: () => [{ id:1, key:'type' }] - } - }); - expect(wrapper.vm.visibleFilters).toEqual([{ id:1, key:'type' }]); - - wrapper.setProps({ - hiddenFilters: { - type: 3, - } - }); - expect(wrapper.vm.visibleFilters).toEqual([]); - - wrapper.setProps({ - hiddenFilters: { - type: null, - } - }); - expect(wrapper.vm.visibleFilters).toEqual([]); - }); -}); diff --git a/packages/show/__tests__/Section.test.js b/packages/show/__tests__/Section.test.js deleted file mode 100644 index c60235e0f..000000000 --- a/packages/show/__tests__/Section.test.js +++ /dev/null @@ -1,49 +0,0 @@ -import { shallowMount } from '@vue/test-utils'; -import Section from "../src/components/Section.vue"; - -describe('show section', () => { - function createWrapper(options) { - return shallowMount(Section, { - // language=Vue - stubs: { - Grid: - `

- -
`, - }, - ...options, - }) - } - - test('can mount', () => { - const wrapper = createWrapper({ - propsData: { - section: { - title: 'Section title', - columns: [{ - fields: [[{ key:'name' }]] - }] - }, - fieldsRowClass: () => 'row-class' - } - }); - expect(wrapper.html()).toMatchSnapshot(); - }); - - test('can mount: collapsable + contents layout', () => { - const wrapper = createWrapper({ - propsData: { - section: { - title: 'Section title', - collapsable: true, - columns: [{ - fields: [[{ key:'name' }]] - }] - }, - collapsable: true, - layout: 'contents', - } - }); - expect(wrapper.html()).toMatchSnapshot(); - }); -}); diff --git a/packages/show/__tests__/ShowPage.test.js b/packages/show/__tests__/ShowPage.test.js deleted file mode 100644 index 497712d3d..000000000 --- a/packages/show/__tests__/ShowPage.test.js +++ /dev/null @@ -1,266 +0,0 @@ -import merge from 'lodash/merge'; -import Vuex from 'vuex'; -import { shallowMount, createLocalVue } from '@vue/test-utils'; -import ShowPage from "../src/components/pages/ShowPage.vue"; -import showModule from "../src/store/show"; -import { formUrl } from "sharp"; -import { MockInjections } from "@sharp/test-utils"; - -jest.mock('../src/store/show'); -jest.mock('sharp/consts', () => ({ - BASE_URL: 'BASE_URL' -})); -jest.mock('sharp'); - - -describe('show page', () => { - - function createWrapper({ storeModule, ...options } = {}) { - const localVue = createLocalVue(); - localVue.use(Vuex); - - const wrapper = shallowMount(ShowPage, { - provide: MockInjections.provide, - extends: { - computed: { - breadcrumb: () => [], - config: () => ({}), - }, - }, - created() { - jest.spyOn(this, 'init').mockImplementation(); - jest.spyOn(this.$store, 'dispatch').mockImplementation(()=>Promise.resolve()); - }, - store: new Vuex.Store({ - modules: { - 'show': merge({}, showModule, storeModule), - } - }), - mocks: { - $route: { params: { } }, - }, - localVue, - ...options, - }); - return wrapper; - } - - test('can mount', () => { - expect(createWrapper().html()).toMatchSnapshot(); - }); - - test('can mount with fields', () => { - const wrapper = createWrapper({ - computed: { - layout: () => ({ - sections: [ - { - title: 'Section title', - columns: [{ - fields: [[{ key:'name' }]] - }] - } - ] - }), - formUrl: () => 'formUrl', - }, - }); - - wrapper.setMethods({ - fieldOptions: () => ({}), - fieldValue: () => ({}), - }); - wrapper.setData({ ready: true }); - expect(wrapper.html()).toMatchSnapshot(); - }); - - test('can mount hidden section', () => { - const wrapper = createWrapper({ - computed: { - layout: () => ({ - sections: [ - { - title: 'Section title', - columns: [{ - fields: [[{ key:'name' }]] - }] - } - ] - }), - formUrl: () => 'formUrl', - }, - }); - wrapper.setMethods({ - fieldOptions: () => ({}), - fieldValue: () => ({}), - }); - wrapper.setData({ - ready: true, - fieldsVisible: { - name: false, - } - }); - expect(wrapper.html()).toMatchSnapshot(); - }); - - test('can mount with unknown field', () => { - const wrapper = createWrapper({ - computed: { - layout: () => ({ - sections: [ - { - title: 'Section title', - columns: [{ - fields: [[{ key:'name' }]] - }] - } - ] - }), - formUrl: () => 'formUrl', - }, - }); - - wrapper.setMethods({ - fieldOptions: () => null, - }); - wrapper.setData({ ready: true }); - expect(wrapper.html()).toMatchSnapshot(); - }); - - test('can mount with no container section', () => { - const wrapper = createWrapper({ - computed: { - layout: () => ({ - sections: [ - { - title: 'Section title', - columns: [{ - fields:[[{ key:'name' }]] - }] - } - ] - }), - formUrl: () => 'formUrl', - }, - }); - wrapper.setMethods({ - fieldOptions: () => ({ type:'entityList' }), - }); - wrapper.setData({ ready: true }); - expect(wrapper.html()).toMatchSnapshot(); - }); - - test('formUrl', () => { - formUrl.mockReturnValue('formUrl'); - const wrapper = createWrapper({ - storeModule: { - getters: { - entityKey: () => 'entityKey', - instanceId: () => 'instanceId', - } - } - }); - expect(wrapper.vm.formUrl).toEqual('formUrl'); - expect(formUrl).toHaveBeenCalledWith({ - entityKey: 'entityKey', - instanceId: 'instanceId', - }, { append:true }); - }); - - test('formUrl with multiform', () => { - formUrl.mockReturnValue('formUrl'); - const wrapper = createWrapper({ - storeModule: { - getters: { - entityKey: () => 'entityKey', - instanceId: () => 'instanceId', - } - }, - computed: { - config: () => ({ - multiformAttribute: 'role', - }), - data: () => ({ - role: 'admin' - }), - } - }); - expect(wrapper.vm.formUrl).toEqual('formUrl'); - expect(formUrl).toHaveBeenCalledWith({ - entityKey: 'entityKey:admin', - instanceId: 'instanceId', - }, { append:true }); - }); - - test('fieldOptions', () => { - let wrapper; - const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(); - - wrapper = createWrapper({ - computed: { - fields: () => ({ - name: 'options' - }) - }, - }); - expect(wrapper.vm.fieldOptions({ key:'name' })).toBe('options'); - - wrapper = createWrapper({ - computed: { - fields: () => ({}), - } - }); - consoleErrorSpy.mockClear(); - expect(wrapper.vm.fieldOptions('name')).toBeUndefined(); - expect(console.error).toHaveBeenCalled(); - - wrapper = createWrapper({ - computed: { - fields: () => null, - } - }); - consoleErrorSpy.mockClear(); - expect(wrapper.vm.fieldOptions('name')).toBeUndefined(); - expect(console.error).toHaveBeenCalled(); - }); - - test('fieldValue', () => { - let wrapper; - - wrapper = createWrapper({ - computed: { - data: () => ({ - name: 'value' - }) - }, - }); - expect(wrapper.vm.fieldValue({ key:'name' })).toBe('value'); - - wrapper = createWrapper({ - computed: { - data: () => ({}) - } - }); - expect(wrapper.vm.fieldValue({ key:'name' })).toBeUndefined(); - expect(console.error).toHaveBeenCalled(); - - wrapper = createWrapper({ - computed: { - fields: () => null, - } - }); - expect(wrapper.vm.fieldValue({ key:'name' })).toBeUndefined(); - expect(console.error).toHaveBeenCalled(); - }); - - test('change state + command action integration', async () => { - const wrapper = createWrapper(); - - wrapper.vm.init.mockClear(); - wrapper.vm.$store.dispatch.mockReturnValueOnce(Promise.resolve({ - action: 'refresh', - })); - await wrapper.vm.handleStateChanged({}); - expect(wrapper.vm.init).toHaveBeenCalled(); - }); -}); diff --git a/packages/show/__tests__/__snapshots__/EntityList.test.js.snap b/packages/show/__tests__/__snapshots__/EntityList.test.js.snap deleted file mode 100644 index cdb90c472..000000000 --- a/packages/show/__tests__/__snapshots__/EntityList.test.js.snap +++ /dev/null @@ -1,44 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`show entity list field mount 1`] = ` - - - -
- -

- label -

-
-
-
-
-
-`; - -exports[`show entity list field mount collapsed 1`] = ` - - - -
-
-
-
- - label - -
-
-
- -

- label -

-
-
-
-
-
-
-
-`; diff --git a/packages/show/__tests__/__snapshots__/Section.test.js.snap b/packages/show/__tests__/__snapshots__/Section.test.js.snap deleted file mode 100644 index fe63eb019..000000000 --- a/packages/show/__tests__/__snapshots__/Section.test.js.snap +++ /dev/null @@ -1,29 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`show section can mount 1`] = ` -
-
-
- -
- -
-
-
-
-
-
-
-`; - -exports[`show section can mount: collapsable + contents layout 1`] = ` -
-
-
- -
- -
- -
-`; diff --git a/packages/show/__tests__/__snapshots__/ShowPage.test.js.snap b/packages/show/__tests__/__snapshots__/ShowPage.test.js.snap deleted file mode 100644 index a283155ab..000000000 --- a/packages/show/__tests__/__snapshots__/ShowPage.test.js.snap +++ /dev/null @@ -1,71 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`show page can mount 1`] = ` -
-
- -
- - -
-`; - -exports[`show page can mount hidden section 1`] = ` -
-
- - -
- - -
-
- - -
-`; - -exports[`show page can mount with fields 1`] = ` -
-
- - -
- - -
-
- - -
-`; - -exports[`show page can mount with no container section 1`] = ` -
-
- - -
- - -
-
- - -
-`; - -exports[`show page can mount with unknown field 1`] = ` -
-
- - -
- - -
-
- - -
-`; diff --git a/packages/show/__tests__/store/__snapshots__/show.test.js.snap b/packages/show/__tests__/store/__snapshots__/show.test.js.snap deleted file mode 100644 index c95812223..000000000 --- a/packages/show/__tests__/store/__snapshots__/show.test.js.snap +++ /dev/null @@ -1,20 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`store show get integration 1`] = ` -Object { - "authorizations": Symbol(authorizations), - "breadcrumb": Symbol(breadcrumb), - "config": Symbol(config), - "data": Symbol(data), - "fields": Symbol(fields), - "layout": Symbol(layout), -} -`; - -exports[`store show state match snapshot 1`] = ` -Object { - "entityKey": null, - "instanceId": null, - "show": null, -} -`; diff --git a/packages/show/__tests__/store/show.test.js b/packages/show/__tests__/store/show.test.js deleted file mode 100644 index 7defa26e1..000000000 --- a/packages/show/__tests__/store/show.test.js +++ /dev/null @@ -1,115 +0,0 @@ -import Vuex from 'vuex'; -import * as api from '../../src/api'; -import show from '../../src/store/show'; -import { createLocalVue } from '@vue/test-utils'; - -jest.mock('sharp'); - -describe('store show', () => { - test('state match snapshot', () => { - expect(show.state).toMatchSnapshot(); - }); - - test('canChangeState', () => { - expect(show.getters.canChangeState(null, { - config: {}, - })).toBe(false); - expect(show.getters.canChangeState(null, { - config: { - state: { - authorization: false, - } - }, - })).toBe(false); - expect(show.getters.canChangeState(null, { - config: { - state: { - authorization: true, - } - }, - })).toBe(true); - }); - - test('authorizedCommands', () => { - expect(show.getters.authorizedCommands(null, { - config: {}, - })).toEqual([]); - expect(show.getters.authorizedCommands(null, { - config: { - commands: { - instance: [ - [{ authorization: true }], [{ authorization:false }] - ] - } - }, - })).toEqual([[{ authorization: true }], []]); - }); - - test('instanceState', () => { - expect(show.getters.instanceState(null, { - config: {}, - })).toEqual(null); - expect(show.getters.instanceState(null, { - config: { - state: { - attribute: 'state', - values: [{ - value: 'currentState' - }] - } - }, - data: { - state: 'currentState', - } - })).toEqual('currentState'); - }); - - test('stateValues', () => { - expect(show.getters.stateValues(null, { - config: {}, - })).toBeUndefined(); - expect(show.getters.stateValues(null, { - config: { - state: { - values: [{ - value: 'currentState' - }] - } - }, - })).toEqual([{ value:'currentState' }]); - }); - - test('get integration', async () => { - const localVue = createLocalVue(); - localVue.use(Vuex); - const store = new Vuex.Store(show); - - jest.spyOn(api, 'getShowView').mockImplementation(() => Promise.resolve({ - config: Symbol('config'), - fields: Symbol('fields'), - data: Symbol('data'), - layout: Symbol('layout'), - breadcrumb: Symbol('breadcrumb'), - authorizations: Symbol('authorizations') - })); - - await store.dispatch('setEntityKey', 'entityKey'); - await store.dispatch('setInstanceId', 'instanceId'); - await store.dispatch('get'); - - expect(api.getShowView).toHaveBeenCalledWith({ - entityKey: 'entityKey', - instanceId: 'instanceId', - }); - - const { config, fields, data, layout, breadcrumb, authorizations, } = store.getters; - expect({ - config, - fields, - data, - layout, - breadcrumb, - authorizations, - }).toMatchSnapshot(); - }); -}); diff --git a/packages/show/package-lock.json b/packages/show/package-lock.json deleted file mode 100644 index e0d019bd7..000000000 --- a/packages/show/package-lock.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "sharp-show", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "sharp-commands": { - "version": "file:../commands", - "requires": { - "sharp-form": "file:../form", - "sharp-ui": "file:../ui" - } - }, - "sharp-entity-list": { - "version": "file:../entity-list", - "requires": { - "sharp-commands": "file:../commands", - "sharp-filters": "file:../filters", - "sharp-ui": "file:../ui" - } - }, - "sharp-filters": { - "version": "file:../filters", - "requires": { - "sharp-form": "file:../form", - "sharp-ui": "file:../ui" - } - }, - "sharp-ui": { - "version": "file:../ui", - "requires": { - "sharp-filters": "file:../filters" - } - } - } -} diff --git a/packages/show/package.json b/packages/show/package.json index 1bd348874..6041a3024 100644 --- a/packages/show/package.json +++ b/packages/show/package.json @@ -1,12 +1,6 @@ { - "name": "sharp-show", + "name": "@sharp/show", "private": true, "version": "1.0.0", - "main": "src/index.js", - "dependencies": { - "sharp-commands": "file:../commands", - "sharp-entity-list": "file:../entity-list", - "sharp-filters": "file:../filters", - "sharp-ui": "file:../ui" - } + "main": "../../resources/js/src/index.ts" } diff --git a/packages/show/scss/components/_File.scss b/packages/show/scss/components/_File.scss index 4c990ba62..44c165b18 100644 --- a/packages/show/scss/components/_File.scss +++ b/packages/show/scss/components/_File.scss @@ -51,13 +51,6 @@ line-height: 1; } - &--root { - --file-font-size: .875em; - .show-field__content { - padding-bottom: .5rem; - } - } - &--has-label { .ShowFileField__name { font-weight: 400; diff --git a/packages/show/src/api.js b/packages/show/src/api.js deleted file mode 100644 index d7fc1a613..000000000 --- a/packages/show/src/api.js +++ /dev/null @@ -1,31 +0,0 @@ -import { api, apiUrl } from 'sharp'; - -export function getShowView({ entityKey, instanceId }) { - return api.get(`show/${entityKey}/${instanceId || ''}`) - .then(response => response.data); -} - -export function deleteShow({ entityKey, instanceId }) { - return api.delete(`show/${entityKey}/${instanceId || ''}`) - .then(response => response.data); -} - -export function postShowCommand({ entityKey, instanceId, commandKey, data }) { - return api.post(`show/${entityKey}/command/${commandKey}/${instanceId || ''}`, { - ...data, - }, { responseType: 'blob' }); -} - -export function getShowCommandForm({ entityKey, instanceId, commandKey, query }) { - return api.get(`show/${entityKey}/command/${commandKey}${instanceId ? `/${instanceId}` : ''}/form`, { - params: { - ...query, - }, - }).then(response => response.data); -} - -export function postShowState({ entityKey, instanceId, value }) { - return api.post(`show/${entityKey}/state/${instanceId || ''}`, { value }) - .then(response => response.data); -} - diff --git a/packages/show/src/components/ActionBar.vue b/packages/show/src/components/ActionBar.vue deleted file mode 100644 index ae0f3cdba..000000000 --- a/packages/show/src/components/ActionBar.vue +++ /dev/null @@ -1,150 +0,0 @@ - - - diff --git a/packages/show/src/components/Field.vue b/packages/show/src/components/Field.vue deleted file mode 100644 index 86d1c2698..000000000 --- a/packages/show/src/components/Field.vue +++ /dev/null @@ -1,70 +0,0 @@ - - - diff --git a/packages/show/src/components/FieldLayout.vue b/packages/show/src/components/FieldLayout.vue deleted file mode 100644 index a926ee0c9..000000000 --- a/packages/show/src/components/FieldLayout.vue +++ /dev/null @@ -1,19 +0,0 @@ - - - diff --git a/packages/show/src/components/Section.vue b/packages/show/src/components/Section.vue deleted file mode 100644 index ddfb84627..000000000 --- a/packages/show/src/components/Section.vue +++ /dev/null @@ -1,95 +0,0 @@ - - - diff --git a/packages/show/src/components/fields/File.vue b/packages/show/src/components/fields/File.vue deleted file mode 100644 index 4b480dd5d..000000000 --- a/packages/show/src/components/fields/File.vue +++ /dev/null @@ -1,165 +0,0 @@ - - - diff --git a/packages/show/src/components/fields/List.vue b/packages/show/src/components/fields/List.vue deleted file mode 100644 index f926e9a85..000000000 --- a/packages/show/src/components/fields/List.vue +++ /dev/null @@ -1,105 +0,0 @@ - - - diff --git a/packages/show/src/components/fields/Picture.vue b/packages/show/src/components/fields/Picture.vue deleted file mode 100644 index b31f825d9..000000000 --- a/packages/show/src/components/fields/Picture.vue +++ /dev/null @@ -1,30 +0,0 @@ - - - diff --git a/packages/show/src/components/fields/entity-list/ActionBar.vue b/packages/show/src/components/fields/entity-list/ActionBar.vue deleted file mode 100644 index 253156599..000000000 --- a/packages/show/src/components/fields/entity-list/ActionBar.vue +++ /dev/null @@ -1,218 +0,0 @@ - - - diff --git a/packages/show/src/components/fields/entity-list/EntityList.vue b/packages/show/src/components/fields/entity-list/EntityList.vue deleted file mode 100644 index 37c5bb06a..000000000 --- a/packages/show/src/components/fields/entity-list/EntityList.vue +++ /dev/null @@ -1,204 +0,0 @@ - - - diff --git a/packages/show/src/components/fields/index.js b/packages/show/src/components/fields/index.js deleted file mode 100644 index 26de59c5e..000000000 --- a/packages/show/src/components/fields/index.js +++ /dev/null @@ -1,21 +0,0 @@ -import { isCustomField, resolveCustomField } from "sharp"; -import EntityList from "./entity-list/EntityList.vue"; -import Text from './text/Text.vue'; -import Picture from './Picture.vue'; -import File from './File.vue'; -import List from './List.vue'; - -const map = { - 'entityList': EntityList, - 'text': Text, - 'picture': Picture, - 'file': File, - 'list': List, -}; - -export function getFieldByType(type) { - if(isCustomField(type)) { - return resolveCustomField(type); - } - return map[type]; -} diff --git a/packages/show/src/components/fields/text/Text.vue b/packages/show/src/components/fields/text/Text.vue deleted file mode 100644 index 585e634c2..000000000 --- a/packages/show/src/components/fields/text/Text.vue +++ /dev/null @@ -1,108 +0,0 @@ - - - diff --git a/packages/show/src/components/fields/text/TextRenderer.vue b/packages/show/src/components/fields/text/TextRenderer.vue deleted file mode 100644 index 838e60f36..000000000 --- a/packages/show/src/components/fields/text/TextRenderer.vue +++ /dev/null @@ -1,113 +0,0 @@ - - - diff --git a/packages/show/src/components/fields/text/nodes/EmbedRenderer.vue b/packages/show/src/components/fields/text/nodes/EmbedRenderer.vue deleted file mode 100644 index 9c0c5c703..000000000 --- a/packages/show/src/components/fields/text/nodes/EmbedRenderer.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - diff --git a/packages/show/src/components/fields/text/nodes/File.vue b/packages/show/src/components/fields/text/nodes/File.vue deleted file mode 100644 index 9ed4ceec9..000000000 --- a/packages/show/src/components/fields/text/nodes/File.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - diff --git a/packages/show/src/components/fields/text/nodes/Html.vue b/packages/show/src/components/fields/text/nodes/Html.vue deleted file mode 100644 index 8ca1b4857..000000000 --- a/packages/show/src/components/fields/text/nodes/Html.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - diff --git a/packages/show/src/components/fields/text/nodes/embed.js b/packages/show/src/components/fields/text/nodes/embed.js deleted file mode 100644 index 963326327..000000000 --- a/packages/show/src/components/fields/text/nodes/embed.js +++ /dev/null @@ -1,60 +0,0 @@ -import { parseAttributeValue } from "sharp-embeds"; -import { EmbedRenderer } from 'sharp-embeds'; -import { ignoreVueElement } from "sharp"; - -export function createEmbedComponent(embedOptions) { - return { - name: `Embed_${embedOptions.tag}`, - template: ` - - - - - - `, - components: { - EmbedRenderer, - }, - inject: [ - 'state', - ], - props: { - ...embedOptions.attributes - ?.filter(name => name !== 'slot') - .reduce((res, attributeName) => ({ - ...res, - [attributeName]: null, - }), {}), - }, - data() { - return { - index: 0, - } - }, - computed: { - embedOptions() { - return embedOptions; - }, - embedData() { - const additionalData = this.state.embeds[embedOptions.key][this.index]; - - return { - ...embedOptions.attributes?.reduce((res, attributeName) => ({ - ...res, - [attributeName]: parseAttributeValue(this.$props[attributeName]), - }), {}), - ...additionalData, - } - }, - }, - created() { - this.index = this.state.embeds[embedOptions.key].length; - this.state.embeds[embedOptions.key].push(this.embedData); - - ignoreVueElement(this.embedOptions.tag); - }, - } -} diff --git a/packages/show/src/components/pages/ShowPage.vue b/packages/show/src/components/pages/ShowPage.vue deleted file mode 100644 index a529391d1..000000000 --- a/packages/show/src/components/pages/ShowPage.vue +++ /dev/null @@ -1,354 +0,0 @@ - - - diff --git a/packages/show/src/index.js b/packages/show/src/index.js deleted file mode 100644 index 7dcfa2973..000000000 --- a/packages/show/src/index.js +++ /dev/null @@ -1,9 +0,0 @@ -import show from './store/show'; -import routes from './routes'; -import Field from './components/Field.vue'; - -export default function (Vue, { router, store }) { - router.addRoutes(routes); - store.registerModule('show', show); - Vue.component('ShowField', Field); -} diff --git a/packages/show/src/routes.js b/packages/show/src/routes.js deleted file mode 100644 index a5890510f..000000000 --- a/packages/show/src/routes.js +++ /dev/null @@ -1,10 +0,0 @@ -import ShowPage from './components/pages/ShowPage.vue'; - -export default [ - /** New spec */ - { - name: 'show', - path: '/(.*)?/s-show/:entityKey/:instanceId?', - component: ShowPage, - }, -] diff --git a/packages/show/src/store/show.js b/packages/show/src/store/show.js deleted file mode 100644 index a975d017e..000000000 --- a/packages/show/src/store/show.js +++ /dev/null @@ -1,135 +0,0 @@ -import { filtersModule as filters } from 'sharp-filters'; -import {getShowView, postShowCommand, getShowCommandForm, postShowState, deleteShow} from "../api"; - -const SET_ENTITY_KEY = 'SET_ENTITY_KEY'; -const SET_INSTANCE_ID = 'SET_INSTANCE_ID'; -const SET_SHOW = 'SET_SHOW_VIEW'; - - -export default { - namespaced: true, - modules: { - filters, - 'entity-lists': { - namespaced: true, - } - }, - - state: { - entityKey: null, - instanceId: null, - show: null, - }, - - mutations: { - [SET_SHOW](state, show) { - state.show = show; - }, - [SET_ENTITY_KEY](state, entityKey) { - state.entityKey = entityKey; - }, - [SET_INSTANCE_ID](state, instanceId) { - state.instanceId = instanceId; - }, - }, - - getters: { - entityKey(state) { - return state.entityKey; - }, - instanceId(state) { - return state.instanceId; - }, - config(state) { - return state.show.config; - }, - fields(state) { - return state.show.fields; - }, - layout(state) { - return state.show.layout; - }, - data(state) { - return state.show.data; - }, - locales(state) { - return state.show?.locales; - }, - breadcrumb(state) { - return state.show.breadcrumb; - }, - authorizations(state) { - return state.show.authorizations; - }, - canEdit(state, getters) { - return getters.authorizations.update; - }, - canChangeState(state, getters) { - return !!getters.config.state && getters.config.state.authorization; - }, - authorizedCommands(state, getters) { - const commands = getters.config.commands || {}; - return (commands.instance || []) - .map(group => group.filter(command => command.authorization)); - }, - instanceState(state, getters) { - if(getters.config.state) { - return getters.data[getters.config.state.attribute]; - } - return null; - }, - instanceStateOptions(state, getters) { - return getters.config.state?.values.find(item => item.value === getters.instanceState); - }, - stateValues(state, getters) { - return getters.config.state?.values; - }, - }, - - actions: { - async get({ state, commit }) { - const data = await getShowView({ - entityKey: state.entityKey, - instanceId: state.instanceId, - }); - commit(SET_SHOW, data); - return data; - }, - delete({ state }) { - return deleteShow({ - entityKey: state.entityKey, - instanceId: state.instanceId, - }); - }, - postCommand({ state }, { command, data }) { - return postShowCommand({ - entityKey: state.entityKey, - instanceId: state.instanceId, - commandKey: command.key, - data, - }); - }, - getCommandForm({ state }, { command, query }) { - return getShowCommandForm({ - entityKey: state.entityKey, - instanceId: state.instanceId, - commandKey: command.key, - query, - }); - }, - postState({ state, getters }, value) { - return postShowState({ - entityKey: state.entityKey, - instanceId: state.instanceId, - attribute: getters.config.state.attribute, - value, - }); - }, - setEntityKey({ commit }, entityKey) { - commit(SET_ENTITY_KEY, entityKey); - }, - setInstanceId({ commit }, instanceId) { - commit(SET_INSTANCE_ID, instanceId); - }, - }, -} diff --git a/packages/show/src/util/fields/text.js b/packages/show/src/util/fields/text.js deleted file mode 100644 index 557766d56..000000000 --- a/packages/show/src/util/fields/text.js +++ /dev/null @@ -1,14 +0,0 @@ - - -export function stripTags(html) { - const el = document.createElement('div'); - el.innerHTML = html; - return el.textContent; -} - -export function truncateToWords(text, count) { - const matches = [...text.matchAll(/\S+\s*/g)]; - return matches.length > count - ? matches.slice(0, count).map(match => match[0]).join('') - : text; -} \ No newline at end of file diff --git a/packages/show/src/util/fields/visiblity.js b/packages/show/src/util/fields/visiblity.js deleted file mode 100644 index 3e0f53093..000000000 --- a/packages/show/src/util/fields/visiblity.js +++ /dev/null @@ -1,7 +0,0 @@ - - -export function syncVisibility(vm, getter, { lazy } = {}) { - vm.$watch(getter, visible => { - vm.$emit('visible-change', visible); - }, { immediate: !lazy }); -} \ No newline at end of file diff --git a/packages/show/src/util/url.js b/packages/show/src/util/url.js deleted file mode 100644 index a6bebdb82..000000000 --- a/packages/show/src/util/url.js +++ /dev/null @@ -1,7 +0,0 @@ -import { routeUrl } from 'sharp/router'; - -export function showUrl({ entityKey, instanceId }, options) { - return routeUrl({ - name: 'show', params: { entityKey, instanceId }, - }, options); -} diff --git a/packages/test-utils/src/MockI18n.js b/packages/test-utils/src/MockI18n.js index 07a7020b7..8e8a5844d 100644 --- a/packages/test-utils/src/MockI18n.js +++ b/packages/test-utils/src/MockI18n.js @@ -20,4 +20,4 @@ export default { mockFn && mockLangFunction(); }, mockLangFunction -} \ No newline at end of file +} diff --git a/packages/ui/__tests__/DataList.test.js b/packages/ui/__tests__/DataList.test.js deleted file mode 100644 index 2c950493d..000000000 --- a/packages/ui/__tests__/DataList.test.js +++ /dev/null @@ -1,217 +0,0 @@ -import merge from 'lodash/merge'; - -import SharpDataList from '../src/components/DataList.vue'; -import { shallowMount } from '@vue/test-utils'; - -describe('DataList', ()=>{ - - function createWrapper({ ...options }={}) { - return shallowMount(SharpDataList, { - // language=Vue - stubs: { - DataListRow: - `
- -
`, - Draggable: - `
- -
`, - }, - ...options, - }); - } - - function setReordering(wrapper, reordering) { - const watcherSpy = jest.spyOn(wrapper.vm, 'handleReorderingChanged').mockImplementation(); - wrapper.setProps({ - reordering - }); - watcherSpy.mockRestore(); - } - - function withDefaultMocks(options={}) { - return merge({ - computed: { - isEmpty: ()=>false, - } - }, options); - } - - test('mount empty', ()=>{ - const wrapper = createWrapper(withDefaultMocks({ - computed: { - isEmpty: ()=>true, - }, - slots: { - empty: 'Empty text', - }, - })); - expect(wrapper.html()).toMatchSnapshot(); - }); - - test('mount items', ()=>{ - const wrapper = createWrapper(withDefaultMocks({ - scopedSlots: { - item: '', - } - })); - wrapper.setProps({ - items: [{ id:1 }], - }); - expect(wrapper.html()).toMatchSnapshot(); - }); - - test('mount header', ()=>{ - const wrapper = createWrapper(withDefaultMocks()); - const header = wrapper.find({ ref:'head' }); - const columns = [{ key:'col1', label:'col1' }, { key:'col2', label:'col2', sortable: true }]; - - expect(header.html()).toMatchSnapshot('default'); - wrapper.setProps({ - columns: [...columns], - }); - expect(header.html()).toMatchSnapshot('columns'); - wrapper.setProps({ - columns: [...columns], - sort: 'col2', - }); - expect(header.html()).toMatchSnapshot('sort selected'); - wrapper.setProps({ - columns: [...columns], - sort: 'col2', - dir: 'asc', - }); - expect(header.html()).toMatchSnapshot('sort ascending'); - }); - - test('mount items slot', ()=>{ - const wrapper = createWrapper(withDefaultMocks({ - scopedSlots: { - item: `
{{ props.item.text }}
`, - }, - })); - wrapper.setProps({ - items: [{ id:1, text:'mockedText' }], - }); - expect(wrapper.html()).toMatchSnapshot(); - }); - - test('mount pagination', ()=>{ - const wrapper = createWrapper(withDefaultMocks({ - computed: { - isEmpty: ()=>true, - hasPagination: ()=>true - }, - })); - wrapper.setProps({ - totalCount: 10, - pageSize: 3, - page: 2, - }); - expect(wrapper.html()).toMatchSnapshot(); - }); - - describe('watch', ()=>{ - test('reordering', ()=>{ - const wrapper = createWrapper(); - wrapper.setMethods({ - handleReorderingChanged: jest.fn() - }); - wrapper.setProps({ - reordering: true, - }); - expect(wrapper.vm.handleReorderingChanged).toHaveBeenCalledWith(true); - }); - }); - - describe('computed', ()=>{ - test('hasPagination', ()=>{ - const wrapper = createWrapper(); - expect(wrapper.vm.hasPagination).toBe(false); - wrapper.setProps({ - paginated: true, - }); - expect(wrapper.vm.hasPagination).toBe(false); - wrapper.setProps({ - paginated: true, - totalCount: 10, - pageSize: 3, - }); - expect(wrapper.vm.hasPagination).toBe(true); - }); - test('draggableOptions', ()=>{ - const wrapper = createWrapper(); - expect(wrapper.vm.draggableOptions).toEqual({ - disabled: true, - }); - setReordering(wrapper, true); - expect(wrapper.vm.draggableOptions).toEqual({ - disabled: false, - }); - }); - test('currentItems', ()=>{ - const wrapper = createWrapper(); - wrapper.setProps({ - items: [{ label:'item' }], - }); - expect(wrapper.vm.currentItems).toEqual([{ label:'item' }]); - setReordering(wrapper, true); - wrapper.setData({ - reorderedItems: [{ label: 'reorderedItem' }], - }); - expect(wrapper.vm.currentItems).toEqual([{ label: 'reorderedItem' }]); - }); - test('isEmpty', ()=>{ - const wrapper = createWrapper(); - expect(wrapper.vm.isEmpty).toBe(true); - wrapper.setProps({ - items:[{ id:1 }], - }); - expect(wrapper.vm.isEmpty).toBe(false); - }); - }); - - describe('methods', ()=>{ - test('handleItemsChanged', ()=>{ - const wrapper = createWrapper(); - wrapper.vm.handleItemsChanged('reorderedItems'); - expect(wrapper.vm.reorderedItems).toEqual('reorderedItems'); - expect(wrapper.emitted('change')[0]).toEqual(['reorderedItems']); - }); - - test('handleSortChanged', ()=>{ - let wrapper; - wrapper = createWrapper(); - wrapper.vm.handleSortClicked('name'); - expect(wrapper.emitted('sort-change')[0]).toEqual([{ prop:'name', dir: 'asc' }]); - - wrapper = createWrapper(); - wrapper.setProps({ - sort: 'name', - dir: 'asc', - }); - wrapper.vm.handleSortClicked('name'); - expect(wrapper.emitted('sort-change')[0]).toEqual([{ prop:'name', dir: 'desc' }]); - }); - - test('handlePageChanged', ()=>{ - const wrapper = createWrapper(); - wrapper.vm.handlePageChanged(1); - expect(wrapper.emitted('page-change')[0]).toEqual([1]); - }); - - test('handleReorderingChanged', ()=>{ - const wrapper = createWrapper(); - wrapper.setProps({ - items: [{ id:1 }] - }); - wrapper.vm.handleReorderingChanged(true); - expect(wrapper.vm.reorderedItems).toEqual([{ id:1 }]); - wrapper.vm.handleReorderingChanged(false); - expect(wrapper.vm.reorderedItems).toEqual(null); - }); - }); -}); diff --git a/packages/ui/__tests__/DataListRow.test.js b/packages/ui/__tests__/DataListRow.test.js deleted file mode 100644 index 6ee2fa8de..000000000 --- a/packages/ui/__tests__/DataListRow.test.js +++ /dev/null @@ -1,112 +0,0 @@ -import merge from 'lodash/merge'; - -import SharpDataListRow from '../src/components/DataListRow.vue'; -import { shallowMount } from '@vue/test-utils'; - - -describe('DataListRow', ()=>{ - - function createWrapper({ ...options }={}) { - return shallowMount(SharpDataListRow, { - ...options - }); - } - - function withDefaultMocks(options) { - return merge({ - computed: { - hasLink: ()=>false - }, - methods: { - colClasses: ()=>'colClasses' - }, - }, options); - } - - test('mount', ()=>{ - const wrapper = createWrapper(withDefaultMocks()); - expect(wrapper.html()).toMatchSnapshot(); - }); - - test('mount header', ()=>{ - const wrapper = createWrapper(withDefaultMocks()); - wrapper.setProps({ - header: true - }); - expect(wrapper.html()).toMatchSnapshot(); - wrapper.setProps({ - columns: [{ key:'label' }], - row: { label: 'label' } - }); - expect(wrapper.html()).toMatchSnapshot('columns'); - }); - - test('mount with url', ()=>{ - const wrapper = createWrapper(withDefaultMocks({ - computed: { - hasLink: ()=>true - } - })); - wrapper.setProps({ - url: 'http://example.org' - }); - expect(wrapper.html()).toMatchSnapshot(); - }); - - test('mount append', ()=>{ - const wrapper = createWrapper(withDefaultMocks({ - slots: { - append: 'mockedAppend' - } - })); - expect(wrapper.html()).toMatchSnapshot(); - }); - - test('mount columns', ()=>{ - const wrapper = createWrapper(withDefaultMocks()); - wrapper.setProps({ - columns: [{ key:'name' }, { key:'age', html: true }], - row: { name:'John', age:'3' } - }); - expect(wrapper.html()).toMatchSnapshot(); - }); - - test('mount cell slot', ()=>{ - const wrapper = createWrapper(withDefaultMocks({ - scopedSlots: { - cell: '
{{ props.column.key }}:{{ props.row.name }}
' - } - })); - wrapper.setProps({ - columns: [{ key:'name' }], - row: { name:'John' }, - }); - expect(wrapper.html()).toMatchSnapshot(); - }); - - describe('computed', ()=>{ - test('hasUrl', ()=>{ - const wrapper = createWrapper(); - expect(wrapper.vm.hasLink).toBe(false); - wrapper.setProps({ - url: 'http://example.org', - }); - expect(wrapper.vm.hasLink).toBe(true); - }); - }); - - describe('methods', ()=>{ - test('colClasses', ()=>{ - const wrapper = createWrapper(); - expect(wrapper.vm.colClasses({ size:6, sizeXS:12 })) - .toMatchObject({ - 'col-12': true, - 'col-md-6': true, - }); - expect(wrapper.vm.colClasses({ hideOnXS:true })) - .toMatchObject({ - 'd-none d-md-block': true, - }); - }); - }); -}); diff --git a/packages/ui/__tests__/Grid.test.js b/packages/ui/__tests__/Grid.test.js deleted file mode 100644 index 2ffb0b885..000000000 --- a/packages/ui/__tests__/Grid.test.js +++ /dev/null @@ -1,21 +0,0 @@ -import Grid from '../src/components/Grid.vue'; -import { mount } from '@vue/test-utils'; - -describe('grid',()=>{ - let wrapper, baseOptions; - beforeEach(()=>{ - wrapper = mount(Grid, baseOptions={ - propsData: { - rows: [ - [{ size: 6, sizeXS: 12 }, { size: 4 }], - [{ size: 10 }, { size: null }] // should have class col-sm - ] - } - }); - }); - - test('can mount Grid', ()=>{ - expect(wrapper.html()).toMatchSnapshot(); - }) - -}); \ No newline at end of file diff --git a/packages/ui/__tests__/Modal.test.js b/packages/ui/__tests__/Modal.test.js deleted file mode 100644 index 7a73d578c..000000000 --- a/packages/ui/__tests__/Modal.test.js +++ /dev/null @@ -1,134 +0,0 @@ -import { mount } from '@vue/test-utils'; -import SharpModal from '../src/components/Modal.vue'; - -jest.mock('sharp/mixins/Localization'); - - -describe('modal', ()=>{ - - function bModal(wrapper) { - return wrapper.find({ ref:'modal' }); - } - - test('mount', ()=>{ - const wrapper = mount(SharpModal, { - propsData: { - id: 'modal-id', - cancelTitle: 'cancel title', - okTitle: 'ok title', - okOnly: false, - title: 'title', - static: true, - }, - }); - expect(wrapper.html()).toMatchSnapshot(); - }); - - test('mount ok only', ()=>{ - const wrapper = mount(SharpModal, { - propsData: { - okOnly: true, - static: true, - } - }); - expect(wrapper.html()).toMatchSnapshot(); - }); - - test('mount visible', async ()=>{ - const wrapper = mount(SharpModal, { - propsData: { - static: true, - }, - }); - wrapper.setProps({ visible:true }); - await wrapper.vm.$nextTick(); - expect(wrapper.html()).toMatchSnapshot(); - }); - - test('mount with modifiers classes', ()=>{ - const wrapper = mount(SharpModal, { - propsData: { - isError: true, - static: true, - } - }); - expect(wrapper.html()).toMatchSnapshot(); - }); - - test('pass props', () => { - const wrapper = mount(SharpModal, { - propsData: { - id: 'modal-id', - } - }); - - expect(bModal(wrapper).props()).toMatchObject({ - id: 'modal-id', - visible: false, - okOnly: false, - noEnforceFocus: true, - }); - wrapper.setProps({ - visible: true, - cancelTitle: 'custom cancel title', - okTitle: 'custom ok title', - okOnly: true, - title: 'custom title', - }); - expect(bModal(wrapper).props()).toMatchObject({ - visible: true, - okOnly: true, - title: 'custom title', - }); - }); - - test('show/hide methods and emit updates', async ()=>{ - const wrapper = mount(SharpModal, { - propsData:{ - static: true, - }, - sync: false - }); - wrapper.vm.show(); - await wrapper.vm.$nextTick(); - expect(wrapper.find('.modal').isVisible()).toBe(true); - wrapper.vm.hide(); - await wrapper.vm.$nextTick(); - expect(wrapper.find('.modal').isVisible()).toBe(false); - }); - - test('emit updates', async ()=>{ - const wrapper = mount(SharpModal, { sync: false }); - wrapper.vm.show(); - await wrapper.vm.$nextTick(); - expect(wrapper.emitted()['update:visible'][0]).toEqual([true]); - // update visible prop manually like "update:" event handler - wrapper.setProps({ - visible: true, - }); - await wrapper.vm.$nextTick(); - wrapper.vm.hide(); - await wrapper.vm.$nextTick(); - expect(wrapper.emitted()['update:visible'][1]).toEqual([false]); - }); - - test('pass props to b-modal', ()=>{ - const wrapper = mount({ - template: '', - components: { SharpModal } - }); - expect(bModal(wrapper.find(SharpModal)).vm.$attrs).toMatchObject({ - testProp: 'test' - }); - }); - - test('pass listeners to b-modal', ()=>{ - const wrapper = mount({ - template: '', - components: { SharpModal } - }); - expect(bModal(wrapper.find(SharpModal)).vm.$listeners).toMatchObject({ - testListener: expect.any(Function) - }) - }); -}); diff --git a/packages/ui/__tests__/Pagination.test.js b/packages/ui/__tests__/Pagination.test.js deleted file mode 100644 index b9e68c7e5..000000000 --- a/packages/ui/__tests__/Pagination.test.js +++ /dev/null @@ -1,39 +0,0 @@ -import { mount } from '@vue/test-utils'; -import Pagination from '../src/components/Pagination.vue'; - -describe('pagination', ()=>{ - function createWrapper() { - return mount(Pagination, { - propsData: { - value: 1, - minPageEndButtons: 3, - totalRows: 100, - perPage: 10, - } - }); - } - - test('mount pagination', ()=>{ - expect(createWrapper().html()).toMatchSnapshot(); - }); - - test('mount pagination without end buttons', ()=>{ - const wrapper = createWrapper(); - wrapper.setProps({ - totalRows: 20, - perPage: 10, - minPageEndButtons: 3, - }); - expect(wrapper.html()).toMatchSnapshot(); - }); - - test('hideGotoEndPagination', ()=>{ - const wrapper = createWrapper(); - wrapper.setProps({ - totalRows: 20, - perPage: 10, - minPageEndButtons: 3, - }); - expect(wrapper.vm.hideGotoEndButtons).toEqual(true); - }); -}); \ No newline at end of file diff --git a/packages/ui/__tests__/__snapshots__/DataList.test.js.snap b/packages/ui/__tests__/__snapshots__/DataList.test.js.snap deleted file mode 100644 index cf93b07b3..000000000 --- a/packages/ui/__tests__/__snapshots__/DataList.test.js.snap +++ /dev/null @@ -1,169 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`DataList mount empty 1`] = ` -
-
-
Empty text
-
- -
-`; - -exports[`DataList mount header: columns 1`] = ` -
-
-
-
-
-
-
- col1 -
-
- -
-
-
-
-
-
-
-
- col2 -
-
-
- - - - -
-
-
-
-
-
-`; - -exports[`DataList mount header: default 1`] = ` -
-
-
-`; - -exports[`DataList mount header: sort ascending 1`] = ` -
-
-
-
-
-
-
- col1 -
-
- -
-
-
-
-
-
-
-
- col2 -
-
-
- - - - -
-
-
-
-
-
-`; - -exports[`DataList mount header: sort selected 1`] = ` -
-
-
-
-
-
-
- col1 -
-
- -
-
-
-
-
-
-
-
- col2 -
-
-
- - - - -
-
-
-
-
-
-`; - -exports[`DataList mount items 1`] = ` -
- -
-
-
-
-
-
-
-
-
-
- -
-`; - -exports[`DataList mount items slot 1`] = ` -
- -
-
-
-
-
-
-
mockedText
-
-
-
- -
-`; - -exports[`DataList mount pagination 1`] = ` -
-
-
-
-
- -
-
-`; diff --git a/packages/ui/__tests__/__snapshots__/DataListRow.test.js.snap b/packages/ui/__tests__/__snapshots__/DataListRow.test.js.snap deleted file mode 100644 index 804959fab..000000000 --- a/packages/ui/__tests__/__snapshots__/DataListRow.test.js.snap +++ /dev/null @@ -1,137 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`DataListRow mount 1`] = ` -
-
- -
-
-
-
- -
-
-
-
-
-
-`; - -exports[`DataListRow mount append 1`] = ` -
-
- -
-
-
-
- -
-
-
mockedAppend
-
-
-
-`; - -exports[`DataListRow mount cell slot 1`] = ` -
-
- -
-
-
-
-
name:John
-
-
-
- -
-
-
-
-
-
-`; - -exports[`DataListRow mount columns 1`] = ` -
-
- -
-
-
-
- John -
-
-
- 3 -
-
-
-
- -
-
-
-
-
-
-`; - -exports[`DataListRow mount header 1`] = ` -
-
- -
-
-
-
- -
-
-
-
-
-
-`; - -exports[`DataListRow mount header: columns 1`] = ` -
-
- -
-
-
-
- label -
-
-
- -
-
-
-
-
-
-`; - -exports[`DataListRow mount with url 1`] = ` -
-
- -
-
-
-
- -
-
-
-
-
-
-`; diff --git a/packages/ui/__tests__/__snapshots__/Grid.test.js.snap b/packages/ui/__tests__/__snapshots__/Grid.test.js.snap deleted file mode 100644 index dbad1bbe8..000000000 --- a/packages/ui/__tests__/__snapshots__/Grid.test.js.snap +++ /dev/null @@ -1,14 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`grid can mount Grid 1`] = ` -
-
-
-
-
-
-
-
-
-
-`; diff --git a/packages/ui/__tests__/__snapshots__/Modal.test.js.snap b/packages/ui/__tests__/__snapshots__/Modal.test.js.snap deleted file mode 100644 index e9c996f9d..000000000 --- a/packages/ui/__tests__/__snapshots__/Modal.test.js.snap +++ /dev/null @@ -1,169 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`modal mount 1`] = ` - -`; - -exports[`modal mount ok only 1`] = ` -
- - -
-`; - -exports[`modal mount visible 1`] = ` -
- - -
-`; - -exports[`modal mount with modifiers classes 1`] = ` -
- - -
-`; diff --git a/packages/ui/__tests__/__snapshots__/Pagination.test.js.snap b/packages/ui/__tests__/__snapshots__/Pagination.test.js.snap deleted file mode 100644 index 9c4830a4a..000000000 --- a/packages/ui/__tests__/__snapshots__/Pagination.test.js.snap +++ /dev/null @@ -1,71 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`pagination mount pagination 1`] = ` - -`; - -exports[`pagination mount pagination without end buttons 1`] = ` - -`; diff --git a/packages/ui/package-lock.json b/packages/ui/package-lock.json deleted file mode 100644 index 14ad95177..000000000 --- a/packages/ui/package-lock.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "sharp-ui", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "sharp-filters": { - "version": "file:../filters" - } - } -} diff --git a/packages/ui/package.json b/packages/ui/package.json index 9556882b5..1c7a7aec1 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,6 +1,6 @@ { - "name": "sharp-ui", + "name": "@sharp/ui", "private": true, "version": "1.0.0", - "main": "src/index.js" + "main": "src/index.ts" } diff --git a/packages/ui/scss/components/_DataList.scss b/packages/ui/scss/components/_DataList.scss index 0fdf8cea2..1d1a2c914 100644 --- a/packages/ui/scss/components/_DataList.scss +++ b/packages/ui/scss/components/_DataList.scss @@ -1,4 +1,4 @@ -@import '../../../../resources/assets/sass/mixins/entity-list'; +@import '../../../../resources/sass/mixins/entity-list'; .SharpDataList { diff --git a/packages/ui/src/components/Breadcrumb.vue b/packages/ui/src/components/Breadcrumb.vue deleted file mode 100644 index ea8b243a8..000000000 --- a/packages/ui/src/components/Breadcrumb.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - diff --git a/packages/ui/src/components/Button.vue b/packages/ui/src/components/Button.vue deleted file mode 100644 index a4120b019..000000000 --- a/packages/ui/src/components/Button.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - diff --git a/packages/ui/src/components/ClearButton.vue b/packages/ui/src/components/ClearButton.vue deleted file mode 100644 index 72a97d258..000000000 --- a/packages/ui/src/components/ClearButton.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - diff --git a/packages/ui/src/components/DataList.vue b/packages/ui/src/components/DataList.vue deleted file mode 100644 index 19a7fad41..000000000 --- a/packages/ui/src/components/DataList.vue +++ /dev/null @@ -1,188 +0,0 @@ - - - diff --git a/packages/ui/src/components/DataListRow.vue b/packages/ui/src/components/DataListRow.vue deleted file mode 100644 index 423d88486..000000000 --- a/packages/ui/src/components/DataListRow.vue +++ /dev/null @@ -1,108 +0,0 @@ - - - diff --git a/packages/ui/src/components/Grid.vue b/packages/ui/src/components/Grid.vue deleted file mode 100644 index d6ef1b8de..000000000 --- a/packages/ui/src/components/Grid.vue +++ /dev/null @@ -1,56 +0,0 @@ - - - diff --git a/packages/ui/src/components/Modal.vue b/packages/ui/src/components/Modal.vue deleted file mode 100644 index ecf2c2c3e..000000000 --- a/packages/ui/src/components/Modal.vue +++ /dev/null @@ -1,128 +0,0 @@ - - - diff --git a/packages/ui/src/components/ModalSelect.vue b/packages/ui/src/components/ModalSelect.vue deleted file mode 100644 index 642eb0438..000000000 --- a/packages/ui/src/components/ModalSelect.vue +++ /dev/null @@ -1,111 +0,0 @@ - - - diff --git a/packages/ui/src/components/Multiselect.vue b/packages/ui/src/components/Multiselect.vue deleted file mode 100644 index 37540d7db..000000000 --- a/packages/ui/src/components/Multiselect.vue +++ /dev/null @@ -1,46 +0,0 @@ - diff --git a/packages/ui/src/components/Pagination.vue b/packages/ui/src/components/Pagination.vue deleted file mode 100644 index 8c165bbf4..000000000 --- a/packages/ui/src/components/Pagination.vue +++ /dev/null @@ -1,55 +0,0 @@ - - - \ No newline at end of file diff --git a/packages/ui/src/components/Search.vue b/packages/ui/src/components/Search.vue deleted file mode 100644 index 2e893802d..000000000 --- a/packages/ui/src/components/Search.vue +++ /dev/null @@ -1,98 +0,0 @@ - - - diff --git a/packages/ui/src/components/StateIcon.vue b/packages/ui/src/components/StateIcon.vue deleted file mode 100644 index e6baee543..000000000 --- a/packages/ui/src/components/StateIcon.vue +++ /dev/null @@ -1,22 +0,0 @@ - - - diff --git a/packages/ui/src/components/Tab.vue b/packages/ui/src/components/Tab.vue deleted file mode 100644 index 552fb03bd..000000000 --- a/packages/ui/src/components/Tab.vue +++ /dev/null @@ -1,66 +0,0 @@ - - - diff --git a/packages/ui/src/components/TabbedLayout.vue b/packages/ui/src/components/TabbedLayout.vue deleted file mode 100644 index fcc3df229..000000000 --- a/packages/ui/src/components/TabbedLayout.vue +++ /dev/null @@ -1,71 +0,0 @@ - - - diff --git a/packages/ui/src/components/Tabs.vue b/packages/ui/src/components/Tabs.vue deleted file mode 100644 index 417b44e6b..000000000 --- a/packages/ui/src/components/Tabs.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - - diff --git a/packages/ui/src/components/Tooltip.vue b/packages/ui/src/components/Tooltip.vue deleted file mode 100644 index 8037c2db8..000000000 --- a/packages/ui/src/components/Tooltip.vue +++ /dev/null @@ -1,63 +0,0 @@ - - - diff --git a/packages/ui/src/components/TopBar.vue b/packages/ui/src/components/TopBar.vue deleted file mode 100644 index 6e9050371..000000000 --- a/packages/ui/src/components/TopBar.vue +++ /dev/null @@ -1,64 +0,0 @@ - - - diff --git a/packages/ui/src/components/dropdown/Dropdown.vue b/packages/ui/src/components/dropdown/Dropdown.vue deleted file mode 100644 index 14567628a..000000000 --- a/packages/ui/src/components/dropdown/Dropdown.vue +++ /dev/null @@ -1,89 +0,0 @@ - - - diff --git a/packages/ui/src/components/dropdown/DropdownItem.vue b/packages/ui/src/components/dropdown/DropdownItem.vue deleted file mode 100644 index e0e2750c4..000000000 --- a/packages/ui/src/components/dropdown/DropdownItem.vue +++ /dev/null @@ -1,28 +0,0 @@ - - - diff --git a/packages/ui/src/components/dropdown/DropdownSeparator.vue b/packages/ui/src/components/dropdown/DropdownSeparator.vue deleted file mode 100644 index b63e97735..000000000 --- a/packages/ui/src/components/dropdown/DropdownSeparator.vue +++ /dev/null @@ -1,14 +0,0 @@ - - - diff --git a/packages/ui/src/components/global-message/GlobalMessage.vue b/packages/ui/src/components/global-message/GlobalMessage.vue deleted file mode 100644 index 5ce111aaf..000000000 --- a/packages/ui/src/components/global-message/GlobalMessage.vue +++ /dev/null @@ -1,50 +0,0 @@ - - - diff --git a/packages/ui/src/components/global-message/GlobalMessageLayout.vue b/packages/ui/src/components/global-message/GlobalMessageLayout.vue deleted file mode 100644 index 40f1cf277..000000000 --- a/packages/ui/src/components/global-message/GlobalMessageLayout.vue +++ /dev/null @@ -1,27 +0,0 @@ - - - diff --git a/packages/ui/src/components/index.js b/packages/ui/src/components/index.js deleted file mode 100644 index 22ef5f46e..000000000 --- a/packages/ui/src/components/index.js +++ /dev/null @@ -1,26 +0,0 @@ -export { default as Breadcrumb } from './Breadcrumb.vue'; -export { default as Button } from './Button.vue'; -export { default as ClearButton } from './ClearButton.vue'; -export { default as NavSection } from './nav/NavSection.vue'; -export { default as DataList } from './DataList.vue'; -export { default as DataListRow } from './DataListRow.vue'; -export { default as Dropdown } from './dropdown/Dropdown.vue'; -export { default as DropdownItem } from './dropdown/DropdownItem.vue'; -export { default as DropdownSeparator } from './dropdown/DropdownSeparator.vue'; -export { default as GlobalMessage } from './global-message/GlobalMessage.vue'; -export { default as Grid } from './Grid.vue'; -export { default as Loading } from './loading/Loading.vue'; -export { default as LoadingOverlay } from './loading/LoadingOverlay.vue'; -export { default as Modal } from './Modal.vue'; -export { default as ModalSelect } from './ModalSelect.vue'; -export { default as Multiselect } from './Multiselect.vue'; -export { default as NavItem } from './nav/NavItem.vue'; -export { default as Pagination } from './Pagination.vue'; -export { default as Search } from './Search.vue'; -export { default as SectionTitle } from './section/SectionTitle.vue'; -export { default as StateIcon } from './StateIcon.vue'; -export { default as Tab } from './Tab.vue'; -export { default as TabbedLayout } from './TabbedLayout.vue'; -export { default as Tabs } from './Tabs.vue'; -export { default as TopBar } from './TopBar.vue'; -export { default as Tooltip } from './Tooltip.vue'; diff --git a/packages/ui/src/components/loading/Loading.vue b/packages/ui/src/components/loading/Loading.vue deleted file mode 100644 index 36fde3af0..000000000 --- a/packages/ui/src/components/loading/Loading.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - - diff --git a/packages/ui/src/components/loading/LoadingOverlay.vue b/packages/ui/src/components/loading/LoadingOverlay.vue deleted file mode 100644 index 6d418dd4d..000000000 --- a/packages/ui/src/components/loading/LoadingOverlay.vue +++ /dev/null @@ -1,34 +0,0 @@ - - - diff --git a/packages/ui/src/components/loading/LoadingTransition.vue b/packages/ui/src/components/loading/LoadingTransition.vue deleted file mode 100644 index ba27d6742..000000000 --- a/packages/ui/src/components/loading/LoadingTransition.vue +++ /dev/null @@ -1,20 +0,0 @@ - - - diff --git a/packages/ui/src/components/nav/NavItem.vue b/packages/ui/src/components/nav/NavItem.vue deleted file mode 100644 index c6c41e955..000000000 --- a/packages/ui/src/components/nav/NavItem.vue +++ /dev/null @@ -1,36 +0,0 @@ - - - diff --git a/packages/ui/src/components/nav/NavSection.vue b/packages/ui/src/components/nav/NavSection.vue deleted file mode 100644 index d5634aee2..000000000 --- a/packages/ui/src/components/nav/NavSection.vue +++ /dev/null @@ -1,64 +0,0 @@ - - - diff --git a/packages/ui/src/components/section/SectionTitle.vue b/packages/ui/src/components/section/SectionTitle.vue deleted file mode 100644 index beb14f9d4..000000000 --- a/packages/ui/src/components/section/SectionTitle.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - diff --git a/packages/ui/src/index.js b/packages/ui/src/index.js deleted file mode 100644 index b8a76b873..000000000 --- a/packages/ui/src/index.js +++ /dev/null @@ -1,9 +0,0 @@ -import { Dropdown, DropdownItem } from "./components"; - -export default function(Vue, { store, router }) { - Vue.component('sharp-dropdown', Dropdown); - Vue.component('sharp-dropdown-item', DropdownItem); -} - -export * from './components'; -export * from './util'; diff --git a/packages/ui/src/util/index.js b/packages/ui/src/util/index.js deleted file mode 100644 index 7195562c2..000000000 --- a/packages/ui/src/util/index.js +++ /dev/null @@ -1,4 +0,0 @@ - - -export * from './multiselect'; -export * from './layout'; diff --git a/packages/ui/src/util/multiselect.js b/packages/ui/src/util/multiselect.js deleted file mode 100644 index 5d70992d6..000000000 --- a/packages/ui/src/util/multiselect.js +++ /dev/null @@ -1,10 +0,0 @@ - - -export async function multiselectUpdateScroll(vm) { - await new Promise(r => setTimeout(r, 10)); - const content = vm.$el.querySelector('.multiselect__content'); - const rect = content.getBoundingClientRect(); - if (rect.bottom > window.innerHeight) { - window.scrollBy({ top: rect.bottom - window.innerHeight + 20, behavior:'smooth' }); - } -} diff --git a/phpunit.xml b/phpunit.xml index 1dfe718b7..012fd79c6 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -1,13 +1,14 @@ - - - - ./tests/Feature - - - ./tests/Unit - - + + + + + ./tests/Http + + + ./tests/Unit + + diff --git a/pint.json b/pint.json index a1cfd119a..66a95af31 100644 --- a/pint.json +++ b/pint.json @@ -12,6 +12,7 @@ "new_with_parentheses": { "named_class": true, "anonymous_class": true - } + }, + "php_unit_method_casing": false } } diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 000000000..21b924b97 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,9 @@ + +export default { + plugins: { + // 'postcss-import': {}, + 'tailwindcss/nesting': {}, + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/resources/assets/dist/assets/Karla-Bold-1a3cbe42.woff b/resources/assets/dist/assets/Karla-Bold-1a3cbe42.woff deleted file mode 100644 index cac8ad898..000000000 Binary files a/resources/assets/dist/assets/Karla-Bold-1a3cbe42.woff and /dev/null differ diff --git a/resources/assets/dist/assets/Karla-SemiBold-3d79c557.woff b/resources/assets/dist/assets/Karla-SemiBold-3d79c557.woff deleted file mode 100644 index cb269b91d..000000000 Binary files a/resources/assets/dist/assets/Karla-SemiBold-3d79c557.woff and /dev/null differ diff --git a/resources/assets/dist/assets/app-9c8dcfff.css b/resources/assets/dist/assets/app-9c8dcfff.css deleted file mode 100644 index c10c3a673..000000000 --- a/resources/assets/dist/assets/app-9c8dcfff.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8";:root,[data-bs-theme=light]{--bs-blue: #0d6efd;--bs-indigo: #6610f2;--bs-purple: #6f42c1;--bs-pink: #d63384;--bs-red: #dc3545;--bs-orange: #fd7e14;--bs-yellow: #ffc107;--bs-green: #198754;--bs-teal: #20c997;--bs-cyan: #0dcaf0;--bs-black: #000;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--bs-gray-100: #f8f9fa;--bs-gray-200: #e9ecef;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #495057;--bs-gray-800: #343a40;--bs-gray-900: #212529;--bs-primary: #004c9b;--bs-secondary: #6c757d;--bs-success: #3dc322;--bs-info: #5aaafa;--bs-warning: #ffc107;--bs-danger: #dc3545;--bs-light: #f8f9fa;--bs-dark: #212529;--bs-primary-rgb: 0, 76, 155;--bs-secondary-rgb: 108, 117, 125;--bs-success-rgb: 61, 195, 34;--bs-info-rgb: 90, 170, 250;--bs-warning-rgb: 255, 193, 7;--bs-danger-rgb: 220, 53, 69;--bs-light-rgb: 248, 249, 250;--bs-dark-rgb: 33, 37, 41;--bs-primary-text-emphasis: #001e3e;--bs-secondary-text-emphasis: #2b2f32;--bs-success-text-emphasis: #184e0e;--bs-info-text-emphasis: #244464;--bs-warning-text-emphasis: #664d03;--bs-danger-text-emphasis: #58151c;--bs-light-text-emphasis: #495057;--bs-dark-text-emphasis: #495057;--bs-primary-bg-subtle: #ccdbeb;--bs-secondary-bg-subtle: #e2e3e5;--bs-success-bg-subtle: #d8f3d3;--bs-info-bg-subtle: #deeefe;--bs-warning-bg-subtle: #fff3cd;--bs-danger-bg-subtle: #f8d7da;--bs-light-bg-subtle: #fcfcfd;--bs-dark-bg-subtle: #ced4da;--bs-primary-border-subtle: #99b7d7;--bs-secondary-border-subtle: #c4c8cb;--bs-success-border-subtle: #b1e7a7;--bs-info-border-subtle: #bdddfd;--bs-warning-border-subtle: #ffe69c;--bs-danger-border-subtle: #f1aeb5;--bs-light-border-subtle: #e9ecef;--bs-dark-border-subtle: #adb5bd;--bs-white-rgb: 255, 255, 255;--bs-black-rgb: 0, 0, 0;--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, .15), rgba(255, 255, 255, 0));--bs-body-font-family: var(--bs-font-sans-serif);--bs-body-font-size: 1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #152935;--bs-body-color-rgb: 21, 41, 53;--bs-body-bg: #fff;--bs-body-bg-rgb: 255, 255, 255;--bs-emphasis-color: #000;--bs-emphasis-color-rgb: 0, 0, 0;--bs-secondary-color: rgba(21, 41, 53, .75);--bs-secondary-color-rgb: 21, 41, 53;--bs-secondary-bg: #e9ecef;--bs-secondary-bg-rgb: 233, 236, 239;--bs-tertiary-color: rgba(21, 41, 53, .5);--bs-tertiary-color-rgb: 21, 41, 53;--bs-tertiary-bg: #f8f9fa;--bs-tertiary-bg-rgb: 248, 249, 250;--bs-heading-color: inherit;--bs-link-color: #004c9b;--bs-link-color-rgb: 0, 76, 155;--bs-link-decoration: underline;--bs-link-hover-color: #003d7c;--bs-link-hover-color-rgb: 0, 61, 124;--bs-code-color: #d63384;--bs-highlight-bg: #fff3cd;--bs-border-width: 1px;--bs-border-style: solid;--bs-border-color: #dee2e6;--bs-border-color-translucent: rgba(0, 0, 0, .175);--bs-border-radius: .25rem;--bs-border-radius-sm: .25rem;--bs-border-radius-lg: .5rem;--bs-border-radius-xl: 1rem;--bs-border-radius-xxl: 2rem;--bs-border-radius-2xl: var(--bs-border-radius-xxl);--bs-border-radius-pill: 50rem;--bs-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);--bs-box-shadow-sm: 0 .125rem .25rem rgba(0, 0, 0, .075);--bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, .175);--bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, .075);--bs-focus-ring-width: .25rem;--bs-focus-ring-opacity: .25;--bs-focus-ring-color: rgba(0, 76, 155, .25);--bs-form-valid-color: #3dc322;--bs-form-valid-border-color: #3dc322;--bs-form-invalid-color: #dc3545;--bs-form-invalid-border-color: #dc3545}*,*:before,*:after{box-sizing:border-box}@media (prefers-reduced-motion: no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}h1,.h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width: 1200px){h1,.h1{font-size:2.5rem}}h2,.h2{font-size:calc(1.325rem + .9vw)}@media (min-width: 1200px){h2,.h2{font-size:2rem}}h3,.h3{font-size:calc(1.3rem + .6vw)}@media (min-width: 1200px){h3,.h3{font-size:1.75rem}}h4,.h4{font-size:calc(1.275rem + .3vw)}@media (min-width: 1200px){h4,.h4{font-size:1.5rem}}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small,.small{font-size:.875em}mark,.mark{padding:.1875em;background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, 1));text-decoration:underline}a:hover,a.multiselect__option--highlight{--bs-link-color-rgb: var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible),.SharpFilterSelect--open button.form-control:not(:focus-visible),.SharpUpload .dz-drag-hover button.SharpUpload__browse:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}:root{--bs-breakpoint-xs: 0;--bs-breakpoint-sm: 576px;--bs-breakpoint-md: 768px;--bs-breakpoint-lg: 992px;--bs-breakpoint-xl: 1200px;--bs-breakpoint-xxl: 1400px}.row{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x: 0}.g-0,.gy-0{--bs-gutter-y: 0}.g-1,.gx-1{--bs-gutter-x: .25rem}.g-1,.gy-1{--bs-gutter-y: .25rem}.g-2,.gx-2{--bs-gutter-x: .5rem}.g-2,.gy-2{--bs-gutter-y: .5rem}.g-3,.gx-3{--bs-gutter-x: 1rem}.g-3,.gy-3{--bs-gutter-y: 1rem}.g-4,.gx-4{--bs-gutter-x: 1.5rem}.g-4,.gy-4{--bs-gutter-y: 1.5rem}.g-4\.5,.gx-4\.5{--bs-gutter-x: 2rem}.g-4\.5,.gy-4\.5{--bs-gutter-y: 2rem}.g-5,.gx-5{--bs-gutter-x: 3rem}.g-5,.gy-5{--bs-gutter-y: 3rem}@media (min-width: 576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x: 0}.g-sm-0,.gy-sm-0{--bs-gutter-y: 0}.g-sm-1,.gx-sm-1{--bs-gutter-x: .25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y: .25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x: .5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y: .5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x: 1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y: 1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x: 1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y: 1.5rem}.g-sm-4\.5,.gx-sm-4\.5{--bs-gutter-x: 2rem}.g-sm-4\.5,.gy-sm-4\.5{--bs-gutter-y: 2rem}.g-sm-5,.gx-sm-5{--bs-gutter-x: 3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y: 3rem}}@media (min-width: 768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x: 0}.g-md-0,.gy-md-0{--bs-gutter-y: 0}.g-md-1,.gx-md-1{--bs-gutter-x: .25rem}.g-md-1,.gy-md-1{--bs-gutter-y: .25rem}.g-md-2,.gx-md-2{--bs-gutter-x: .5rem}.g-md-2,.gy-md-2{--bs-gutter-y: .5rem}.g-md-3,.gx-md-3{--bs-gutter-x: 1rem}.g-md-3,.gy-md-3{--bs-gutter-y: 1rem}.g-md-4,.gx-md-4{--bs-gutter-x: 1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y: 1.5rem}.g-md-4\.5,.gx-md-4\.5{--bs-gutter-x: 2rem}.g-md-4\.5,.gy-md-4\.5{--bs-gutter-y: 2rem}.g-md-5,.gx-md-5{--bs-gutter-x: 3rem}.g-md-5,.gy-md-5{--bs-gutter-y: 3rem}}@media (min-width: 992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x: 0}.g-lg-0,.gy-lg-0{--bs-gutter-y: 0}.g-lg-1,.gx-lg-1{--bs-gutter-x: .25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y: .25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x: .5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y: .5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x: 1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y: 1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x: 1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y: 1.5rem}.g-lg-4\.5,.gx-lg-4\.5{--bs-gutter-x: 2rem}.g-lg-4\.5,.gy-lg-4\.5{--bs-gutter-y: 2rem}.g-lg-5,.gx-lg-5{--bs-gutter-x: 3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y: 3rem}}@media (min-width: 1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x: 0}.g-xl-0,.gy-xl-0{--bs-gutter-y: 0}.g-xl-1,.gx-xl-1{--bs-gutter-x: .25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y: .25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x: .5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y: .5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x: 1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y: 1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x: 1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y: 1.5rem}.g-xl-4\.5,.gx-xl-4\.5{--bs-gutter-x: 2rem}.g-xl-4\.5,.gy-xl-4\.5{--bs-gutter-y: 2rem}.g-xl-5,.gx-xl-5{--bs-gutter-x: 3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y: 3rem}}@media (min-width: 1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x: 0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y: 0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x: .25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y: .25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x: .5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y: .5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x: 1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y: 1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x: 1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y: 1.5rem}.g-xxl-4\.5,.gx-xxl-4\.5{--bs-gutter-x: 2rem}.g-xxl-4\.5,.gy-xxl-4\.5{--bs-gutter-y: 2rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x: 3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y: 3rem}}.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width: 576px){.container-sm,.container{max-width:540px}}@media (min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media (min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media (min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}@media (min-width: 1400px){.container-xxl,.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1320px}}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .3s cubic-bezier(.5,0,.1,1)}@media (prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled,.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer:before{content:"— "}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media (min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption){position:absolute!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.form-label{margin-bottom:.5rem;font-size:.875rem;color:hsl(var(--primary-h),var(--primary-s),20%)}.col-form-label{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5;color:hsl(var(--primary-h),var(--primary-s),20%)}.col-form-label-lg{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + var(--bs-border-width));padding-bottom:calc(.25rem + var(--bs-border-width));font-size:.875rem}.form-text{margin-top:.5rem;font-size:.75rem;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:.5rem .75rem;font-size:.875rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus,.SharpFilterSelect--open .form-control,.SharpUpload .dz-drag-hover .form-control.SharpUpload__browse{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#80a6cd;outline:0;box-shadow:0 0 0 .25rem #004c9b40}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::file-selector-button{padding:.5rem .75rem;margin:-.5rem -.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button,.form-control.multiselect__option--highlight:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.5rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus,.SharpFilterSelect--open .form-control-plaintext.form-control,.SharpUpload .dz-drag-hover .form-control-plaintext.SharpUpload__browse{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:.25rem}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:.25rem}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select,.SharpForm .SharpSelect--dropdown{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.5rem 2.25rem .5rem .75rem;font-size:.875rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion: reduce){.form-select,.SharpForm .SharpSelect--dropdown{transition:none}}.form-select:focus,.SharpFilterSelect--open .form-select.form-control,.SharpForm .SharpSelect--dropdown:focus,.SharpForm .SharpFilterSelect--open .SharpSelect--dropdown.form-control,.SharpFilterSelect--open .SharpForm .SharpSelect--dropdown.form-control,.SharpUpload .dz-drag-hover .form-select.SharpUpload__browse,.SharpUpload .dz-drag-hover .SharpForm .SharpUpload__browse.SharpSelect--dropdown,.SharpForm .SharpUpload .dz-drag-hover .SharpUpload__browse.SharpSelect--dropdown{border-color:#80a6cd;outline:0;box-shadow:0 0 0 .25rem #004c9b40}.form-select[multiple],.SharpForm [multiple].SharpSelect--dropdown,.form-select[size]:not([size="1"]),.SharpForm [size].SharpSelect--dropdown:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled,.SharpForm .SharpSelect--dropdown:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring,.SharpForm .SharpSelect--dropdown:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--bs-form-check-bg: var(--bs-body-bg);width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus,.SharpFilterSelect--open .form-check-input.form-control,.SharpUpload .dz-drag-hover .form-check-input.SharpUpload__browse{border-color:#80a6cd;outline:0;box-shadow:0 0 0 .25rem #004c9b40}.form-check-input:checked{background-color:#004c9b;border-color:#004c9b}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#004c9b;border-color:#004c9b;--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input:disabled~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus,.form-switch .SharpFilterSelect--open .form-check-input.form-control,.SharpFilterSelect--open .form-switch .form-check-input.form-control,.form-switch .SharpUpload .dz-drag-hover .form-check-input.SharpUpload__browse,.SharpUpload .dz-drag-hover .form-switch .form-check-input.SharpUpload__browse{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2380a6cd'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus,.SharpFilterSelect--open .form-range.form-control,.SharpUpload .dz-drag-hover .form-range.SharpUpload__browse{outline:0}.form-range:focus::-webkit-slider-thumb,.SharpFilterSelect--open .form-range.form-control::-webkit-slider-thumb,.SharpUpload .dz-drag-hover .form-range.SharpUpload__browse::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #004c9b40}.form-range:focus::-moz-range-thumb,.SharpFilterSelect--open .form-range.form-control::-moz-range-thumb,.SharpUpload .dz-drag-hover .form-range.SharpUpload__browse::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #004c9b40}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#004c9b;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b3c9e1}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-tertiary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#004c9b;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#b3c9e1}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-tertiary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select,.SharpForm .form-floating>.SharpSelect--dropdown{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:transparent}.form-floating>.form-control:focus,.SharpFilterSelect--open .form-floating>.form-control,.SharpUpload .dz-drag-hover .form-floating>.form-control.SharpUpload__browse,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.SharpUpload .dz-drag-hover .form-floating>.form-control-plaintext.SharpUpload__browse,.form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select,.SharpForm .form-floating>.SharpSelect--dropdown{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.SharpFilterSelect--open .form-floating>.form-control~label,.SharpUpload .dz-drag-hover .form-floating>.form-control.SharpUpload__browse~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label,.form-floating>.form-select~label,.SharpForm .form-floating>.SharpSelect--dropdown~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control:focus~label:after,.SharpFilterSelect--open .form-floating>.form-control~label:after,.SharpUpload .dz-drag-hover .form-floating>.form-control.SharpUpload__browse~label:after,.form-floating>.form-control:not(:placeholder-shown)~label:after,.form-floating>.form-control-plaintext~label:after,.form-floating>.form-select~label:after,.SharpForm .form-floating>.SharpSelect--dropdown~label:after{position:absolute;top:1rem;right:.375rem;bottom:1rem;left:.375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:.25rem}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>:disabled~label{color:#6c757d}.form-floating>:disabled~label:after{background-color:var(--bs-secondary-bg)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select,.SharpForm .input-group>.SharpSelect--dropdown,.input-group>.form-floating{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.SharpFilterSelect--open .input-group>.form-control,.SharpUpload .dz-drag-hover .input-group>.form-control.SharpUpload__browse,.input-group>.form-select:focus,.SharpForm .input-group>.SharpSelect--dropdown:focus,.SharpUpload .dz-drag-hover .input-group>.form-select.SharpUpload__browse,.SharpUpload .dz-drag-hover .SharpForm .input-group>.SharpUpload__browse.SharpSelect--dropdown,.SharpForm .SharpUpload .dz-drag-hover .input-group>.SharpUpload__browse.SharpSelect--dropdown,.input-group>.form-floating:focus-within{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus,.input-group .SharpFilterSelect--open .btn.form-control,.SharpFilterSelect--open .input-group .btn.form-control,.input-group .SharpUpload .dz-drag-hover .btn.SharpUpload__browse,.SharpUpload .dz-drag-hover .input-group .btn.SharpUpload__browse{z-index:5}.input-group-text{display:flex;align-items:center;padding:.5rem .75rem;font-size:.875rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:.25rem}.input-group-lg>.form-control,.input-group-lg>.form-select,.SharpForm .input-group-lg>.SharpSelect--dropdown,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.form-control,.input-group-sm>.form-select,.SharpForm .input-group-sm>.SharpSelect--dropdown,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.SharpForm .input-group-lg>.SharpSelect--dropdown,.input-group-sm>.form-select,.SharpForm .input-group-sm>.SharpSelect--dropdown{padding-right:3rem}.input-group:not(.has-validation):not(.input-group--clearable)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group:not(.has-validation):not(.input-group--clearable)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation):not(.input-group--clearable)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation):not(.input-group--clearable)>.form-floating:not(:last-child)>.form-select,.SharpForm .input-group:not(.has-validation):not(.input-group--clearable)>.form-floating:not(:last-child)>.SharpSelect--dropdown{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group.input-group--clearable>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.input-group--clearable>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.input-group--clearable>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select,.input-group.input-group--clearable>.form-floating:nth-last-child(n+3)>.form-select,.SharpForm .input-group.has-validation>.form-floating:nth-last-child(n+3)>.SharpSelect--dropdown,.SharpForm .input-group.input-group--clearable>.form-floating:nth-last-child(n+3)>.SharpSelect--dropdown{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--bs-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select,.SharpForm .input-group>.form-floating:not(:first-child)>.SharpSelect--dropdown{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.5rem;font-size:.75rem;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:var(--bs-form-valid-border-color);padding-right:calc(1.5em + 1rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%233dc322' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .25rem) center;background-size:calc(.75em + .5rem) calc(.75em + .5rem)}.was-validated .form-control:valid:focus,.was-validated .SharpFilterSelect--open .form-control:valid,.SharpFilterSelect--open .was-validated .form-control:valid,.was-validated .SharpUpload .dz-drag-hover .form-control.SharpUpload__browse:valid,.SharpUpload .dz-drag-hover .was-validated .form-control.SharpUpload__browse:valid,.form-control.is-valid:focus,.SharpFilterSelect--open .form-control.is-valid,.SharpUpload .dz-drag-hover .form-control.is-valid.SharpUpload__browse{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + 1rem);background-position:top calc(.375em + .25rem) right calc(.375em + .25rem)}.was-validated .form-select:valid,.was-validated .SharpForm .SharpSelect--dropdown:valid,.SharpForm .was-validated .SharpSelect--dropdown:valid,.form-select.is-valid,.SharpForm .is-valid.SharpSelect--dropdown{border-color:var(--bs-form-valid-border-color)}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .SharpForm .SharpSelect--dropdown:valid:not([multiple]):not([size]),.SharpForm .was-validated .SharpSelect--dropdown:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.was-validated .SharpForm .SharpSelect--dropdown:valid:not([multiple])[size="1"],.SharpForm .was-validated .SharpSelect--dropdown:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.SharpForm .is-valid.SharpSelect--dropdown:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.SharpForm .is-valid.SharpSelect--dropdown:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%233dc322' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .5rem) calc(.75em + .5rem)}.was-validated .form-select:valid:focus,.was-validated .SharpFilterSelect--open .form-select.form-control:valid,.SharpFilterSelect--open .was-validated .form-select.form-control:valid,.was-validated .SharpForm .SharpSelect--dropdown:valid:focus,.was-validated .SharpForm .SharpFilterSelect--open .SharpSelect--dropdown.form-control:valid,.SharpFilterSelect--open .was-validated .SharpForm .SharpSelect--dropdown.form-control:valid,.SharpForm .was-validated .SharpSelect--dropdown:valid:focus,.SharpForm .was-validated .SharpFilterSelect--open .SharpSelect--dropdown.form-control:valid,.SharpFilterSelect--open .SharpForm .was-validated .SharpSelect--dropdown.form-control:valid,.was-validated .SharpUpload .dz-drag-hover .form-select.SharpUpload__browse:valid,.was-validated .SharpUpload .dz-drag-hover .SharpForm .SharpUpload__browse.SharpSelect--dropdown:valid,.SharpForm .was-validated .SharpUpload .dz-drag-hover .SharpUpload__browse.SharpSelect--dropdown:valid,.SharpUpload .dz-drag-hover .was-validated .form-select.SharpUpload__browse:valid,.SharpUpload .dz-drag-hover .was-validated .SharpForm .SharpUpload__browse.SharpSelect--dropdown:valid,.SharpForm .SharpUpload .dz-drag-hover .was-validated .SharpUpload__browse.SharpSelect--dropdown:valid,.form-select.is-valid:focus,.SharpFilterSelect--open .form-select.is-valid.form-control,.SharpForm .is-valid.SharpSelect--dropdown:focus,.SharpForm .SharpFilterSelect--open .is-valid.SharpSelect--dropdown.form-control,.SharpFilterSelect--open .SharpForm .is-valid.SharpSelect--dropdown.form-control,.SharpUpload .dz-drag-hover .form-select.is-valid.SharpUpload__browse,.SharpUpload .dz-drag-hover .SharpForm .is-valid.SharpUpload__browse.SharpSelect--dropdown,.SharpForm .SharpUpload .dz-drag-hover .is-valid.SharpUpload__browse.SharpSelect--dropdown{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated .form-control-color:valid,.form-control-color.is-valid{width:calc(4rem + 1.5em)}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:var(--bs-form-valid-color)}.was-validated .form-check-input:valid:focus,.was-validated .SharpFilterSelect--open .form-check-input.form-control:valid,.SharpFilterSelect--open .was-validated .form-check-input.form-control:valid,.was-validated .SharpUpload .dz-drag-hover .form-check-input.SharpUpload__browse:valid,.SharpUpload .dz-drag-hover .was-validated .form-check-input.SharpUpload__browse:valid,.form-check-input.is-valid:focus,.SharpFilterSelect--open .form-check-input.is-valid.form-control,.SharpUpload .dz-drag-hover .form-check-input.is-valid.SharpUpload__browse{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):valid,.input-group>.form-control:not(:focus).is-valid,.was-validated .input-group>.form-select:not(:focus):valid,.was-validated .SharpForm .input-group>.SharpSelect--dropdown:not(:focus):valid,.SharpForm .was-validated .input-group>.SharpSelect--dropdown:not(:focus):valid,.input-group>.form-select:not(:focus).is-valid,.SharpForm .input-group>.SharpSelect--dropdown:not(:focus).is-valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.input-group>.form-floating:not(:focus-within).is-valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.5rem;font-size:.75rem;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.SharpForm__form-item--danger .form-control~.invalid-feedback,.is-invalid~.invalid-tooltip,.SharpForm__form-item--danger .form-control~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid,.SharpForm__form-item--danger .form-control{border-color:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + 1rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .25rem) center;background-size:calc(.75em + .5rem) calc(.75em + .5rem)}.was-validated .form-control:invalid:focus,.was-validated .SharpFilterSelect--open .form-control:invalid,.SharpFilterSelect--open .was-validated .form-control:invalid,.was-validated .SharpUpload .dz-drag-hover .form-control.SharpUpload__browse:invalid,.SharpUpload .dz-drag-hover .was-validated .form-control.SharpUpload__browse:invalid,.form-control.is-invalid:focus,.SharpFilterSelect--open .form-control.is-invalid,.SharpForm__form-item--danger .form-control:focus,.SharpForm__form-item--danger .SharpFilterSelect--open .form-control,.SharpFilterSelect--open .SharpForm__form-item--danger .form-control,.SharpUpload .dz-drag-hover .form-control.is-invalid.SharpUpload__browse,.SharpUpload .dz-drag-hover .SharpForm__form-item--danger .form-control.SharpUpload__browse,.SharpForm__form-item--danger .SharpUpload .dz-drag-hover .form-control.SharpUpload__browse{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid,.SharpForm__form-item--danger textarea.form-control{padding-right:calc(1.5em + 1rem);background-position:top calc(.375em + .25rem) right calc(.375em + .25rem)}.was-validated .form-select:invalid,.was-validated .SharpForm .SharpSelect--dropdown:invalid,.SharpForm .was-validated .SharpSelect--dropdown:invalid,.form-select.is-invalid,.SharpForm__form-item--danger .form-select.form-control,.SharpForm .is-invalid.SharpSelect--dropdown,.SharpForm .SharpForm__form-item--danger .SharpSelect--dropdown.form-control,.SharpForm__form-item--danger .SharpForm .SharpSelect--dropdown.form-control{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .SharpForm .SharpSelect--dropdown:invalid:not([multiple]):not([size]),.SharpForm .was-validated .SharpSelect--dropdown:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.was-validated .SharpForm .SharpSelect--dropdown:invalid:not([multiple])[size="1"],.SharpForm .was-validated .SharpSelect--dropdown:invalid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.SharpForm__form-item--danger .form-select.form-control:not([multiple]):not([size]),.SharpForm .is-invalid.SharpSelect--dropdown:not([multiple]):not([size]),.SharpForm .SharpForm__form-item--danger .SharpSelect--dropdown.form-control:not([multiple]):not([size]),.SharpForm__form-item--danger .SharpForm .SharpSelect--dropdown.form-control:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.SharpForm__form-item--danger .form-select.form-control:not([multiple])[size="1"],.SharpForm .is-invalid.SharpSelect--dropdown:not([multiple])[size="1"],.SharpForm .SharpForm__form-item--danger .SharpSelect--dropdown.form-control:not([multiple])[size="1"],.SharpForm__form-item--danger .SharpForm .SharpSelect--dropdown.form-control:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .5rem) calc(.75em + .5rem)}.was-validated .form-select:invalid:focus,.was-validated .SharpFilterSelect--open .form-select.form-control:invalid,.SharpFilterSelect--open .was-validated .form-select.form-control:invalid,.was-validated .SharpForm .SharpSelect--dropdown:invalid:focus,.was-validated .SharpForm .SharpFilterSelect--open .SharpSelect--dropdown.form-control:invalid,.SharpFilterSelect--open .was-validated .SharpForm .SharpSelect--dropdown.form-control:invalid,.SharpForm .was-validated .SharpSelect--dropdown:invalid:focus,.SharpForm .was-validated .SharpFilterSelect--open .SharpSelect--dropdown.form-control:invalid,.SharpFilterSelect--open .SharpForm .was-validated .SharpSelect--dropdown.form-control:invalid,.was-validated .SharpUpload .dz-drag-hover .form-select.SharpUpload__browse:invalid,.was-validated .SharpUpload .dz-drag-hover .SharpForm .SharpUpload__browse.SharpSelect--dropdown:invalid,.SharpForm .was-validated .SharpUpload .dz-drag-hover .SharpUpload__browse.SharpSelect--dropdown:invalid,.SharpUpload .dz-drag-hover .was-validated .form-select.SharpUpload__browse:invalid,.SharpUpload .dz-drag-hover .was-validated .SharpForm .SharpUpload__browse.SharpSelect--dropdown:invalid,.SharpForm .SharpUpload .dz-drag-hover .was-validated .SharpUpload__browse.SharpSelect--dropdown:invalid,.form-select.is-invalid:focus,.SharpFilterSelect--open .form-select.is-invalid.form-control,.SharpForm__form-item--danger .form-select.form-control:focus,.SharpForm__form-item--danger .SharpFilterSelect--open .form-select.form-control,.SharpFilterSelect--open .SharpForm__form-item--danger .form-select.form-control,.SharpForm .is-invalid.SharpSelect--dropdown:focus,.SharpForm .SharpFilterSelect--open .is-invalid.SharpSelect--dropdown.form-control,.SharpFilterSelect--open .SharpForm .is-invalid.SharpSelect--dropdown.form-control,.SharpForm .SharpForm__form-item--danger .SharpSelect--dropdown.form-control:focus,.SharpForm .SharpForm__form-item--danger .SharpFilterSelect--open .SharpSelect--dropdown.form-control,.SharpFilterSelect--open .SharpForm .SharpForm__form-item--danger .SharpSelect--dropdown.form-control,.SharpForm__form-item--danger .SharpForm .SharpSelect--dropdown.form-control:focus,.SharpForm__form-item--danger .SharpForm .SharpFilterSelect--open .SharpSelect--dropdown.form-control,.SharpFilterSelect--open .SharpForm__form-item--danger .SharpForm .SharpSelect--dropdown.form-control,.SharpUpload .dz-drag-hover .form-select.is-invalid.SharpUpload__browse,.SharpUpload .dz-drag-hover .SharpForm__form-item--danger .form-select.SharpUpload__browse.form-control,.SharpForm__form-item--danger .SharpUpload .dz-drag-hover .form-select.SharpUpload__browse.form-control,.SharpUpload .dz-drag-hover .SharpForm .is-invalid.SharpUpload__browse.SharpSelect--dropdown,.SharpUpload .dz-drag-hover .SharpForm .SharpForm__form-item--danger .SharpUpload__browse.SharpSelect--dropdown.form-control,.SharpForm__form-item--danger .SharpUpload .dz-drag-hover .SharpForm .SharpUpload__browse.SharpSelect--dropdown.form-control,.SharpForm .SharpUpload .dz-drag-hover .is-invalid.SharpUpload__browse.SharpSelect--dropdown,.SharpForm .SharpUpload .dz-drag-hover .SharpForm__form-item--danger .SharpUpload__browse.SharpSelect--dropdown.form-control,.SharpForm__form-item--danger .SharpForm .SharpUpload .dz-drag-hover .SharpUpload__browse.SharpSelect--dropdown.form-control{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated .form-control-color:invalid,.form-control-color.is-invalid,.SharpForm__form-item--danger .form-control-color.form-control{width:calc(4rem + 1.5em)}.was-validated .form-check-input:invalid,.form-check-input.is-invalid,.SharpForm__form-item--danger .form-check-input.form-control{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked,.SharpForm__form-item--danger .form-check-input.form-control:checked{background-color:var(--bs-form-invalid-color)}.was-validated .form-check-input:invalid:focus,.was-validated .SharpFilterSelect--open .form-check-input.form-control:invalid,.SharpFilterSelect--open .was-validated .form-check-input.form-control:invalid,.was-validated .SharpUpload .dz-drag-hover .form-check-input.SharpUpload__browse:invalid,.SharpUpload .dz-drag-hover .was-validated .form-check-input.SharpUpload__browse:invalid,.form-check-input.is-invalid:focus,.SharpFilterSelect--open .form-check-input.is-invalid.form-control,.SharpForm__form-item--danger .form-check-input.form-control:focus,.SharpForm__form-item--danger .SharpFilterSelect--open .form-check-input.form-control,.SharpFilterSelect--open .SharpForm__form-item--danger .form-check-input.form-control,.SharpUpload .dz-drag-hover .form-check-input.is-invalid.SharpUpload__browse,.SharpUpload .dz-drag-hover .SharpForm__form-item--danger .form-check-input.SharpUpload__browse.form-control,.SharpForm__form-item--danger .SharpUpload .dz-drag-hover .form-check-input.SharpUpload__browse.form-control{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label,.SharpForm__form-item--danger .form-check-input.form-control~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):invalid,.input-group>.form-control:not(:focus).is-invalid,.SharpForm__form-item--danger .input-group>.form-control:not(:focus),.was-validated .input-group>.form-select:not(:focus):invalid,.was-validated .SharpForm .input-group>.SharpSelect--dropdown:not(:focus):invalid,.SharpForm .was-validated .input-group>.SharpSelect--dropdown:not(:focus):invalid,.input-group>.form-select:not(:focus).is-invalid,.SharpForm .input-group>.SharpSelect--dropdown:not(:focus).is-invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.input-group>.form-floating:not(:focus-within).is-invalid,.SharpForm__form-item--danger .input-group>.form-floating.form-control:not(:focus-within){z-index:4}.alert,.SharpNotification{--bs-alert-bg: transparent;--bs-alert-padding-x: 1rem;--bs-alert-padding-y: .75rem;--bs-alert-margin-bottom: 1rem;--bs-alert-color: inherit;--bs-alert-border-color: transparent;--bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius: var(--bs-border-radius);--bs-alert-link-color: inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close,.alert-dismissible .close{position:absolute;top:0;right:0;z-index:2;padding:.9375rem 1rem}.alert-primary{--bs-alert-color: var(--bs-primary-text-emphasis);--bs-alert-bg: var(--bs-primary-bg-subtle);--bs-alert-border-color: var(--bs-primary-border-subtle);--bs-alert-link-color: var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color: var(--bs-secondary-text-emphasis);--bs-alert-bg: var(--bs-secondary-bg-subtle);--bs-alert-border-color: var(--bs-secondary-border-subtle);--bs-alert-link-color: var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color: var(--bs-success-text-emphasis);--bs-alert-bg: var(--bs-success-bg-subtle);--bs-alert-border-color: var(--bs-success-border-subtle);--bs-alert-link-color: var(--bs-success-text-emphasis)}.alert-info,.SharpNotification--info{--bs-alert-color: var(--bs-info-text-emphasis);--bs-alert-bg: var(--bs-info-bg-subtle);--bs-alert-border-color: var(--bs-info-border-subtle);--bs-alert-link-color: var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color: var(--bs-warning-text-emphasis);--bs-alert-bg: var(--bs-warning-bg-subtle);--bs-alert-border-color: var(--bs-warning-border-subtle);--bs-alert-link-color: var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color: var(--bs-danger-text-emphasis);--bs-alert-bg: var(--bs-danger-bg-subtle);--bs-alert-border-color: var(--bs-danger-border-subtle);--bs-alert-link-color: var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color: var(--bs-light-text-emphasis);--bs-alert-bg: var(--bs-light-bg-subtle);--bs-alert-border-color: var(--bs-light-border-subtle);--bs-alert-link-color: var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color: var(--bs-dark-text-emphasis);--bs-alert-bg: var(--bs-dark-bg-subtle);--bs-alert-border-color: var(--bs-dark-border-subtle);--bs-alert-link-color: var(--bs-dark-text-emphasis)}.btn{--bs-btn-padding-x: .75rem;--bs-btn-padding-y: .375rem;--bs-btn-font-family: ;--bs-btn-font-size: .9375rem;--bs-btn-font-weight: 500;--bs-btn-line-height: 1.45;--bs-btn-color: var(--bs-body-color);--bs-btn-bg: transparent;--bs-btn-border-width: 1px;--bs-btn-border-color: transparent;--bs-btn-border-radius: .25rem;--bs-btn-hover-border-color: transparent;--bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);--bs-btn-disabled-opacity: .65;--bs-btn-focus-box-shadow: 0 0 0 .25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover,.btn.multiselect__option--highlight{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover,.btn-check+.btn.multiselect__option--highlight{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,:not(.btn-check)+.btn:active,.btn:first-child:active,.btn.active,.SharpTrix .btn.trix-active,.btn.multiselect__option--selected,.btn.show{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,:not(.btn-check)+.btn:active:focus-visible,.btn:first-child:active:focus-visible,.btn.active:focus-visible,.SharpTrix .btn.trix-active:focus-visible,.btn.multiselect__option--selected:focus-visible,.btn.show:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color: #fff;--bs-btn-bg: #004c9b;--bs-btn-border-color: #004c9b;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #004184;--bs-btn-hover-border-color: #003d7c;--bs-btn-focus-shadow-rgb: 38, 103, 170;--bs-btn-active-color: #fff;--bs-btn-active-bg: #003d7c;--bs-btn-active-border-color: #003974;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #004c9b;--bs-btn-disabled-border-color: #004c9b}.btn-secondary{--bs-btn-color: #fff;--bs-btn-bg: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5c636a;--bs-btn-hover-border-color: #565e64;--bs-btn-focus-shadow-rgb: 130, 138, 145;--bs-btn-active-color: #fff;--bs-btn-active-bg: #565e64;--bs-btn-active-border-color: #51585e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6c757d;--bs-btn-disabled-border-color: #6c757d}.btn-success{--bs-btn-color: #000;--bs-btn-bg: #3dc322;--bs-btn-border-color: #3dc322;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #5acc43;--bs-btn-hover-border-color: #50c938;--bs-btn-focus-shadow-rgb: 52, 166, 29;--bs-btn-active-color: #000;--bs-btn-active-bg: #64cf4e;--bs-btn-active-border-color: #50c938;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #3dc322;--bs-btn-disabled-border-color: #3dc322}.btn-info{--bs-btn-color: #000;--bs-btn-bg: #5aaafa;--bs-btn-border-color: #5aaafa;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #73b7fb;--bs-btn-hover-border-color: #6bb3fb;--bs-btn-focus-shadow-rgb: 77, 145, 213;--bs-btn-active-color: #000;--bs-btn-active-bg: #7bbbfb;--bs-btn-active-border-color: #6bb3fb;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #5aaafa;--bs-btn-disabled-border-color: #5aaafa}.btn-warning{--bs-btn-color: #000;--bs-btn-bg: #ffc107;--bs-btn-border-color: #ffc107;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffca2c;--bs-btn-hover-border-color: #ffc720;--bs-btn-focus-shadow-rgb: 217, 164, 6;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffcd39;--bs-btn-active-border-color: #ffc720;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #ffc107;--bs-btn-disabled-border-color: #ffc107}.btn-danger{--bs-btn-color: #fff;--bs-btn-bg: #dc3545;--bs-btn-border-color: #dc3545;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #bb2d3b;--bs-btn-hover-border-color: #b02a37;--bs-btn-focus-shadow-rgb: 225, 83, 97;--bs-btn-active-color: #fff;--bs-btn-active-bg: #b02a37;--bs-btn-active-border-color: #a52834;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #dc3545;--bs-btn-disabled-border-color: #dc3545}.btn-light{--bs-btn-color: #000;--bs-btn-bg: #f8f9fa;--bs-btn-border-color: #f8f9fa;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #d3d4d5;--bs-btn-hover-border-color: #c6c7c8;--bs-btn-focus-shadow-rgb: 211, 212, 213;--bs-btn-active-color: #000;--bs-btn-active-bg: #c6c7c8;--bs-btn-active-border-color: #babbbc;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #f8f9fa;--bs-btn-disabled-border-color: #f8f9fa}.btn-dark{--bs-btn-color: #fff;--bs-btn-bg: #212529;--bs-btn-border-color: #212529;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #424649;--bs-btn-hover-border-color: #373b3e;--bs-btn-focus-shadow-rgb: 66, 70, 73;--bs-btn-active-color: #fff;--bs-btn-active-bg: #4d5154;--bs-btn-active-border-color: #373b3e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #212529;--bs-btn-disabled-border-color: #212529}.btn-outline-primary{--bs-btn-color: #004c9b;--bs-btn-border-color: #004c9b;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #004c9b;--bs-btn-hover-border-color: #004c9b;--bs-btn-focus-shadow-rgb: 0, 76, 155;--bs-btn-active-color: #fff;--bs-btn-active-bg: #004c9b;--bs-btn-active-border-color: #004c9b;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #004c9b;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #004c9b;--bs-gradient: none}.btn-outline-secondary{--bs-btn-color: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6c757d;--bs-btn-hover-border-color: #6c757d;--bs-btn-focus-shadow-rgb: 108, 117, 125;--bs-btn-active-color: #fff;--bs-btn-active-bg: #6c757d;--bs-btn-active-border-color: #6c757d;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6c757d;--bs-gradient: none}.btn-outline-success{--bs-btn-color: #3dc322;--bs-btn-border-color: #3dc322;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #3dc322;--bs-btn-hover-border-color: #3dc322;--bs-btn-focus-shadow-rgb: 61, 195, 34;--bs-btn-active-color: #000;--bs-btn-active-bg: #3dc322;--bs-btn-active-border-color: #3dc322;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #3dc322;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #3dc322;--bs-gradient: none}.btn-outline-info{--bs-btn-color: #5aaafa;--bs-btn-border-color: #5aaafa;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #5aaafa;--bs-btn-hover-border-color: #5aaafa;--bs-btn-focus-shadow-rgb: 90, 170, 250;--bs-btn-active-color: #000;--bs-btn-active-bg: #5aaafa;--bs-btn-active-border-color: #5aaafa;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #5aaafa;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #5aaafa;--bs-gradient: none}.btn-outline-warning{--bs-btn-color: #ffc107;--bs-btn-border-color: #ffc107;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffc107;--bs-btn-hover-border-color: #ffc107;--bs-btn-focus-shadow-rgb: 255, 193, 7;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffc107;--bs-btn-active-border-color: #ffc107;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #ffc107;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #ffc107;--bs-gradient: none}.btn-outline-danger{--bs-btn-color: #dc3545;--bs-btn-border-color: #dc3545;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #dc3545;--bs-btn-hover-border-color: #dc3545;--bs-btn-focus-shadow-rgb: 220, 53, 69;--bs-btn-active-color: #fff;--bs-btn-active-bg: #dc3545;--bs-btn-active-border-color: #dc3545;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #dc3545;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #dc3545;--bs-gradient: none}.btn-outline-light{--bs-btn-color: #f8f9fa;--bs-btn-border-color: #f8f9fa;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f8f9fa;--bs-btn-hover-border-color: #f8f9fa;--bs-btn-focus-shadow-rgb: 248, 249, 250;--bs-btn-active-color: #000;--bs-btn-active-bg: #f8f9fa;--bs-btn-active-border-color: #f8f9fa;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #f8f9fa;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #f8f9fa;--bs-gradient: none}.btn-outline-dark{--bs-btn-color: #212529;--bs-btn-border-color: #212529;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #212529;--bs-btn-hover-border-color: #212529;--bs-btn-focus-shadow-rgb: 33, 37, 41;--bs-btn-active-color: #fff;--bs-btn-active-bg: #212529;--bs-btn-active-border-color: #212529;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #212529;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #212529;--bs-gradient: none}.btn-link{--bs-btn-font-weight: 400;--bs-btn-color: var(--bs-link-color);--bs-btn-bg: transparent;--bs-btn-border-color: transparent;--bs-btn-hover-color: var(--bs-link-hover-color);--bs-btn-hover-border-color: transparent;--bs-btn-active-color: var(--bs-link-hover-color);--bs-btn-active-border-color: transparent;--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-border-color: transparent;--bs-btn-box-shadow: 0 0 0 #000;--bs-btn-focus-shadow-rgb: 38, 103, 170;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover,.btn-link.multiselect__option--highlight{color:var(--bs-btn-hover-color)}.btn-lg,.btn-group-lg>.btn{--bs-btn-padding-y: .5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size: 1rem;--bs-btn-border-radius: var(--bs-border-radius-lg)}.btn-sm,.btn-group-sm>.btn{--bs-btn-padding-y: .25rem;--bs-btn-padding-x: .5rem;--bs-btn-font-size: .875rem;--bs-btn-border-radius: var(--bs-border-radius-sm)}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.SharpFilterSelect--open .btn-group>.btn-check.form-control+.btn,.SharpUpload .dz-drag-hover .btn-group>.btn-check.SharpUpload__browse+.btn,.btn-group>.btn:hover,.btn-group>.btn.multiselect__option--highlight,.btn-group>.btn:focus,.SharpFilterSelect--open .btn-group>.btn.form-control,.SharpUpload .dz-drag-hover .btn-group>.btn.SharpUpload__browse,.btn-group>.btn:active,.btn-group>.btn.active,.SharpTrix .btn-group>.btn.trix-active,.btn-group>.btn.multiselect__option--selected,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.SharpFilterSelect--open .btn-group-vertical>.btn-check.form-control+.btn,.SharpUpload .dz-drag-hover .btn-group-vertical>.btn-check.SharpUpload__browse+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn.multiselect__option--highlight,.btn-group-vertical>.btn:focus,.SharpFilterSelect--open .btn-group-vertical>.btn.form-control,.SharpUpload .dz-drag-hover .btn-group-vertical>.btn.SharpUpload__browse,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active,.SharpTrix .btn-group-vertical>.btn.trix-active,.btn-group-vertical>.btn.multiselect__option--selected{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:.25rem}.btn-group>:not(.btn-check:first-child)+.btn,.btn-group>.btn-group:not(:first-child){margin-left:-1px}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn,.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after,.dropend .dropdown-toggle-split:after{margin-left:0}.dropstart .dropdown-toggle-split:before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.breadcrumb{--bs-breadcrumb-padding-x: 0;--bs-breadcrumb-padding-y: 0;--bs-breadcrumb-margin-bottom: 0;--bs-breadcrumb-bg: transparent;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color: var(--bs-secondary-color);--bs-breadcrumb-item-padding-x: .5rem;--bs-breadcrumb-item-active-color: var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item:before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active,.SharpTrix .breadcrumb-item.btn.trix-active,.breadcrumb-item.multiselect__option--selected{color:var(--bs-breadcrumb-item-active-color)}.dropup,.dropend,.dropdown,.dropstart,.dropup-center,.dropdown-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.45em;vertical-align:.15em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu,.multiselect .multiselect__content{--bs-dropdown-zindex: 1000;--bs-dropdown-min-width: 10rem;--bs-dropdown-padding-x: 0;--bs-dropdown-padding-y: .5rem;--bs-dropdown-spacer: .125rem;--bs-dropdown-font-size: .875rem;--bs-dropdown-color: var(--bs-body-color);--bs-dropdown-bg: var(--bs-body-bg);--bs-dropdown-border-color: rgba(0, 0, 0, .075);--bs-dropdown-border-radius: var(--bs-border-radius);--bs-dropdown-border-width: var(--bs-border-width);--bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg: rgba(0, 0, 0, .075);--bs-dropdown-divider-margin-y: .5rem;--bs-dropdown-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);--bs-dropdown-link-color: hsl(var(--primary-h), var(--primary-s), 20%);--bs-dropdown-link-hover-color: hsl(var(--primary-h), var(--primary-s), 20%);--bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);--bs-dropdown-link-active-color: var(--component-active-color);--bs-dropdown-link-active-bg: var(--component-active-bg);--bs-dropdown-link-disabled-color: hsla(var(--primary-h), var(--primary-s), 20%, .65);--bs-dropdown-item-padding-x: 1rem;--bs-dropdown-item-padding-y: .375rem;--bs-dropdown-header-color: #6c757d;--bs-dropdown-header-padding-x: 1rem;--bs-dropdown-header-padding-y: .5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper],.multiselect [data-bs-popper].multiselect__content{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper],.dropup .multiselect [data-bs-popper].multiselect__content,.multiselect .dropup [data-bs-popper].multiselect__content{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.45em;vertical-align:.15em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-menu[data-bs-popper],.dropend .multiselect [data-bs-popper].multiselect__content,.multiselect .dropend [data-bs-popper].multiselect__content{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle:after{display:inline-block;margin-left:.45em;vertical-align:.15em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-toggle:after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper],.dropstart .multiselect [data-bs-popper].multiselect__content,.multiselect .dropstart [data-bs-popper].multiselect__content{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle:after{display:inline-block;margin-left:.45em;vertical-align:.15em;content:""}.dropstart .dropdown-toggle:after{display:none}.dropstart .dropdown-toggle:before{display:inline-block;margin-right:.45em;vertical-align:.15em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty:after{margin-left:0}.dropstart .dropdown-toggle:before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item,.multiselect__option{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius, 0)}.dropdown-item:hover,.dropdown-item.multiselect__option--highlight,.multiselect__option:hover,.multiselect__option.multiselect__option--highlight,.dropdown-item:focus,.SharpFilterSelect--open .dropdown-item.form-control,.SharpUpload .dz-drag-hover .dropdown-item.SharpUpload__browse,.multiselect__option:focus,.SharpFilterSelect--open .multiselect__option.form-control,.SharpUpload .dz-drag-hover .multiselect__option.SharpUpload__browse{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.SharpTrix .dropdown-item.btn.trix-active,.dropdown-item.multiselect__option--selected,.active.multiselect__option,.SharpTrix .multiselect__option.btn.trix-active,.multiselect__option.multiselect__option--selected,.dropdown-item:active,.multiselect__option:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.disabled.multiselect__option,.dropdown-item:disabled,.multiselect__option:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show,.multiselect .show.multiselect__content{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color: #dee2e6;--bs-dropdown-bg: #343a40;--bs-dropdown-border-color: rgba(0, 0, 0, .075);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color: #dee2e6;--bs-dropdown-link-hover-color: #fff;--bs-dropdown-divider-bg: rgba(0, 0, 0, .075);--bs-dropdown-link-hover-bg: rgba(255, 255, 255, .15);--bs-dropdown-link-active-color: var(--component-active-color);--bs-dropdown-link-active-bg: var(--component-active-bg);--bs-dropdown-link-disabled-color: #adb5bd;--bs-dropdown-header-color: #adb5bd}.card{--bs-card-spacer-y: 1rem;--bs-card-spacer-x: 1rem;--bs-card-title-spacer-y: .5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width: var(--bs-border-width);--bs-card-border-color: var(--bs-border-color-translucent);--bs-card-border-radius: var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y: .5rem;--bs-card-cap-padding-x: 1rem;--bs-card-cap-bg: rgba(var(--bs-body-color-rgb), .03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg: var(--bs-body-bg);--bs-card-img-overlay-padding: 1rem;--bs-card-group-margin: .75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active,.card-header-tabs .SharpTrix .nav-link.btn.trix-active,.SharpTrix .card-header-tabs .nav-link.btn.trix-active,.card-header-tabs .nav-link.multiselect__option--selected{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width: 576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.btn-close,.close{--bs-btn-close-color: #000;--bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity: .5;--bs-btn-close-hover-opacity: .75;--bs-btn-close-focus-shadow: 0 0 0 .25rem rgba(0, 76, 155, .25);--bs-btn-close-focus-opacity: 1;--bs-btn-close-disabled-opacity: .25;--bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em;color:var(--bs-btn-close-color);background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover,.btn-close.multiselect__option--highlight,.close:hover,.close.multiselect__option--highlight{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus,.SharpFilterSelect--open .btn-close.form-control,.SharpUpload .dz-drag-hover .btn-close.SharpUpload__browse,.close:focus,.SharpFilterSelect--open .close.form-control,.SharpUpload .dz-drag-hover .close.SharpUpload__browse{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close:disabled,.close:disabled,.btn-close.disabled,.disabled.close{pointer-events:none;-webkit-user-select:none;user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white{filter:var(--bs-btn-close-white-filter)}.list-group{--bs-list-group-color: var(--bs-body-color);--bs-list-group-bg: var(--bs-body-bg);--bs-list-group-border-color: var(--bs-border-color);--bs-list-group-border-width: var(--bs-border-width);--bs-list-group-border-radius: var(--bs-border-radius);--bs-list-group-item-padding-x: 1rem;--bs-list-group-item-padding-y: .5rem;--bs-list-group-action-color: var(--bs-secondary-color);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-tertiary-bg);--bs-list-group-action-active-color: var(--bs-body-color);--bs-list-group-action-active-bg: var(--bs-secondary-bg);--bs-list-group-disabled-color: var(--bs-secondary-color);--bs-list-group-disabled-bg: var(--bs-body-bg);--bs-list-group-active-color: var(--component-active-color);--bs-list-group-active-bg: var(--component-active-bg);--bs-list-group-active-border-color: var(--component-active-bg);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item:before{content:counters(section,".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:hover,.list-group-item-action.multiselect__option--highlight,.list-group-item-action:focus,.SharpFilterSelect--open .list-group-item-action.form-control,.SharpUpload .dz-drag-hover .list-group-item-action.SharpUpload__browse{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active,.SharpTrix .list-group-item.btn.trix-active,.list-group-item.multiselect__option--selected{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active,.SharpTrix .list-group-item+.list-group-item.btn.trix-active,.list-group-item+.list-group-item.multiselect__option--selected{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active,.SharpTrix .list-group-horizontal>.list-group-item.btn.trix-active,.list-group-horizontal>.list-group-item.multiselect__option--selected{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active,.SharpTrix .list-group-horizontal>.list-group-item+.list-group-item.btn.trix-active,.list-group-horizontal>.list-group-item+.list-group-item.multiselect__option--selected{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width: 576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active,.SharpTrix .list-group-horizontal-sm>.list-group-item.btn.trix-active,.list-group-horizontal-sm>.list-group-item.multiselect__option--selected{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active,.SharpTrix .list-group-horizontal-sm>.list-group-item+.list-group-item.btn.trix-active,.list-group-horizontal-sm>.list-group-item+.list-group-item.multiselect__option--selected{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active,.SharpTrix .list-group-horizontal-md>.list-group-item.btn.trix-active,.list-group-horizontal-md>.list-group-item.multiselect__option--selected{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active,.SharpTrix .list-group-horizontal-md>.list-group-item+.list-group-item.btn.trix-active,.list-group-horizontal-md>.list-group-item+.list-group-item.multiselect__option--selected{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active,.SharpTrix .list-group-horizontal-lg>.list-group-item.btn.trix-active,.list-group-horizontal-lg>.list-group-item.multiselect__option--selected{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active,.SharpTrix .list-group-horizontal-lg>.list-group-item+.list-group-item.btn.trix-active,.list-group-horizontal-lg>.list-group-item+.list-group-item.multiselect__option--selected{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active,.SharpTrix .list-group-horizontal-xl>.list-group-item.btn.trix-active,.list-group-horizontal-xl>.list-group-item.multiselect__option--selected{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active,.SharpTrix .list-group-horizontal-xl>.list-group-item+.list-group-item.btn.trix-active,.list-group-horizontal-xl>.list-group-item+.list-group-item.multiselect__option--selected{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active,.SharpTrix .list-group-horizontal-xxl>.list-group-item.btn.trix-active,.list-group-horizontal-xxl>.list-group-item.multiselect__option--selected{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active,.SharpTrix .list-group-horizontal-xxl>.list-group-item+.list-group-item.btn.trix-active,.list-group-horizontal-xxl>.list-group-item+.list-group-item.multiselect__option--selected{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--bs-list-group-color: var(--bs-primary-text-emphasis);--bs-list-group-bg: var(--bs-primary-bg-subtle);--bs-list-group-border-color: var(--bs-primary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-primary-border-subtle);--bs-list-group-active-color: var(--bs-primary-bg-subtle);--bs-list-group-active-bg: var(--bs-primary-text-emphasis);--bs-list-group-active-border-color: var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color: var(--bs-secondary-text-emphasis);--bs-list-group-bg: var(--bs-secondary-bg-subtle);--bs-list-group-border-color: var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);--bs-list-group-active-color: var(--bs-secondary-bg-subtle);--bs-list-group-active-bg: var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color: var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color: var(--bs-success-text-emphasis);--bs-list-group-bg: var(--bs-success-bg-subtle);--bs-list-group-border-color: var(--bs-success-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-success-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-success-border-subtle);--bs-list-group-active-color: var(--bs-success-bg-subtle);--bs-list-group-active-bg: var(--bs-success-text-emphasis);--bs-list-group-active-border-color: var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color: var(--bs-info-text-emphasis);--bs-list-group-bg: var(--bs-info-bg-subtle);--bs-list-group-border-color: var(--bs-info-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-info-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-info-border-subtle);--bs-list-group-active-color: var(--bs-info-bg-subtle);--bs-list-group-active-bg: var(--bs-info-text-emphasis);--bs-list-group-active-border-color: var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color: var(--bs-warning-text-emphasis);--bs-list-group-bg: var(--bs-warning-bg-subtle);--bs-list-group-border-color: var(--bs-warning-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-warning-border-subtle);--bs-list-group-active-color: var(--bs-warning-bg-subtle);--bs-list-group-active-bg: var(--bs-warning-text-emphasis);--bs-list-group-active-border-color: var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color: var(--bs-danger-text-emphasis);--bs-list-group-bg: var(--bs-danger-bg-subtle);--bs-list-group-border-color: var(--bs-danger-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-danger-border-subtle);--bs-list-group-active-color: var(--bs-danger-bg-subtle);--bs-list-group-active-bg: var(--bs-danger-text-emphasis);--bs-list-group-active-border-color: var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color: var(--bs-light-text-emphasis);--bs-list-group-bg: var(--bs-light-bg-subtle);--bs-list-group-border-color: var(--bs-light-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-light-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-light-border-subtle);--bs-list-group-active-color: var(--bs-light-bg-subtle);--bs-list-group-active-bg: var(--bs-light-text-emphasis);--bs-list-group-active-border-color: var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color: var(--bs-dark-text-emphasis);--bs-list-group-bg: var(--bs-dark-bg-subtle);--bs-list-group-border-color: var(--bs-dark-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-dark-border-subtle);--bs-list-group-active-color: var(--bs-dark-bg-subtle);--bs-list-group-active-bg: var(--bs-dark-text-emphasis);--bs-list-group-active-border-color: var(--bs-dark-text-emphasis)}.modal{--bs-modal-zindex: 1055;--bs-modal-width: 500px;--bs-modal-padding: 1rem;--bs-modal-margin: .5rem;--bs-modal-color: ;--bs-modal-bg: var(--bs-body-bg);--bs-modal-border-color: var(--bs-border-color-translucent);--bs-modal-border-width: 0;--bs-modal-border-radius: var(--bs-border-radius-lg);--bs-modal-box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075);--bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - 0);--bs-modal-header-padding-x: 1rem;--bs-modal-header-padding-y: 1rem;--bs-modal-header-padding: 1rem 1rem;--bs-modal-header-border-color: var(--bs-border-color);--bs-modal-header-border-width: 0;--bs-modal-title-line-height: 1.5;--bs-modal-footer-gap: .5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color: var(--bs-border-color);--bs-modal-footer-border-width: 0;position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex: 1050;--bs-backdrop-bg: #000;--bs-backdrop-opacity: .25;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close,.modal-header .close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width: 576px){.modal{--bs-modal-margin: 1.75rem;--bs-modal-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width: 300px}}@media (min-width: 992px){.modal-lg,.modal-xl{--bs-modal-width: 800px}}@media (min-width: 1200px){.modal-xl{--bs-modal-width: 1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header,.modal-fullscreen .modal-footer{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header,.modal-fullscreen-sm-down .modal-footer{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header,.modal-fullscreen-md-down .modal-footer{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header,.modal-fullscreen-lg-down .modal-footer{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header,.modal-fullscreen-xl-down .modal-footer{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header,.modal-fullscreen-xxl-down .modal-footer{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.nav{--bs-nav-link-padding-x: 1rem;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--primary-hsl);--bs-nav-link-hover-color: hsl(var(--primary-h), var(--primary-s), calc(var(--primary-l) + 10%));--bs-nav-link-disabled-color: var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;background:none;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link.multiselect__option--highlight,.nav-link:focus,.SharpFilterSelect--open .nav-link.form-control,.SharpUpload .dz-drag-hover .nav-link.SharpUpload__browse{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem #004c9b40}.nav-link.disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width: var(--bs-border-width);--bs-nav-tabs-border-color: var(--bs-border-color);--bs-nav-tabs-border-radius: var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color: var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg: var(--bs-body-bg);--bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:hover,.nav-tabs .nav-link.multiselect__option--highlight,.nav-tabs .nav-link:focus,.nav-tabs .SharpFilterSelect--open .nav-link.form-control,.SharpFilterSelect--open .nav-tabs .nav-link.form-control,.nav-tabs .SharpUpload .dz-drag-hover .nav-link.SharpUpload__browse,.SharpUpload .dz-drag-hover .nav-tabs .nav-link.SharpUpload__browse{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.disabled,.nav-tabs .nav-link:disabled{color:var(--bs-nav-link-disabled-color);background-color:transparent;border-color:transparent}.nav-tabs .nav-link.active,.nav-tabs .SharpTrix .nav-link.btn.trix-active,.SharpTrix .nav-tabs .nav-link.btn.trix-active,.nav-tabs .nav-link.multiselect__option--selected,.nav-tabs .nav-item.show .nav-link{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu,.nav-tabs .multiselect .multiselect__content,.multiselect .nav-tabs .multiselect__content{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius: var(--bs-border-radius);--bs-nav-pills-link-active-color: var(--component-active-color);--bs-nav-pills-link-active-bg: var(--component-active-bg)}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link:disabled{color:var(--bs-nav-link-disabled-color);background-color:transparent;border-color:transparent}.nav-pills .nav-link.active,.nav-pills .SharpTrix .nav-link.btn.trix-active,.SharpTrix .nav-pills .nav-link.btn.trix-active,.nav-pills .nav-link.multiselect__option--selected,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap: 1rem;--bs-nav-underline-border-width: .125rem;--bs-nav-underline-link-active-color: var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:hover,.nav-underline .nav-link.multiselect__option--highlight,.nav-underline .nav-link:focus,.nav-underline .SharpFilterSelect--open .nav-link.form-control,.SharpFilterSelect--open .nav-underline .nav-link.form-control,.nav-underline .SharpUpload .dz-drag-hover .nav-link.SharpUpload__browse,.SharpUpload .dz-drag-hover .nav-underline .nav-link.SharpUpload__browse{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .SharpTrix .nav-link.btn.trix-active,.SharpTrix .nav-underline .nav-link.btn.trix-active,.nav-underline .nav-link.multiselect__option--selected,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active,.SharpTrix .tab-content>.btn.trix-active,.tab-content>.multiselect__option--selected{display:block}.pagination{--bs-pagination-padding-x: .75rem;--bs-pagination-padding-y: .375rem;--bs-pagination-font-size: 1rem;--bs-pagination-color: var(--bs-link-color);--bs-pagination-bg: var(--bs-body-bg);--bs-pagination-border-width: var(--bs-border-width);--bs-pagination-border-color: var(--bs-border-color);--bs-pagination-border-radius: var(--bs-border-radius);--bs-pagination-hover-color: var(--bs-link-hover-color);--bs-pagination-hover-bg: var(--bs-tertiary-bg);--bs-pagination-hover-border-color: var(--bs-border-color);--bs-pagination-focus-color: var(--bs-link-hover-color);--bs-pagination-focus-bg: var(--bs-secondary-bg);--bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(0, 76, 155, .25);--bs-pagination-active-color: var(--component-active-color);--bs-pagination-active-bg: var(--component-active-bg);--bs-pagination-active-border-color: #004c9b;--bs-pagination-disabled-color: var(--bs-secondary-color);--bs-pagination-disabled-bg: var(--bs-secondary-bg);--bs-pagination-disabled-border-color: var(--bs-border-color);display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover,.page-link.multiselect__option--highlight{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus,.SharpFilterSelect--open .page-link.form-control,.SharpUpload .dz-drag-hover .page-link.SharpUpload__browse{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.page-link.active,.SharpTrix .page-link.btn.trix-active,.page-link.multiselect__option--selected,.active>.page-link,.SharpTrix .btn.trix-active>.page-link,.multiselect__option--selected>.page-link{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.page-link.disabled,.disabled>.page-link{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(var(--bs-border-width) * -1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x: 1.5rem;--bs-pagination-padding-y: .75rem;--bs-pagination-font-size: 1.25rem;--bs-pagination-border-radius: var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x: .5rem;--bs-pagination-padding-y: .25rem;--bs-pagination-font-size: .875rem;--bs-pagination-border-radius: var(--bs-border-radius-sm)}.popover{--bs-popover-zindex: 1070;--bs-popover-max-width: 276px;--bs-popover-font-size: .875rem;--bs-popover-bg: var(--bs-body-bg);--bs-popover-border-width: var(--bs-border-width);--bs-popover-border-color: var(--bs-border-color-translucent);--bs-popover-border-radius: var(--bs-border-radius-lg);--bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);--bs-popover-header-padding-x: 1rem;--bs-popover-header-padding-y: .5rem;--bs-popover-header-font-size: 1rem;--bs-popover-header-color: inherit;--bs-popover-header-bg: var(--bs-secondary-bg);--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: 1rem;--bs-popover-body-color: var(--bs-body-color);--bs-popover-arrow-width: 1rem;--bs-popover-arrow-height: .5rem;--bs-popover-arrow-border: var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow:before,.popover .popover-arrow:after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-top>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-top>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-top>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-end>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-end>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-end>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-bottom>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-bottom>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-bottom>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-bottom .popover-header:before,.bs-popover-auto[data-popper-placement^=bottom] .popover-header:before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-start>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-start>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-start>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.spinner-grow,.spinner-border{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-border-width: .2em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width: 1.25rem;--bs-spinner-height: 1.25rem;--bs-spinner-border-width: .15em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width: 1.25rem;--bs-spinner-height: 1.25rem}@media (prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed: 1.5s}}.toast{--bs-toast-zindex: 1090;--bs-toast-padding-x: .75rem;--bs-toast-padding-y: .5rem;--bs-toast-spacing: 1.5rem;--bs-toast-max-width: 350px;--bs-toast-font-size: .875rem;--bs-toast-color: ;--bs-toast-bg: rgba(var(--bs-body-bg-rgb), .85);--bs-toast-border-width: var(--bs-border-width);--bs-toast-border-color: var(--bs-border-color-translucent);--bs-toast-border-radius: var(--bs-border-radius);--bs-toast-box-shadow: var(--bs-box-shadow);--bs-toast-header-color: #444c55;--bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), .85);--bs-toast-header-border-color: var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex: 1090;position:absolute;z-index:var(--bs-toast-zindex);width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close,.toast-header .close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.tooltip{--bs-tooltip-zindex: 1080;--bs-tooltip-max-width: 200px;--bs-tooltip-padding-x: .5rem;--bs-tooltip-padding-y: .25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size: .875rem;--bs-tooltip-color: var(--bs-body-bg);--bs-tooltip-bg: var(--bs-emphasis-color);--bs-tooltip-border-radius: var(--bs-border-radius);--bs-tooltip-opacity: .9;--bs-tooltip-arrow-width: .8rem;--bs-tooltip-arrow-height: .4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-top .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-end .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-bottom .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-start .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.table{--bs-table-color-type: initial;--bs-table-bg-type: initial;--bs-table-color-state: initial;--bs-table-bg-state: initial;--bs-table-color: var(--bs-body-color);--bs-table-bg: var(--bs-body-bg);--bs-table-border-color: var(--bs-border-color);--bs-table-accent-bg: transparent;--bs-table-striped-color: var(--bs-body-color);--bs-table-striped-bg: rgba(0, 0, 0, .05);--bs-table-active-color: var(--bs-body-color);--bs-table-active-bg: rgba(0, 0, 0, .1);--bs-table-hover-color: var(--bs-body-color);--bs-table-hover-bg: rgba(0, 0, 0, .075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem;color:var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(even){--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-active{--bs-table-color-state: var(--bs-table-active-color);--bs-table-bg-state: var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*,.table-hover>tbody>tr.multiselect__option--highlight>*{--bs-table-color-state: var(--bs-table-hover-color);--bs-table-bg-state: var(--bs-table-hover-bg)}.table-primary{--bs-table-color: #000;--bs-table-bg: #ccdbeb;--bs-table-border-color: #b8c5d4;--bs-table-striped-bg: #c2d0df;--bs-table-striped-color: #000;--bs-table-active-bg: #b8c5d4;--bs-table-active-color: #000;--bs-table-hover-bg: #bdcbd9;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color: #000;--bs-table-bg: #e2e3e5;--bs-table-border-color: #cbccce;--bs-table-striped-bg: #d7d8da;--bs-table-striped-color: #000;--bs-table-active-bg: #cbccce;--bs-table-active-color: #000;--bs-table-hover-bg: #d1d2d4;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color: #000;--bs-table-bg: #d8f3d3;--bs-table-border-color: #c2dbbe;--bs-table-striped-bg: #cde7c8;--bs-table-striped-color: #000;--bs-table-active-bg: #c2dbbe;--bs-table-active-color: #000;--bs-table-hover-bg: #c8e1c3;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color: #000;--bs-table-bg: #deeefe;--bs-table-border-color: #c8d6e5;--bs-table-striped-bg: #d3e2f1;--bs-table-striped-color: #000;--bs-table-active-bg: #c8d6e5;--bs-table-active-color: #000;--bs-table-hover-bg: #cddceb;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color: #000;--bs-table-bg: #fff3cd;--bs-table-border-color: #e6dbb9;--bs-table-striped-bg: #f2e7c3;--bs-table-striped-color: #000;--bs-table-active-bg: #e6dbb9;--bs-table-active-color: #000;--bs-table-hover-bg: #ece1be;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color: #000;--bs-table-bg: #f8d7da;--bs-table-border-color: #dfc2c4;--bs-table-striped-bg: #eccccf;--bs-table-striped-color: #000;--bs-table-active-bg: #dfc2c4;--bs-table-active-color: #000;--bs-table-hover-bg: #e5c7ca;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color: #000;--bs-table-bg: #f8f9fa;--bs-table-border-color: #dfe0e1;--bs-table-striped-bg: #ecedee;--bs-table-striped-color: #000;--bs-table-active-bg: #dfe0e1;--bs-table-active-color: #000;--bs-table-hover-bg: #e5e6e7;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color: #fff;--bs-table-bg: #212529;--bs-table-border-color: #373b3e;--bs-table-striped-bg: #2c3034;--bs-table-striped-color: #fff;--bs-table-active-bg: #373b3e;--bs-table-active-color: #fff;--bs-table-hover-bg: #323539;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{object-fit:contain!important}.object-fit-cover{object-fit:cover!important}.object-fit-fill{object-fit:fill!important}.object-fit-scale{object-fit:scale-down!important}.object-fit-none{object-fit:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-visible{overflow-y:visible!important}.overflow-y-scroll{overflow-y:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem #00000026!important}.shadow-sm{box-shadow:0 .125rem .25rem #00000013!important}.shadow-lg{box-shadow:0 1rem 3rem #0000002d!important}.shadow-none{box-shadow:none!important}.focus-ring-primary{--bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translate(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-left:0!important}.border-primary{--bs-border-opacity: 1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))!important}.border-secondary{--bs-border-opacity: 1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.border-success{--bs-border-opacity: 1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important}.border-info{--bs-border-opacity: 1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))!important}.border-warning{--bs-border-opacity: 1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))!important}.border-danger{--bs-border-opacity: 1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))!important}.border-light{--bs-border-opacity: 1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))!important}.border-dark{--bs-border-opacity: 1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))!important}.border-black{--bs-border-opacity: 1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity: 1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--bs-success-border-subtle)!important}.border-info-subtle{border-color:var(--bs-info-border-subtle)!important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)!important}.border-light-subtle{border-color:var(--bs-light-border-subtle)!important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--bs-border-opacity: .1}.border-opacity-25{--bs-border-opacity: .25}.border-opacity-50{--bs-border-opacity: .5}.border-opacity-75{--bs-border-opacity: .75}.border-opacity-100{--bs-border-opacity: 1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-4\.5{margin:2rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-4\.5{margin-right:2rem!important;margin-left:2rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-4\.5{margin-top:2rem!important;margin-bottom:2rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-4\.5{margin-top:2rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-4\.5{margin-right:2rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-4\.5{margin-bottom:2rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-4\.5{margin-left:2rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.m-n1{margin:-.25rem!important}.m-n2{margin:-.5rem!important}.m-n3{margin:-1rem!important}.m-n4{margin:-1.5rem!important}.m-n4\.5{margin:-2rem!important}.m-n5{margin:-3rem!important}.mx-n1{margin-right:-.25rem!important;margin-left:-.25rem!important}.mx-n2{margin-right:-.5rem!important;margin-left:-.5rem!important}.mx-n3{margin-right:-1rem!important;margin-left:-1rem!important}.mx-n4{margin-right:-1.5rem!important;margin-left:-1.5rem!important}.mx-n4\.5{margin-right:-2rem!important;margin-left:-2rem!important}.mx-n5{margin-right:-3rem!important;margin-left:-3rem!important}.my-n1{margin-top:-.25rem!important;margin-bottom:-.25rem!important}.my-n2{margin-top:-.5rem!important;margin-bottom:-.5rem!important}.my-n3{margin-top:-1rem!important;margin-bottom:-1rem!important}.my-n4{margin-top:-1.5rem!important;margin-bottom:-1.5rem!important}.my-n4\.5{margin-top:-2rem!important;margin-bottom:-2rem!important}.my-n5{margin-top:-3rem!important;margin-bottom:-3rem!important}.mt-n1{margin-top:-.25rem!important}.mt-n2{margin-top:-.5rem!important}.mt-n3{margin-top:-1rem!important}.mt-n4{margin-top:-1.5rem!important}.mt-n4\.5{margin-top:-2rem!important}.mt-n5{margin-top:-3rem!important}.me-n1{margin-right:-.25rem!important}.me-n2{margin-right:-.5rem!important}.me-n3{margin-right:-1rem!important}.me-n4{margin-right:-1.5rem!important}.me-n4\.5{margin-right:-2rem!important}.me-n5{margin-right:-3rem!important}.mb-n1{margin-bottom:-.25rem!important}.mb-n2{margin-bottom:-.5rem!important}.mb-n3{margin-bottom:-1rem!important}.mb-n4{margin-bottom:-1.5rem!important}.mb-n4\.5{margin-bottom:-2rem!important}.mb-n5{margin-bottom:-3rem!important}.ms-n1{margin-left:-.25rem!important}.ms-n2{margin-left:-.5rem!important}.ms-n3{margin-left:-1rem!important}.ms-n4{margin-left:-1.5rem!important}.ms-n4\.5{margin-left:-2rem!important}.ms-n5{margin-left:-3rem!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-4\.5{padding:2rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-4\.5{padding-right:2rem!important;padding-left:2rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-4\.5{padding-top:2rem!important;padding-bottom:2rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-4\.5{padding-top:2rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-4\.5{padding-right:2rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-4\.5{padding-bottom:2rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-4\.5{padding-left:2rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-4\.5{gap:2rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-4\.5{row-gap:2rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{column-gap:0!important}.column-gap-1{column-gap:.25rem!important}.column-gap-2{column-gap:.5rem!important}.column-gap-3{column-gap:1rem!important}.column-gap-4{column-gap:1.5rem!important}.column-gap-4\.5{column-gap:2rem!important}.column-gap-5{column-gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fs-7{font-size:.875rem!important}.fs-8{font-size:.75rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-lighter{font-weight:lighter!important}.fw-light{font-weight:300!important}.fw-normal{font-weight:400!important}.fw-medium{font-weight:500!important}.fw-semibold{font-weight:600!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity: 1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity: 1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity: 1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity: 1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity: 1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity: 1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity: 1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity: 1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity: 1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity: 1;color:var(--bs-secondary-color)!important}.text-black-50{--bs-text-opacity: 1;color:#00000080!important}.text-white-50{--bs-text-opacity: 1;color:#ffffff80!important}.text-body-secondary{--bs-text-opacity: 1;color:var(--bs-secondary-color)!important}.text-body-tertiary{--bs-text-opacity: 1;color:var(--bs-tertiary-color)!important}.text-body-emphasis{--bs-text-opacity: 1;color:var(--bs-emphasis-color)!important}.text-reset{--bs-text-opacity: 1;color:inherit!important}.text-opacity-25{--bs-text-opacity: .25}.text-opacity-50{--bs-text-opacity: .5}.text-opacity-75{--bs-text-opacity: .75}.text-opacity-100{--bs-text-opacity: 1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis)!important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--bs-success-text-emphasis)!important}.text-info-emphasis{color:var(--bs-info-text-emphasis)!important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)!important}.text-light-emphasis{color:var(--bs-light-text-emphasis)!important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)!important}.link-opacity-10,.link-opacity-10-hover:hover,.link-opacity-10-hover.multiselect__option--highlight{--bs-link-opacity: .1}.link-opacity-25,.link-opacity-25-hover:hover,.link-opacity-25-hover.multiselect__option--highlight{--bs-link-opacity: .25}.link-opacity-50,.link-opacity-50-hover:hover,.link-opacity-50-hover.multiselect__option--highlight{--bs-link-opacity: .5}.link-opacity-75,.link-opacity-75-hover:hover,.link-opacity-75-hover.multiselect__option--highlight{--bs-link-opacity: .75}.link-opacity-100,.link-opacity-100-hover:hover,.link-opacity-100-hover.multiselect__option--highlight{--bs-link-opacity: 1}.link-offset-1,.link-offset-1-hover:hover,.link-offset-1-hover.multiselect__option--highlight{text-underline-offset:.125em!important}.link-offset-2,.link-offset-2-hover:hover,.link-offset-2-hover.multiselect__option--highlight{text-underline-offset:.25em!important}.link-offset-3,.link-offset-3-hover:hover,.link-offset-3-hover.multiselect__option--highlight{text-underline-offset:.375em!important}.link-underline-primary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity, 1))!important}.link-underline-opacity-0,.link-underline-opacity-0-hover:hover,.link-underline-opacity-0-hover.multiselect__option--highlight{--bs-link-underline-opacity: 0}.link-underline-opacity-10,.link-underline-opacity-10-hover:hover,.link-underline-opacity-10-hover.multiselect__option--highlight{--bs-link-underline-opacity: .1}.link-underline-opacity-25,.link-underline-opacity-25-hover:hover,.link-underline-opacity-25-hover.multiselect__option--highlight{--bs-link-underline-opacity: .25}.link-underline-opacity-50,.link-underline-opacity-50-hover:hover,.link-underline-opacity-50-hover.multiselect__option--highlight{--bs-link-underline-opacity: .5}.link-underline-opacity-75,.link-underline-opacity-75-hover:hover,.link-underline-opacity-75-hover.multiselect__option--highlight{--bs-link-underline-opacity: .75}.link-underline-opacity-100,.link-underline-opacity-100-hover:hover,.link-underline-opacity-100-hover.multiselect__option--highlight{--bs-link-underline-opacity: 1}.bg-primary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity: 1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity: 1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity: 1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity: 1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity: 1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity: 1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity: 1;background-color:transparent!important}.bg-body-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-bg-rgb),var(--bs-bg-opacity))!important}.bg-body-tertiary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-tertiary-bg-rgb),var(--bs-bg-opacity))!important}.bg-opacity-10{--bs-bg-opacity: .1}.bg-opacity-25{--bs-bg-opacity: .25}.bg-opacity-50{--bs-bg-opacity: .5}.bg-opacity-75{--bs-bg-opacity: .75}.bg-opacity-100{--bs-bg-opacity: 1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle)!important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle)!important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle)!important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle)!important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle)!important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle)!important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle)!important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle)!important}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl)!important;border-top-right-radius:var(--bs-border-radius-xxl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill)!important;border-top-right-radius:var(--bs-border-radius-pill)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm)!important;border-bottom-right-radius:var(--bs-border-radius-sm)!important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg)!important;border-bottom-right-radius:var(--bs-border-radius-lg)!important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl)!important;border-bottom-right-radius:var(--bs-border-radius-xl)!important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-right-radius:var(--bs-border-radius-xxl)!important}.rounded-end-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill)!important;border-bottom-right-radius:var(--bs-border-radius-pill)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-0{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm)!important;border-bottom-left-radius:var(--bs-border-radius-sm)!important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg)!important;border-bottom-left-radius:var(--bs-border-radius-lg)!important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl)!important;border-bottom-left-radius:var(--bs-border-radius-xl)!important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-left-radius:var(--bs-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-right-radius:50%!important;border-bottom-left-radius:50%!important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill)!important;border-bottom-left-radius:var(--bs-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm)!important;border-top-left-radius:var(--bs-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-top-left-radius:var(--bs-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-top-left-radius:var(--bs-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl)!important;border-top-left-radius:var(--bs-border-radius-xxl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill)!important;border-top-left-radius:var(--bs-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-n1{z-index:-1!important}.z-0{z-index:0!important}.z-1{z-index:1!important}.z-2{z-index:2!important}.z-3{z-index:3!important}@media (min-width: 576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{object-fit:contain!important}.object-fit-sm-cover{object-fit:cover!important}.object-fit-sm-fill{object-fit:fill!important}.object-fit-sm-scale{object-fit:scale-down!important}.object-fit-sm-none{object-fit:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-4\.5{margin:2rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-4\.5{margin-right:2rem!important;margin-left:2rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-4\.5{margin-top:2rem!important;margin-bottom:2rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-4\.5{margin-top:2rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-4\.5{margin-right:2rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-4\.5{margin-bottom:2rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-4\.5{margin-left:2rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.m-sm-n1{margin:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.m-sm-n3{margin:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.m-sm-n4\.5{margin:-2rem!important}.m-sm-n5{margin:-3rem!important}.mx-sm-n1{margin-right:-.25rem!important;margin-left:-.25rem!important}.mx-sm-n2{margin-right:-.5rem!important;margin-left:-.5rem!important}.mx-sm-n3{margin-right:-1rem!important;margin-left:-1rem!important}.mx-sm-n4{margin-right:-1.5rem!important;margin-left:-1.5rem!important}.mx-sm-n4\.5{margin-right:-2rem!important;margin-left:-2rem!important}.mx-sm-n5{margin-right:-3rem!important;margin-left:-3rem!important}.my-sm-n1{margin-top:-.25rem!important;margin-bottom:-.25rem!important}.my-sm-n2{margin-top:-.5rem!important;margin-bottom:-.5rem!important}.my-sm-n3{margin-top:-1rem!important;margin-bottom:-1rem!important}.my-sm-n4{margin-top:-1.5rem!important;margin-bottom:-1.5rem!important}.my-sm-n4\.5{margin-top:-2rem!important;margin-bottom:-2rem!important}.my-sm-n5{margin-top:-3rem!important;margin-bottom:-3rem!important}.mt-sm-n1{margin-top:-.25rem!important}.mt-sm-n2{margin-top:-.5rem!important}.mt-sm-n3{margin-top:-1rem!important}.mt-sm-n4{margin-top:-1.5rem!important}.mt-sm-n4\.5{margin-top:-2rem!important}.mt-sm-n5{margin-top:-3rem!important}.me-sm-n1{margin-right:-.25rem!important}.me-sm-n2{margin-right:-.5rem!important}.me-sm-n3{margin-right:-1rem!important}.me-sm-n4{margin-right:-1.5rem!important}.me-sm-n4\.5{margin-right:-2rem!important}.me-sm-n5{margin-right:-3rem!important}.mb-sm-n1{margin-bottom:-.25rem!important}.mb-sm-n2{margin-bottom:-.5rem!important}.mb-sm-n3{margin-bottom:-1rem!important}.mb-sm-n4{margin-bottom:-1.5rem!important}.mb-sm-n4\.5{margin-bottom:-2rem!important}.mb-sm-n5{margin-bottom:-3rem!important}.ms-sm-n1{margin-left:-.25rem!important}.ms-sm-n2{margin-left:-.5rem!important}.ms-sm-n3{margin-left:-1rem!important}.ms-sm-n4{margin-left:-1.5rem!important}.ms-sm-n4\.5{margin-left:-2rem!important}.ms-sm-n5{margin-left:-3rem!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-4\.5{padding:2rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-4\.5{padding-right:2rem!important;padding-left:2rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-4\.5{padding-top:2rem!important;padding-bottom:2rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-4\.5{padding-top:2rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-4\.5{padding-right:2rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-4\.5{padding-bottom:2rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-4\.5{padding-left:2rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-4\.5{gap:2rem!important}.gap-sm-5{gap:3rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-4\.5{row-gap:2rem!important}.row-gap-sm-5{row-gap:3rem!important}.column-gap-sm-0{column-gap:0!important}.column-gap-sm-1{column-gap:.25rem!important}.column-gap-sm-2{column-gap:.5rem!important}.column-gap-sm-3{column-gap:1rem!important}.column-gap-sm-4{column-gap:1.5rem!important}.column-gap-sm-4\.5{column-gap:2rem!important}.column-gap-sm-5{column-gap:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width: 768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.object-fit-md-contain{object-fit:contain!important}.object-fit-md-cover{object-fit:cover!important}.object-fit-md-fill{object-fit:fill!important}.object-fit-md-scale{object-fit:scale-down!important}.object-fit-md-none{object-fit:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-4\.5{margin:2rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-4\.5{margin-right:2rem!important;margin-left:2rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-4\.5{margin-top:2rem!important;margin-bottom:2rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-4\.5{margin-top:2rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-4\.5{margin-right:2rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-4\.5{margin-bottom:2rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-4\.5{margin-left:2rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.m-md-n1{margin:-.25rem!important}.m-md-n2{margin:-.5rem!important}.m-md-n3{margin:-1rem!important}.m-md-n4{margin:-1.5rem!important}.m-md-n4\.5{margin:-2rem!important}.m-md-n5{margin:-3rem!important}.mx-md-n1{margin-right:-.25rem!important;margin-left:-.25rem!important}.mx-md-n2{margin-right:-.5rem!important;margin-left:-.5rem!important}.mx-md-n3{margin-right:-1rem!important;margin-left:-1rem!important}.mx-md-n4{margin-right:-1.5rem!important;margin-left:-1.5rem!important}.mx-md-n4\.5{margin-right:-2rem!important;margin-left:-2rem!important}.mx-md-n5{margin-right:-3rem!important;margin-left:-3rem!important}.my-md-n1{margin-top:-.25rem!important;margin-bottom:-.25rem!important}.my-md-n2{margin-top:-.5rem!important;margin-bottom:-.5rem!important}.my-md-n3{margin-top:-1rem!important;margin-bottom:-1rem!important}.my-md-n4{margin-top:-1.5rem!important;margin-bottom:-1.5rem!important}.my-md-n4\.5{margin-top:-2rem!important;margin-bottom:-2rem!important}.my-md-n5{margin-top:-3rem!important;margin-bottom:-3rem!important}.mt-md-n1{margin-top:-.25rem!important}.mt-md-n2{margin-top:-.5rem!important}.mt-md-n3{margin-top:-1rem!important}.mt-md-n4{margin-top:-1.5rem!important}.mt-md-n4\.5{margin-top:-2rem!important}.mt-md-n5{margin-top:-3rem!important}.me-md-n1{margin-right:-.25rem!important}.me-md-n2{margin-right:-.5rem!important}.me-md-n3{margin-right:-1rem!important}.me-md-n4{margin-right:-1.5rem!important}.me-md-n4\.5{margin-right:-2rem!important}.me-md-n5{margin-right:-3rem!important}.mb-md-n1{margin-bottom:-.25rem!important}.mb-md-n2{margin-bottom:-.5rem!important}.mb-md-n3{margin-bottom:-1rem!important}.mb-md-n4{margin-bottom:-1.5rem!important}.mb-md-n4\.5{margin-bottom:-2rem!important}.mb-md-n5{margin-bottom:-3rem!important}.ms-md-n1{margin-left:-.25rem!important}.ms-md-n2{margin-left:-.5rem!important}.ms-md-n3{margin-left:-1rem!important}.ms-md-n4{margin-left:-1.5rem!important}.ms-md-n4\.5{margin-left:-2rem!important}.ms-md-n5{margin-left:-3rem!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-4\.5{padding:2rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-4\.5{padding-right:2rem!important;padding-left:2rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-4\.5{padding-top:2rem!important;padding-bottom:2rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-4\.5{padding-top:2rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-4\.5{padding-right:2rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-4\.5{padding-bottom:2rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-4\.5{padding-left:2rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-4\.5{gap:2rem!important}.gap-md-5{gap:3rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-4\.5{row-gap:2rem!important}.row-gap-md-5{row-gap:3rem!important}.column-gap-md-0{column-gap:0!important}.column-gap-md-1{column-gap:.25rem!important}.column-gap-md-2{column-gap:.5rem!important}.column-gap-md-3{column-gap:1rem!important}.column-gap-md-4{column-gap:1.5rem!important}.column-gap-md-4\.5{column-gap:2rem!important}.column-gap-md-5{column-gap:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width: 992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.object-fit-lg-contain{object-fit:contain!important}.object-fit-lg-cover{object-fit:cover!important}.object-fit-lg-fill{object-fit:fill!important}.object-fit-lg-scale{object-fit:scale-down!important}.object-fit-lg-none{object-fit:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-4\.5{margin:2rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-4\.5{margin-right:2rem!important;margin-left:2rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-4\.5{margin-top:2rem!important;margin-bottom:2rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-4\.5{margin-top:2rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-4\.5{margin-right:2rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-4\.5{margin-bottom:2rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-4\.5{margin-left:2rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.m-lg-n1{margin:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.m-lg-n3{margin:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.m-lg-n4\.5{margin:-2rem!important}.m-lg-n5{margin:-3rem!important}.mx-lg-n1{margin-right:-.25rem!important;margin-left:-.25rem!important}.mx-lg-n2{margin-right:-.5rem!important;margin-left:-.5rem!important}.mx-lg-n3{margin-right:-1rem!important;margin-left:-1rem!important}.mx-lg-n4{margin-right:-1.5rem!important;margin-left:-1.5rem!important}.mx-lg-n4\.5{margin-right:-2rem!important;margin-left:-2rem!important}.mx-lg-n5{margin-right:-3rem!important;margin-left:-3rem!important}.my-lg-n1{margin-top:-.25rem!important;margin-bottom:-.25rem!important}.my-lg-n2{margin-top:-.5rem!important;margin-bottom:-.5rem!important}.my-lg-n3{margin-top:-1rem!important;margin-bottom:-1rem!important}.my-lg-n4{margin-top:-1.5rem!important;margin-bottom:-1.5rem!important}.my-lg-n4\.5{margin-top:-2rem!important;margin-bottom:-2rem!important}.my-lg-n5{margin-top:-3rem!important;margin-bottom:-3rem!important}.mt-lg-n1{margin-top:-.25rem!important}.mt-lg-n2{margin-top:-.5rem!important}.mt-lg-n3{margin-top:-1rem!important}.mt-lg-n4{margin-top:-1.5rem!important}.mt-lg-n4\.5{margin-top:-2rem!important}.mt-lg-n5{margin-top:-3rem!important}.me-lg-n1{margin-right:-.25rem!important}.me-lg-n2{margin-right:-.5rem!important}.me-lg-n3{margin-right:-1rem!important}.me-lg-n4{margin-right:-1.5rem!important}.me-lg-n4\.5{margin-right:-2rem!important}.me-lg-n5{margin-right:-3rem!important}.mb-lg-n1{margin-bottom:-.25rem!important}.mb-lg-n2{margin-bottom:-.5rem!important}.mb-lg-n3{margin-bottom:-1rem!important}.mb-lg-n4{margin-bottom:-1.5rem!important}.mb-lg-n4\.5{margin-bottom:-2rem!important}.mb-lg-n5{margin-bottom:-3rem!important}.ms-lg-n1{margin-left:-.25rem!important}.ms-lg-n2{margin-left:-.5rem!important}.ms-lg-n3{margin-left:-1rem!important}.ms-lg-n4{margin-left:-1.5rem!important}.ms-lg-n4\.5{margin-left:-2rem!important}.ms-lg-n5{margin-left:-3rem!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-4\.5{padding:2rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-4\.5{padding-right:2rem!important;padding-left:2rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-4\.5{padding-top:2rem!important;padding-bottom:2rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-4\.5{padding-top:2rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-4\.5{padding-right:2rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-4\.5{padding-bottom:2rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-4\.5{padding-left:2rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-4\.5{gap:2rem!important}.gap-lg-5{gap:3rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-4\.5{row-gap:2rem!important}.row-gap-lg-5{row-gap:3rem!important}.column-gap-lg-0{column-gap:0!important}.column-gap-lg-1{column-gap:.25rem!important}.column-gap-lg-2{column-gap:.5rem!important}.column-gap-lg-3{column-gap:1rem!important}.column-gap-lg-4{column-gap:1.5rem!important}.column-gap-lg-4\.5{column-gap:2rem!important}.column-gap-lg-5{column-gap:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width: 1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.object-fit-xl-contain{object-fit:contain!important}.object-fit-xl-cover{object-fit:cover!important}.object-fit-xl-fill{object-fit:fill!important}.object-fit-xl-scale{object-fit:scale-down!important}.object-fit-xl-none{object-fit:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-4\.5{margin:2rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-4\.5{margin-right:2rem!important;margin-left:2rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-4\.5{margin-top:2rem!important;margin-bottom:2rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-4\.5{margin-top:2rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-4\.5{margin-right:2rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-4\.5{margin-bottom:2rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-4\.5{margin-left:2rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.m-xl-n1{margin:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.m-xl-n3{margin:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.m-xl-n4\.5{margin:-2rem!important}.m-xl-n5{margin:-3rem!important}.mx-xl-n1{margin-right:-.25rem!important;margin-left:-.25rem!important}.mx-xl-n2{margin-right:-.5rem!important;margin-left:-.5rem!important}.mx-xl-n3{margin-right:-1rem!important;margin-left:-1rem!important}.mx-xl-n4{margin-right:-1.5rem!important;margin-left:-1.5rem!important}.mx-xl-n4\.5{margin-right:-2rem!important;margin-left:-2rem!important}.mx-xl-n5{margin-right:-3rem!important;margin-left:-3rem!important}.my-xl-n1{margin-top:-.25rem!important;margin-bottom:-.25rem!important}.my-xl-n2{margin-top:-.5rem!important;margin-bottom:-.5rem!important}.my-xl-n3{margin-top:-1rem!important;margin-bottom:-1rem!important}.my-xl-n4{margin-top:-1.5rem!important;margin-bottom:-1.5rem!important}.my-xl-n4\.5{margin-top:-2rem!important;margin-bottom:-2rem!important}.my-xl-n5{margin-top:-3rem!important;margin-bottom:-3rem!important}.mt-xl-n1{margin-top:-.25rem!important}.mt-xl-n2{margin-top:-.5rem!important}.mt-xl-n3{margin-top:-1rem!important}.mt-xl-n4{margin-top:-1.5rem!important}.mt-xl-n4\.5{margin-top:-2rem!important}.mt-xl-n5{margin-top:-3rem!important}.me-xl-n1{margin-right:-.25rem!important}.me-xl-n2{margin-right:-.5rem!important}.me-xl-n3{margin-right:-1rem!important}.me-xl-n4{margin-right:-1.5rem!important}.me-xl-n4\.5{margin-right:-2rem!important}.me-xl-n5{margin-right:-3rem!important}.mb-xl-n1{margin-bottom:-.25rem!important}.mb-xl-n2{margin-bottom:-.5rem!important}.mb-xl-n3{margin-bottom:-1rem!important}.mb-xl-n4{margin-bottom:-1.5rem!important}.mb-xl-n4\.5{margin-bottom:-2rem!important}.mb-xl-n5{margin-bottom:-3rem!important}.ms-xl-n1{margin-left:-.25rem!important}.ms-xl-n2{margin-left:-.5rem!important}.ms-xl-n3{margin-left:-1rem!important}.ms-xl-n4{margin-left:-1.5rem!important}.ms-xl-n4\.5{margin-left:-2rem!important}.ms-xl-n5{margin-left:-3rem!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-4\.5{padding:2rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-4\.5{padding-right:2rem!important;padding-left:2rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-4\.5{padding-top:2rem!important;padding-bottom:2rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-4\.5{padding-top:2rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-4\.5{padding-right:2rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-4\.5{padding-bottom:2rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-4\.5{padding-left:2rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-4\.5{gap:2rem!important}.gap-xl-5{gap:3rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-4\.5{row-gap:2rem!important}.row-gap-xl-5{row-gap:3rem!important}.column-gap-xl-0{column-gap:0!important}.column-gap-xl-1{column-gap:.25rem!important}.column-gap-xl-2{column-gap:.5rem!important}.column-gap-xl-3{column-gap:1rem!important}.column-gap-xl-4{column-gap:1.5rem!important}.column-gap-xl-4\.5{column-gap:2rem!important}.column-gap-xl-5{column-gap:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width: 1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.object-fit-xxl-contain{object-fit:contain!important}.object-fit-xxl-cover{object-fit:cover!important}.object-fit-xxl-fill{object-fit:fill!important}.object-fit-xxl-scale{object-fit:scale-down!important}.object-fit-xxl-none{object-fit:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-4\.5{margin:2rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-4\.5{margin-right:2rem!important;margin-left:2rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-4\.5{margin-top:2rem!important;margin-bottom:2rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-4\.5{margin-top:2rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-4\.5{margin-right:2rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-4\.5{margin-bottom:2rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-4\.5{margin-left:2rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.m-xxl-n1{margin:-.25rem!important}.m-xxl-n2{margin:-.5rem!important}.m-xxl-n3{margin:-1rem!important}.m-xxl-n4{margin:-1.5rem!important}.m-xxl-n4\.5{margin:-2rem!important}.m-xxl-n5{margin:-3rem!important}.mx-xxl-n1{margin-right:-.25rem!important;margin-left:-.25rem!important}.mx-xxl-n2{margin-right:-.5rem!important;margin-left:-.5rem!important}.mx-xxl-n3{margin-right:-1rem!important;margin-left:-1rem!important}.mx-xxl-n4{margin-right:-1.5rem!important;margin-left:-1.5rem!important}.mx-xxl-n4\.5{margin-right:-2rem!important;margin-left:-2rem!important}.mx-xxl-n5{margin-right:-3rem!important;margin-left:-3rem!important}.my-xxl-n1{margin-top:-.25rem!important;margin-bottom:-.25rem!important}.my-xxl-n2{margin-top:-.5rem!important;margin-bottom:-.5rem!important}.my-xxl-n3{margin-top:-1rem!important;margin-bottom:-1rem!important}.my-xxl-n4{margin-top:-1.5rem!important;margin-bottom:-1.5rem!important}.my-xxl-n4\.5{margin-top:-2rem!important;margin-bottom:-2rem!important}.my-xxl-n5{margin-top:-3rem!important;margin-bottom:-3rem!important}.mt-xxl-n1{margin-top:-.25rem!important}.mt-xxl-n2{margin-top:-.5rem!important}.mt-xxl-n3{margin-top:-1rem!important}.mt-xxl-n4{margin-top:-1.5rem!important}.mt-xxl-n4\.5{margin-top:-2rem!important}.mt-xxl-n5{margin-top:-3rem!important}.me-xxl-n1{margin-right:-.25rem!important}.me-xxl-n2{margin-right:-.5rem!important}.me-xxl-n3{margin-right:-1rem!important}.me-xxl-n4{margin-right:-1.5rem!important}.me-xxl-n4\.5{margin-right:-2rem!important}.me-xxl-n5{margin-right:-3rem!important}.mb-xxl-n1{margin-bottom:-.25rem!important}.mb-xxl-n2{margin-bottom:-.5rem!important}.mb-xxl-n3{margin-bottom:-1rem!important}.mb-xxl-n4{margin-bottom:-1.5rem!important}.mb-xxl-n4\.5{margin-bottom:-2rem!important}.mb-xxl-n5{margin-bottom:-3rem!important}.ms-xxl-n1{margin-left:-.25rem!important}.ms-xxl-n2{margin-left:-.5rem!important}.ms-xxl-n3{margin-left:-1rem!important}.ms-xxl-n4{margin-left:-1.5rem!important}.ms-xxl-n4\.5{margin-left:-2rem!important}.ms-xxl-n5{margin-left:-3rem!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-4\.5{padding:2rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-4\.5{padding-right:2rem!important;padding-left:2rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-4\.5{padding-top:2rem!important;padding-bottom:2rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-4\.5{padding-top:2rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-4\.5{padding-right:2rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-4\.5{padding-bottom:2rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-4\.5{padding-left:2rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-4\.5{gap:2rem!important}.gap-xxl-5{gap:3rem!important}.row-gap-xxl-0{row-gap:0!important}.row-gap-xxl-1{row-gap:.25rem!important}.row-gap-xxl-2{row-gap:.5rem!important}.row-gap-xxl-3{row-gap:1rem!important}.row-gap-xxl-4{row-gap:1.5rem!important}.row-gap-xxl-4\.5{row-gap:2rem!important}.row-gap-xxl-5{row-gap:3rem!important}.column-gap-xxl-0{column-gap:0!important}.column-gap-xxl-1{column-gap:.25rem!important}.column-gap-xxl-2{column-gap:.5rem!important}.column-gap-xxl-3{column-gap:1rem!important}.column-gap-xxl-4{column-gap:1.5rem!important}.column-gap-xxl-4\.5{column-gap:2rem!important}.column-gap-xxl-5{column-gap:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width: 1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}.bv-no-focus-ring:focus,.SharpFilterSelect--open .bv-no-focus-ring.form-control,.SharpUpload .dz-drag-hover .bv-no-focus-ring.SharpUpload__browse{outline:none}.bv-d-xs-down-none{display:none!important}@media (max-width: 575.98px){.bv-d-sm-down-none{display:none!important}}@media (max-width: 767.98px){.bv-d-md-down-none{display:none!important}}@media (max-width: 991.98px){.bv-d-lg-down-none{display:none!important}}@media (max-width: 1199.98px){.bv-d-xl-down-none{display:none!important}}@media (max-width: 1399.98px){.bv-d-xxl-down-none{display:none!important}}.dropdown:not(.dropleft) .dropdown-toggle.dropdown-toggle-no-caret:after{display:none!important}.dropdown.dropleft .dropdown-toggle.dropdown-toggle-no-caret:before{display:none!important}.dropdown .dropdown-menu:focus,.dropdown .SharpFilterSelect--open .dropdown-menu.form-control,.SharpFilterSelect--open .dropdown .dropdown-menu.form-control,.dropdown .SharpUpload .dz-drag-hover .dropdown-menu.SharpUpload__browse,.SharpUpload .dz-drag-hover .dropdown .dropdown-menu.SharpUpload__browse,.dropdown .multiselect .multiselect__content:focus,.dropdown .multiselect .SharpFilterSelect--open .multiselect__content.form-control,.SharpFilterSelect--open .dropdown .multiselect .multiselect__content.form-control,.dropdown .multiselect .SharpUpload .dz-drag-hover .multiselect__content.SharpUpload__browse,.SharpUpload .dz-drag-hover .dropdown .multiselect .multiselect__content.SharpUpload__browse,.multiselect .dropdown .multiselect__content:focus,.multiselect .dropdown .SharpFilterSelect--open .multiselect__content.form-control,.SharpFilterSelect--open .multiselect .dropdown .multiselect__content.form-control,.multiselect .dropdown .SharpUpload .dz-drag-hover .multiselect__content.SharpUpload__browse,.SharpUpload .dz-drag-hover .multiselect .dropdown .multiselect__content.SharpUpload__browse{outline:none}.b-dropdown-form{display:inline-block;padding:.375rem 1rem;width:100%;clear:both;font-weight:400}.b-dropdown-form:focus,.SharpFilterSelect--open .b-dropdown-form.form-control,.SharpUpload .dz-drag-hover .b-dropdown-form.SharpUpload__browse{outline:1px dotted!important;outline:5px auto -webkit-focus-ring-color!important}.b-dropdown-form.disabled,.b-dropdown-form:disabled{outline:0!important;color:hsla(var(--primary-h),var(--primary-s),20%,.65);pointer-events:none}.b-dropdown-text{display:inline-block;padding:.375rem 1rem;margin-bottom:0;width:100%;clear:both;font-weight:lighter}.modal-backdrop{opacity:.25}.tooltip.b-tooltip{display:block;opacity:.9;outline:0}.tooltip.b-tooltip.fade:not(.show){opacity:0}.tooltip.b-tooltip.show{opacity:.9}.tooltip.b-tooltip.noninteractive{pointer-events:none}.tooltip.b-tooltip .arrow{margin:0 var(--bs-border-radius)}.tooltip.b-tooltip.bs-tooltip-right .arrow,.tooltip.b-tooltip.bs-tooltip-left .arrow{margin:var(--bs-border-radius) 0}.alert-primary{background-color:hsl(var(--primary-h),var(--primary-s),92.5%);border-color:hsla(var(--primary-h),var(--primary-s),20%,.1);color:hsl(var(--primary-h),var(--primary-s),20%)}.close{color:transparent!important}.list-group-item-action:focus:not(:focus-visible),.SharpFilterSelect--open .list-group-item-action.form-control:not(:focus-visible),.SharpUpload .dz-drag-hover .list-group-item-action.SharpUpload__browse:not(:focus-visible){outline:0}.toast{border-left-width:6px;border-top:0;border-bottom:0;border-right:0}.toast .toast-header:last-child{border-bottom:0;border-bottom-right-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));border-bottom-left-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)))}.toast .btn-close,.toast .close{min-width:1em}.input-group-sm>.form-select,.SharpForm .input-group-sm>.SharpSelect--dropdown{padding-right:2.5rem}.input-group-sm>.input-group-text{font-size:.75rem;line-height:1.7}.input-group-sm>.btn{font-size:.75rem}.input-group-text.btn{border-color:var(--bs-border-color)}.nav-tabs{--bs-nav-link-font-size: 1.125rem}.form-label{line-height:1.4}.card{border-color:var(--card-border-color, var(--bs-border-color-translucent));transition:var(--card-transition)}.card.form-control{font-size:1rem;color:#152935;line-height:1.5;font-weight:400}.dropdown-menu,.multiselect .multiselect__content{box-shadow:0 .5rem 1rem #00000026}.form-check-label{font-size:.875rem}.stretched-link:after{outline:inherit}.modal-open{overflow:hidden}.pagination{--bs-pagination-color: var(--primary);--bs-pagination-active-border-color: var(--primary);--bs-pagination-focus-color: var(--primary);--bs-pagination-hover-color: hsl(var(--primary-h), var(--primary-h), var(--primary-l) + 10%);--bs-pagination-focus-box-shadow: 0 0 0 .25rem hsla(var(--primary-h), var(--primary-s), var(--primary-l), .5) }:root{--primary: #004c9b;--primary-h: 210.5806451613deg;--primary-s: 100%;--primary-l: 30.3921568627%;--primary-hsl: hsl(var(--primary-h), var(--primary-s), var(--primary-l));--accent-bg-amount: 20%;--accent-bg-l: calc(var(--primary-l) + var(--accent-bg-amount));--accent-bg: hsl(var(--primary-h), var(--primary-s), var(--accent-bg-l));--l-threshold: 80%;--component-active-bg: var(--primary-hsl);--component-active-color: hsl(0, 0%, calc((var(--primary-l) - var(--l-threshold)) * -100000));--navbar-height: 4rem;--navbar-top: 0;--navbar-color: hsl(0, 0%, calc((var(--accent-bg-l) - var(--l-threshold)) * -100000));--field-header-sticky-top: var(--navbar-height)}@font-face{font-family:Karla;font-style:normal;font-weight:700;src:url(/vendor/sharp/assets/Karla-Bold-1a3cbe42.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Karla;font-style:normal;font-weight:600;src:url(/vendor/sharp/assets/Karla-SemiBold-3d79c557.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.ui-font,.section__title,.SharpLeftNav__item:not(.SharpLeftNav__item--unstyled),.SharpDropdown .dropdown-item,.SharpDropdown .multiselect__option,.SharpDataList__th,.btn,.nav-tabs .nav-link,.form-label,.input-group-text{font-family:Karla,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Noto Sans,Liberation Sans,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-weight:700}.ui-title-font,.SharpLeftNav__title{font-family:Karla,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Noto Sans,Liberation Sans,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-weight:600}.ui-font-size{font-size:1.125rem}h1.ui-heading-font-size,.ui-heading-font-size.h1{font-size:1.75rem}h2.ui-heading-font-size,.ui-heading-font-size.h2{font-size:1.5rem}h3.ui-heading-font-size,.ui-heading-font-size.h3{font-size:1.25rem}h4.ui-heading-font-size,.ui-heading-font-size.h4{font-size:1.125rem}h5.ui-heading-font-size,.ui-heading-font-size.h5{font-size:1rem}h6.ui-heading-font-size,.ui-heading-font-size.h6{font-size:.875rem}.error-dot:after,.SharpFieldLocaleSelect__btn--error:after,.SharpTabs__nav .nav-link.is-invalid:after,.SharpTabs__nav .SharpForm__form-item--danger .nav-link.form-control:after,.SharpForm__form-item--danger .SharpTabs__nav .nav-link.form-control:after{content:"";display:inline-block;width:.5em;height:.5em;border-radius:50%;background-color:var(--bs-danger);margin-left:.75em}.error-dot--partial:after{background-color:transparent;border:1px solid var(--bs-danger)}.action-bar{display:grid;grid-template:1fr/1fr;min-height:2.25rem}.breadcrumb{font-size:.875rem;margin-bottom:.5rem;padding-top:.5rem;padding-bottom:.5rem;align-self:flex-end;font-weight:600}.breadcrumb a{text-decoration:none}.breadcrumb a:hover,.breadcrumb a.multiselect__option--highlight,.breadcrumb a:focus,.breadcrumb .SharpFilterSelect--open a.form-control,.SharpFilterSelect--open .breadcrumb a.form-control,.breadcrumb .SharpUpload .dz-drag-hover a.SharpUpload__browse,.SharpUpload .dz-drag-hover .breadcrumb a.SharpUpload__browse{text-decoration:underline}.breadcrumb .breadcrumb-item.active,.breadcrumb .SharpTrix .breadcrumb-item.btn.trix-active,.SharpTrix .breadcrumb .breadcrumb-item.btn.trix-active,.breadcrumb .breadcrumb-item.multiselect__option--selected{color:var(--bs-body-color)}.btn svg{fill:currentColor;vertical-align:-.125em}.btn.active:focus:not(:focus-visible),.SharpFilterSelect--open .btn.active.form-control:not(:focus-visible),.SharpTrix .btn.trix-active:focus:not(:focus-visible),.SharpTrix .SharpFilterSelect--open .btn.trix-active.form-control:not(:focus-visible),.SharpFilterSelect--open .SharpTrix .btn.trix-active.form-control:not(:focus-visible),.SharpUpload .dz-drag-hover .btn.active.SharpUpload__browse:not(:focus-visible),.SharpUpload .dz-drag-hover .SharpTrix .btn.SharpUpload__browse.trix-active:not(:focus-visible),.SharpTrix .SharpUpload .dz-drag-hover .btn.SharpUpload__browse.trix-active:not(:focus-visible),.btn.multiselect__option--selected:focus:not(:focus-visible),.SharpFilterSelect--open .btn.multiselect__option--selected.form-control:not(:focus-visible),.SharpUpload .dz-drag-hover .btn.multiselect__option--selected.SharpUpload__browse:not(:focus-visible){box-shadow:none}.btn-primary{--threshold: var(--l-threshold);--color-l: calc((var(--primary-l) - var(--threshold)) * -100000);--hover-bg-l: calc(var(--primary-l) + clamp(-15%, var(--color-l), 15%));--active-bg-l: calc(var(--primary-l) + clamp(-20%, var(--color-l), 20%));--bs-btn-bg: var(--primary-hsl);--bs-btn-color: hsl(0, 0%, var(--color-l));--bs-btn-border-color: var(--primary-hsl);--bs-btn-hover-bg: hsl(var(--primary-h), var(--primary-s), var(--hover-bg-l));--bs-btn-hover-border-color: hsl( var(--primary-h), var(--primary-s), calc(var(--primary-l) + clamp(-20%, var(--color-l), 10%)) );--bs-btn-hover-color: hsl(0, 0%, calc((var(--hover-bg-l) - var(--threshold)) * -100000));--bs-btn-active-bg: hsl(var(--primary-h), var(--primary-s), var(--active-bg-l));--bs-btn-active-border-color: hsl( var(--primary-h), var(--primary-s), calc(var(--primary-l) + clamp(-20%, var(--color-l), 20%)) );--bs-btn-active-color: hsl(0, 0%, calc((var(--active-bg-l) - var(--threshold)) * -100000));--bs-btn-disabled-bg: var(--primary);--bs-btn-disabled-border-color: var(--primary);--bs-btn-disabled-color: white;--bs-btn-focus-box-shadow: 0 0 0 .25rem hsla(var(--primary-h), var(--primary-s), calc(var(--primary-l) + clamp(-15%, var(--color-l), 15%)), .5)}.btn-text{--color-l: 30%;--color-hsl: var(--primary-h), var(--primary-s), var(--color-l);--bs-btn-bg: hsla(var(--color-hsl), .1);--bs-btn-border-color: transparent;--bs-btn-color: hsla(var(--color-hsl), .875);--bs-btn-hover-bg: hsla(var(--color-hsl), .15);--bs-btn-hover-border-color: hsla(var(--color-hsl), .25);--bs-btn-hover-color: hsl(var(--color-hsl));--bs-btn-active-bg: hsl(var(--color-hsl));--bs-btn-active-border-color: hsl(var(--color-hsl));--bs-btn-active-color: hsl(0, 0%, calc((var(--color-l) - var(--l-threshold)) * -100000));--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: transparent;--bs-btn-disabled-color: hsl(var(--color-hsl));--bs-btn-focus-box-shadow: 0 0 0 .25rem hsla(var(--primary-h), var(--primary-s), 45%, .5)}.btn-outline-primary{--bs-btn-color: black;--bs-btn-border-color: black;--bs-btn-hover-color: hsl(0, 0%, calc((var(--primary-l) - var(--l-threshold)) * -100000));--bs-btn-hover-bg: var(--primary-hsl);--bs-btn-hover-border-color: var(--primary-hsl);--bs-btn-focus-shadow-rgb: 0, 0, 0;--bs-btn-active-color: hsl(0, 0%, calc((var(--primary-l) - var(--l-threshold)) * -100000));--bs-btn-active-bg: var(--primary-hsl);--bs-btn-active-border-color: var(--primary-hsl);--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: black;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: black;--bs-gradient: none;--bs-btn-bg: white;--bs-btn-color: var(--primary-hsl);--bs-btn-border-color: hsla(var(--primary-h), var(--primary-s), var(--primary-l), .375);--bs-btn-focus-box-shadow: 0 0 0 .25rem hsla(var(--primary-h), var(--primary-s), var(--primary-l), .5)}.btn-light{--bs-btn-bg: var(--bs-light);--bs-btn-border-color: transparent;--bs-btn-color: black;--bs-btn-hover-bg: var(--bs-light);--bs-btn-hover-border-color: transparent;--bs-btn-hover-color: hsl(var(--primary-h), var(--primary-s), 30%);--bs-btn-active-bg: hsl(var(--primary-h), 75%, 94%);--bs-btn-active-border-color: transparent;--bs-btn-active-color: hsl(var(--primary-h), var(--primary-s), 25%);--bs-btn-disabled-bg: var(--bs-light);--bs-btn-disabled-border-color: transparent;--bs-btn-disabled-color: var(--bs-btn-color)}.btn-outline-light{--bs-btn-border-color: rgba(var(--bs-light-rgb), .5)}.btn-outline-danger{--bs-btn-bg: white;--bs-btn-border-color: rgba(var(--bs-danger-rgb), .375)}.btn-block{width:100%}.btn-block:not(.btn-sm):not(.btn-lg){border-radius:.5rem}.btn--outline-hover{background-color:transparent!important;--bs-btn-border-color: transparent;--bs-btn-disabled-border-color: transparent}.btn--opacity-1:disabled,.btn--opacity-1.disabled{opacity:1}.SharpClearButton{background-color:transparent;border:none;cursor:pointer;padding:0;height:16px;width:12px;position:relative;color:var(--clear-button-color, hsla(var(--primary-h), var(--primary-s), 20%, .5))}.SharpClearButton:hover,.SharpClearButton.multiselect__option--highlight{color:hsla(var(--primary-h),var(--primary-s),20%,1)}.SharpClearButton__icon{height:var(--clear-button-icon-width, .625rem);width:var(--clear-button-icon-width, .625rem);fill:currentColor}.SharpClearButton--form-control{position:absolute!important;height:100%;width:2rem;right:0;top:0;z-index:12;display:flex;align-items:center;justify-content:center}.SharpClearButton--form-control .SharpClearButton__icon{position:static}.SharpDataList--reordering .SharpDataList__row:not(.SharpDataList__row--header){cursor:move;background:#f2f2f2!important;border-bottom:0;border-color:transparent;margin-bottom:.25rem}.SharpDataList--reordering .SharpDataList__row:not(.SharpDataList__row--header) .SharpDataList__row-link{display:none}.SharpDataList--reordering .SharpDataList__row:not(.SharpDataList__row--header):last-child{margin-bottom:0}.SharpDataList--reordering .SharpDataList__tbody{border:.25rem solid white}.SharpDataList__empty{background:white;border:1px solid #dfe3e6;position:relative;border-radius:var(--bs-border-radius)}.SharpDataList__table{width:100%;border-collapse:collapse;border-spacing:0;background-color:transparent;border-radius:var(--bs-border-radius)}.SharpDataList__table--border{border:1px solid #dfe3e6;background-color:#fff}.SharpDataList__tbody{vertical-align:middle;position:relative;border-radius:var(--bs-border-radius)}.SharpDataList__thead{border-bottom:1px solid #314255;vertical-align:middle}.SharpDataList__row{border-bottom:1px solid #dfe3e6;transition:box-shadow .25s ease-in-out}@media (max-width: 575.98px){.SharpDataList__row{flex-flow:column}}.SharpDataList__row:last-child{border-bottom:0}.SharpDataList__row--header{border:none;cursor:inherit}.SharpDataList__row--header .SharpDataList__row-append{display:none}@media (min-width: 576px){.SharpDataList__row--header .SharpDataList__row-append{display:block}}.SharpDataList__row:hover,.SharpDataList__row.multiselect__option--highlight,.SharpDataList__row:focus-within{box-shadow:inset 5px 0 0 hsla(var(--primary-h),var(--primary-s),40%,.5)}.SharpDataList__row--header:hover,.SharpDataList__row--header.multiselect__option--highlight,.SharpDataList__row--header:focus-within,.SharpDataList__row--disabled:hover,.SharpDataList__row--disabled.multiselect__option--highlight,.SharpDataList__row--disabled:focus-within{box-shadow:none}.SharpDataList__row--highlight{box-shadow:inset 3px 0 0 hsla(var(--primary-h),var(--primary-s),40%,.25)}.modal-open .SharpDataList__row--highlight{box-shadow:inset 5px 0 0 hsla(var(--primary-h),var(--primary-s),40%,.5)}.SharpDataList__row--deleting{outline:2px solid rgba(var(--bs-danger-rgb),.625)}.SharpDataList__row .SharpDataList__cols{position:relative}@media (max-width: 575.98px){.SharpDataList__row .SharpDataList__row-append{padding-top:0;width:100%!important}}.SharpDataList__row-append{position:relative}.SharpDataList__th{font-size:.875rem;font-weight:700;text-align:left;vertical-align:middle;position:relative;overflow-wrap:break-word;word-break:break-word}.SharpDataList__th .SharpDataList__sort-link{position:absolute;left:0;right:0;top:0;bottom:0}.SharpDataList__td{font-size:.875rem;line-height:1.5;position:relative;overflow-wrap:break-word}.SharpDataList__td-html-container{max-width:100%}.SharpDataList__td-html-container *{font-size:.875rem!important}.SharpDataList__td-html-container img{max-width:100%}.SharpDataList__td-html-container small,.SharpDataList__td-html-container .small{font-size:smaller!important}.SharpDataList__td-html-container b,.SharpDataList__td-html-container strong{font-weight:700!important}.SharpDataList__td-html-container em{font-style:italic!important}.SharpDataList__td-html-container a,.SharpDataList__td-html-container a *{position:relative;z-index:1}.SharpDataList__td-html-container a:hover,.SharpDataList__td-html-container a.multiselect__option--highlight{color:#1c3453}.SharpDataList__caret{display:block;fill:#8c9ba5;width:8px;min-width:8px;height:8px;transform:rotate(0);transition:transform .2s cubic-bezier(.5,0,.1,1);cursor:pointer}.SharpDataList__caret--ascending{transform:rotate(180deg);transition:transform .2s cubic-bezier(.5,0,.1,1)}.SharpDataList__caret--selected{fill:#314255}.SharpDataList__pagination-container{display:flex;justify-content:center}.SharpDataList__pagination-container .SharpPagination{width:auto;margin-bottom:0;margin-top:3rem}.SharpDropdown .dropdown-menu,.SharpDropdown .multiselect .multiselect__content,.multiselect .SharpDropdown .multiselect__content{left:var(--dropdown-menu-left, 0)!important}.SharpDropdown .dropdown-menu>li:first-child .dropdown-divider,.SharpDropdown .multiselect .multiselect__content>li:first-child .dropdown-divider,.multiselect .SharpDropdown .multiselect__content>li:first-child .dropdown-divider,.SharpDropdown .dropdown-menu>li:last-child .dropdown-divider,.SharpDropdown .multiselect .multiselect__content>li:last-child .dropdown-divider,.multiselect .SharpDropdown .multiselect__content>li:last-child .dropdown-divider{display:none}.SharpGlobalMessage{margin-top:var(--global-message-margin-top, 1.5rem);margin-bottom:var(--global-message-margin-bottom, 1.5rem)}.SharpGrid{width:100%}.SharpLeftNav{--item-color-l: 30%;position:fixed;top:var(--navbar-top, 0);height:100vh;background-color:#fff;max-height:100vh;z-index:1030}.SharpLeftNav__content{box-shadow:1px 0 3px 0 hsla(var(--primary-h),var(--primary-s),30%,.075);position:absolute;top:0;bottom:0;left:0;right:0}.SharpLeftNav__inner{overflow:auto}.SharpLeftNav__title-container{padding:.75rem 1.25rem;background-color:#004c9b;background:linear-gradient(0deg,hsl(var(--primary-h),var(--primary-s),var(--accent-bg-l)),hsl(var(--primary-h),var(--primary-s),calc(var(--accent-bg-l) - 1.4%)));display:flex;align-items:center;height:var(--navbar-height);z-index:1}.SharpLeftNav__title{font-size:1rem;color:var(--navbar-color)}.SharpLeftNav__top-icon{opacity:0;color:hsl(var(--primary-h),var(--primary-s),30%);position:absolute;right:0;left:0}.SharpLeftNav__top-icon .fa{text-align:center;width:100%}.SharpLeftNav__list{list-style:none;display:flex;flex-direction:column;background-color:#fff;padding-left:0;margin-bottom:0}.SharpLeftNav__list.SharpLeftNav__list--nested .SharpLeftNav__item:last-child{margin-bottom:0}.SharpLeftNav__list:not(.SharpLeftNav__list--nested)>.SharpLeftNav__item{border-bottom:1px solid #DAE3EE;padding-bottom:1rem;padding-top:1rem}.SharpLeftNav__list .SharpLeftNav__item{font-size:1rem}.SharpLeftNav__separator{position:relative;padding-left:3.5rem;padding-right:3rem;margin-top:.75rem;margin-bottom:1.25rem;color:hsl(var(--primary-h),10%,60%);font-size:.6875rem;line-height:1.2;min-height:1px;cursor:default}.SharpLeftNav__separator:before{content:"";display:block;border-bottom:1px solid #DAE3EE;position:absolute;top:50%;left:1.25rem;right:1.25rem;transform:translateY(-50%)}.SharpLeftNav__separator>span{position:relative;max-width:100%;background-color:#fff;padding:.125em .75em;margin-left:-.75em;margin-right:-.75em;-webkit-box-decoration-break:clone}.SharpLeftNav__item{width:100%;padding:0}.SharpLeftNav__item:focus:not(:focus-visible),.SharpFilterSelect--open .SharpLeftNav__item.form-control:not(:focus-visible),.SharpUpload .dz-drag-hover .SharpLeftNav__item.SharpUpload__browse:not(:focus-visible){outline:0}.SharpLeftNav__item.SharpLeftNav__item--active>.SharpLeftNav__item-link{background-color:hsla(var(--primary-h),var(--primary-s),var(--item-color-l),.1);color:hsl(var(--primary-h),var(--primary-s),var(--item-color-l));font-weight:700;letter-spacing:-.0125em}.SharpLeftNav__item-icon{display:flex}.SharpLeftNav__item-icon .SharpLeftNav__icon{fill:currentColor;width:.5rem;height:.5rem;transition:transform .25s linear}.SharpLeftNav__item--expanded .SharpLeftNav__item-icon .SharpLeftNav__icon{transform:rotate(180deg)}.SharpLeftNav__item:not(.SharpLeftNav__item--active):not(.SharpLeftNav__item--disabled)>.SharpLeftNav__item-link:hover,.SharpLeftNav__item:not(.SharpLeftNav__item--active):not(.SharpLeftNav__item--disabled)>.SharpLeftNav__item-link.multiselect__option--highlight{color:inherit;background-color:hsla(var(--primary-h),var(--primary-s),var(--item-color-l),.05)}.SharpLeftNav__item:not(.SharpLeftNav__item--unstyled){letter-spacing:-.025em}.SharpLeftNav__item.SharpLeftNav__item--disabled>.SharpLeftNav__item-link{cursor:default}.SharpLeftNav__item--has-children>.SharpLeftNav__item-link{color:var(--bs-secondary-color);font-weight:700;font-size:.875rem;letter-spacing:0}.SharpLeftNav__item--has-children>.SharpLeftNav__item-link:hover,.SharpLeftNav__item--has-children>.SharpLeftNav__item-link.multiselect__option--highlight{color:hsl(var(--primary-h),10%,20%)}.SharpLeftNav__item-link{font-size:.875rem;position:relative;display:block;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out;cursor:pointer;color:hsl(var(--primary-h),10%,20%);line-height:1.4;padding:var(--link-padding-y, .5rem) var(--link-padding-x, 1.25rem)}.SharpLeftNav__item-link .fa,.SharpLeftNav__item-link .fas,.SharpLeftNav__item-link .far,.SharpLeftNav__item-link .fab{font-size:1.125em}.SharpLeftNav__item-link>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.SharpLeftNav__item-link:focus-visible{color:inherit;background-color:transparent}.SharpLeftNav__list--nested{padding-top:.625rem;padding-bottom:.375rem}.SharpLeftNav__list--nested .SharpLeftNav__item{margin-bottom:.5rem}.SharpLeftNav--collapseable{display:flex;flex-direction:column;width:15rem;transition:background-color .3s ease-in-out,width ease .3s}.SharpLeftNav--collapseable ul,.SharpLeftNav--collapseable li,.SharpLeftNav--collapseable hr,.SharpLeftNav--collapseable .SharpLeftNav__title-container,.SharpLeftNav--collapseable .SharpLeftNav__collapse-target,.SharpLeftNav--collapseable .SharpGlobalFilters{opacity:1}.SharpLeftNav--collapseable .SharpLeftNav__list,.SharpLeftNav--collapseable .SharpLeftNav__item-link{background-color:inherit}.SharpLeftNav--collapseable .SharpLeftNav__item--expanded>.SharpLeftNav__item-link{color:hsl(var(--primary-h),var(--primary-s),25%)!important}.SharpLeftNav--collapseable .SharpLeftNav__collapse-button{position:absolute;bottom:.5rem;right:.5rem}.SharpLeftNav--collapseable .SharpLeftNav__collapse-arrow{transform:rotate(0);fill:currentColor;height:12px;width:12px}.SharpLeftNav--collapsing,.SharpLeftNav--collapsed{width:3.25rem;transition:background-color .3s ease-in-out,width ease .3s;cursor:pointer;background-color:hsla(var(--primary-h),var(--primary-s),30%,.1)}.SharpLeftNav--collapsing .SharpLeftNav__content,.SharpLeftNav--collapsed .SharpLeftNav__content{box-shadow:none}.SharpLeftNav--collapsing:hover,.SharpLeftNav--collapsing.multiselect__option--highlight,.SharpLeftNav--collapsing:focus,.SharpFilterSelect--open .SharpLeftNav--collapsing.form-control,.SharpUpload .dz-drag-hover .SharpLeftNav--collapsing.SharpUpload__browse,.SharpLeftNav--collapsed:hover,.SharpLeftNav--collapsed.multiselect__option--highlight,.SharpLeftNav--collapsed:focus,.SharpFilterSelect--open .SharpLeftNav--collapsed.form-control,.SharpUpload .dz-drag-hover .SharpLeftNav--collapsed.SharpUpload__browse{background-color:hsla(var(--primary-h),var(--primary-s),30%,.15)}.SharpLeftNav--collapsing ul,.SharpLeftNav--collapsing li,.SharpLeftNav--collapsing hr,.SharpLeftNav--collapsing .SharpLeftNav__title-container,.SharpLeftNav--collapsing .SharpLeftNav__collapse-target,.SharpLeftNav--collapsing .SharpGlobalFilters,.SharpLeftNav--collapsed ul,.SharpLeftNav--collapsed li,.SharpLeftNav--collapsed hr,.SharpLeftNav--collapsed .SharpLeftNav__title-container,.SharpLeftNav--collapsed .SharpLeftNav__collapse-target,.SharpLeftNav--collapsed .SharpGlobalFilters{opacity:0;transition:opacity .3s ease-in-out;overflow:hidden;white-space:nowrap}.SharpLeftNav--collapsing .SharpLeftNav__collapse,.SharpLeftNav--collapsed .SharpLeftNav__collapse,.SharpLeftNav--collapsing .SharpLeftNav__collapse:hover,.SharpLeftNav--collapsing .SharpLeftNav__collapse.multiselect__option--highlight,.SharpLeftNav--collapsed .SharpLeftNav__collapse:hover,.SharpLeftNav--collapsed .SharpLeftNav__collapse.multiselect__option--highlight{background-color:transparent}.SharpLeftNav--collapsing .SharpLeftNav__collapse-arrow,.SharpLeftNav--collapsed .SharpLeftNav__collapse-arrow{transform:rotate(180deg);transition:transform .3s ease-in-out}.SharpLeftNav--collapsing .SharpLeftNav__top-icon,.SharpLeftNav--collapsed .SharpLeftNav__top-icon{transition:opacity .3s ease-in-out}.SharpLeftNav--collapsed{height:100%;padding-top:1.25rem}.SharpLeftNav--collapsed ul,.SharpLeftNav--collapsed li,.SharpLeftNav--collapsed hr,.SharpLeftNav--collapsed .SharpLeftNav__title-container,.SharpLeftNav--collapsed .SharpLeftNav__collapse-target,.SharpLeftNav--collapsed .SharpGlobalFilters{display:none}.SharpLeftNav--collapsed .SharpLeftNav__collapse{justify-content:center;padding-left:0;padding-right:0}.SharpLeftNav--collapsed .SharpLeftNav__top-icon{display:flex;opacity:1}.SharpLeftNav--expanding{width:15rem;transition:width .3s ease;background-color:#fff}.SharpLeftNav--expanding .SharpLeftNav__content{box-shadow:none}.SharpLeftNav--expanding ul,.SharpLeftNav--expanding li,.SharpLeftNav--expanding hr,.SharpLeftNav--expanding .SharpLeftNav__title-container,.SharpLeftNav--expanding .SharpLeftNav__collapse-target,.SharpLeftNav--expanding .SharpGlobalFilters{opacity:1;transition:opacity .3s ease-in-out;overflow:hidden;white-space:nowrap}.SharpLeftNav--expanding .SharpLeftNav__collapse-arrow{transform:rotate(0);transition:transform .3s ease-in-out}.SharpLeftNav--expanding .SharpLeftNav__top-icon{opacity:0}.SharpLeftNav--expanded .SharpLeftNav__top-icon{display:none}.SharpLeftNav--filter-opened .SharpLeftNav__inner{overflow:hidden}.SharpLeftNav--hidden{pointer-events:none;background:none}.SharpLeftNav--hidden .SharpLeftNav__title-container{background:none}.SharpLoading{color:hsl(var(--primary-h),var(--primary-s),40%)}.btn .SharpLoading{color:inherit}.SharpLoading--light{opacity:.5}.SharpLoading__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#fff9;display:flex;justify-content:center;align-items:center;z-index:9999;pointer-events:none}.SharpLoading__overlay--absolute{position:absolute}.loading-fade-enter-active,.loading-fade-leave-active{transition:opacity .25s ease-in-out}.loading-fade-enter-active{transition-delay:.2s}.loading-fade-enter,.loading-fade-leave-to{opacity:0}.modal-sm .modal-header{padding-bottom:.5rem}.modal-footer{padding-top:.5rem}.multiselect{display:flex;align-items:center;position:relative;padding-right:2rem}.multiselect ul{padding:0;margin:0}.multiselect .multiselect__placeholder{color:#8c9ba5;margin-bottom:.375rem}.multiselect .multiselect__select{display:none}.multiselect .multiselect__tags-wrap{display:flex;flex-wrap:wrap}.multiselect .multiselect__tags{display:flex;align-items:center;flex-wrap:wrap;width:100%;margin-bottom:-.375rem;cursor:default}.multiselect .multiselect__tags .multiselect__input{border:none;display:inline-block;width:auto;height:auto;padding:0;background:none;margin-bottom:.375rem}.multiselect .multiselect__tags .multiselect__input:focus,.multiselect .multiselect__tags .SharpFilterSelect--open .multiselect__input.form-control,.SharpFilterSelect--open .multiselect .multiselect__tags .multiselect__input.form-control,.multiselect .multiselect__tags .SharpUpload .dz-drag-hover .multiselect__input.SharpUpload__browse,.SharpUpload .dz-drag-hover .multiselect .multiselect__tags .multiselect__input.SharpUpload__browse{outline:none}.multiselect .multiselect__tags .multiselect__tag{position:relative;padding:4px 0 4px 8px;margin-top:0;margin-left:0}.multiselect .multiselect__input{box-shadow:none!important}.multiselect .multiselect__input,.multiselect .multiselect__single{transition:border .1s ease}.multiselect .multiselect__single{margin-bottom:.375rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.multiselect .multiselect__single:empty:before{content:"  "}.multiselect .multiselect__content{max-height:20rem;width:100%;overflow:auto;left:0;top:100%}.multiselect__option{cursor:pointer;overflow:hidden;text-overflow:ellipsis}.multiselect .multiselect__tag{margin-bottom:.375rem}.multiselect .multiselect__tag-icon{cursor:pointer;margin-left:4px;right:1px;top:0;bottom:0;font-weight:500;font-style:initial;width:22px;text-align:center;line-height:18px;transition:all .2s ease;border-radius:50%;font-size:14px}.multiselect .multiselect__tag-icon:after{content:"×"}.multiselect .multiselect__spinner{right:2px;width:40px}.multiselect .multiselect__spinner:after,.multiselect .multiselect__spinner:before{border-color:#314255 transparent transparent}.multiselect--active,.SharpFilterSelect--open .multiselect{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#80a6cd;outline:0;box-shadow:0 0 0 .25rem #004c9b40}.multiselect--disabled{opacity:.5;cursor:not-allowed!important;outline:none!important;pointer-events:none}.multiselect--disabled .multiselect__tags .multiselect__tag-icon{cursor:not-allowed!important}.SharpNotification p{margin-bottom:0}.notifications{animation-timing-function:ease-in-out}.vue-notification-wrapper{overflow:visible!important}.popover{z-index:80;box-shadow:0 .5rem 1rem #00000026;border-color:#0000001a;max-width:none}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .5rem}.popover .arrow:before,.popover .arrow:after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.popover-body{padding:.5rem}.SharpSearch{width:var(--width);transition:width .15s cubic-bezier(.4,0,.2,1)}.SharpSearch__input{font-weight:700;padding-right:2rem;border-top-right-radius:0;border-bottom-right-radius:0}.SharpSearch__input::placeholder{font-weight:400}.SharpSearch .input-group{border-radius:var(--bs-border-radius-sm);background:white}.SharpSearch__clear{position:absolute;top:0;right:0;color:#999}.SharpSearch--focused{width:var(--focused-width)}.section__header{min-height:2.75rem}.section__header--collapsable{cursor:pointer;-webkit-user-select:none;user-select:none;line-height:1.2;transition:background-color .125s ease-in-out;--title-margin-left: .25rem}.section__header--collapsable:hover,.section__header--collapsable.multiselect__option--highlight{background-color:#00000013}.section__header--collapsable:focus:not(:focus-visible),.SharpFilterSelect--open .section__header--collapsable.form-control:not(:focus-visible),.SharpUpload .dz-drag-hover .section__header--collapsable.SharpUpload__browse:not(:focus-visible){outline:0}.section__title{font-size:1.25rem;padding-top:.75rem;padding-bottom:.75rem;margin-bottom:0;margin-left:var(--title-margin-left)}.StateIcon{display:inline-block;width:10px;height:10px;border-radius:50%;border:1px solid rgba(255,255,255,.5)}.btn .StateIcon{vertical-align:-.125em}.SharpTabbedLayout .tab-pane{padding:var(--tab-padding-top) var(--tab-padding-x) var(--tab-padding-bottom)}.SharpTabbedLayout__divider{opacity:.125;margin-top:var(--tab-divider-margin-top, 1rem);margin-bottom:var(--tab-divider-margin-bottom, 1rem);margin-left:calc(var(--tab-padding-x) * -1);margin-right:calc(var(--tab-padding-x) * -1)}.SharpTabbedLayout__divider:last-child{display:none}.SharpTabs__nav{position:relative}.SharpTabs__nav .nav-link{color:var(--bs-secondary-color);border:0;border-bottom:2px solid transparent}.SharpTabs__nav .nav-link.active,.SharpTabs__nav .SharpTrix .nav-link.btn.trix-active,.SharpTrix .SharpTabs__nav .nav-link.btn.trix-active,.SharpTabs__nav .nav-link.multiselect__option--selected{color:hsla(var(--primary-h),var(--primary-s),var(--primary-l));border-color:hsla(var(--primary-h),var(--primary-s),var(--primary-l))}.SharpTabs__nav .nav-link.is-invalid,.SharpTabs__nav .SharpForm__form-item--danger .nav-link.form-control,.SharpForm__form-item--danger .SharpTabs__nav .nav-link.form-control{margin-left:.25em}.SharpTag,.multiselect .multiselect__tag{font-size:.75rem;display:inline-flex;align-items:center;padding:0 .625rem;height:1.25rem;margin:.375rem;background-color:hsla(var(--primary-h),var(--primary-s),30%,.15);color:hsl(var(--primary-h),var(--primary-s),20%);border-radius:3px}.SharpTag:not(:first-child),.multiselect .multiselect__tag:not(:first-child){margin-left:0}@media (min-width: 992px){.leftNav--collapsed .SharpTopBar{left:3.25rem;padding-left:0}}.SharpTopBar{position:fixed!important;z-index:1020;top:var(--navbar-top, 0);right:0;left:3.25rem;height:var(--navbar-height);background:#314255;transition:width ease .3s;transition-property:left;--threshold: var(--l-threshold);color:var(--navbar-color);background:#004c9b;background:linear-gradient(45deg,hsl(var(--primary-h),var(--primary-s),var(--accent-bg-l)),hsl(var(--primary-h),var(--primary-s),var(--primary-l)) 70%)}@media (min-width: 992px){.SharpTopBar{left:15rem}}.leftNav--hidden .SharpTopBar{left:0}@media (min-width: 992px){.leftNav--hidden .SharpTopBar__title{display:none!important}}.SharpCommandsDropdown__description{font-family:var(--bs-font-sans-serif);text-transform:none;font-size:.875em;font-weight:400;color:var(--bs-secondary-color);white-space:normal;min-width:15rem;margin-top:.125rem}.SharpCommandsDropdown .dropdown-menu,.SharpCommandsDropdown .multiselect .multiselect__content,.multiselect .SharpCommandsDropdown .multiselect__content{min-width:12rem}.SharpCommandsDropdown--has-state .dropdown-menu,.SharpCommandsDropdown--has-state .multiselect .multiselect__content,.multiselect .SharpCommandsDropdown--has-state .multiselect__content{min-width:14rem}.SharpViewPanel{box-shadow:0 .5rem 1rem #00000026;position:fixed;left:0;top:0;height:100%;background:white;width:90%;z-index:1055}.SharpViewPanel iframe{width:100%;height:100%;border:0}.SharpViewPanel--collapsed{transform:translate3d(-100%,0,0)}.SharpViewPanel--collapsing,.SharpViewPanel--expanding{transition:transform .4s cubic-bezier(.5,0,.1,1)}.SharpViewPanel--expanded{transform:translateZ(0)}.SharpViewPanel__glasspane{position:fixed;left:0;top:0;height:100%;width:100%;background:rgba(0,0,0,.1);z-index:1050}.editor{--card-border-color: var(--bs-border-color)}.editor__header{position:sticky;top:var(--navbar-height);border-top-right-radius:var(--bs-border-radius);border-top-left-radius:var(--bs-border-radius);background:white;padding:.75rem;transition:box-shadow .2s ease-in-out;z-index:1}.editor__header.stuck{z-index:3;box-shadow:0 .125rem .25rem #00000013}.editor .card-body{border-bottom-right-radius:var(--bs-border-radius);border-bottom-left-radius:var(--bs-border-radius)}.editor .card-body.form-control{margin:-1px;width:auto;padding:.5rem .75rem;border-top-left-radius:var(--card-body-border-top-radius, 0);border-top-right-radius:var(--card-body-border-top-radius, 0);border-top-color:transparent}.editor .card-body.form-control.is-invalid,.editor .SharpForm__form-item--danger .card-body.form-control,.SharpForm__form-item--danger .editor .card-body.form-control{border-top-color:#dc3545}.editor:has(.card-footer) .card-body{border-bottom-right-radius:0;border-bottom-left-radius:0}.editor .card-footer{padding:.5rem .75rem}.editor__content{position:relative;min-height:var(--min-height);max-height:var(--max-height);overflow-y:auto}.editor__content:focus,.SharpFilterSelect--open .editor__content.form-control,.SharpUpload .dz-drag-hover .editor__content.SharpUpload__browse{z-index:2}.editor__content p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:var(--bs-secondary-color);pointer-events:none;height:0}.editor__content h1,.editor__content .h1,.editor__content h2,.editor__content .h2,.editor__content h3,.editor__content .h3,.editor__content h4,.editor__content .h4,.editor__content h5,.editor__content .h5,.editor__content h6,.editor__content .h6,.editor__content h1 b,.editor__content .h1 b,.editor__content h1 strong,.editor__content .h1 strong,.editor__content h2 b,.editor__content .h2 b,.editor__content h2 strong,.editor__content .h2 strong,.editor__content h3 b,.editor__content .h3 b,.editor__content h3 strong,.editor__content .h3 strong,.editor__content h4 b,.editor__content .h4 b,.editor__content h4 strong,.editor__content .h4 strong,.editor__content h5 b,.editor__content .h5 b,.editor__content h5 strong,.editor__content .h5 strong,.editor__content h6 b,.editor__content .h6 b,.editor__content h6 strong,.editor__content .h6 strong{font-weight:700}.editor__content h1,.editor__content .h1{font-size:calc(1.625rem + (var(--heading-depth) - 1) * .1875rem)}.editor__content h2,.editor__content .h2{font-size:calc(1.375rem + (var(--heading-depth) - 1) * .0625rem)}.editor__content h3,.editor__content .h3{font-size:1.125rem}.editor__content h4,.editor__content .h4,.editor__content h5,.editor__content .h5,.editor__content h6,.editor__content .h6{font-size:1rem}.editor__content table{width:100%;margin-bottom:1rem;vertical-align:top;overflow:visible}.editor__content table>tbody{vertical-align:inherit}.editor__content table td,.editor__content table th{padding:.5rem;border:1px solid #dee2e6}.editor__content table td:before,.editor__content table th:before{content:"";display:block;position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;border:var(--border);pointer-events:none}.editor__content table td.selectedCell,.editor__content table th.selectedCell{z-index:0}.editor__content table td.selected,.editor__content table th.selected{--border: 1px solid hsla(var(--primary-h), var(--primary-s), 30%, .5)}.editor__content table th{background-color:#f8f9fa}.editor__content table p{margin-bottom:0}.editor__content pre{overflow-wrap:anywhere}.editor__content pre code{display:block;padding:.5rem .75rem}.editor__content code{display:inline;color:inherit;background-color:#f0f2f4;border-radius:3px;padding:.25em .5em}.editor__content ul.tight p,.editor__content ol.tight p{margin-bottom:0}.editor__content .editor__image{display:inline-block;width:auto;height:auto;max-width:100%;max-height:200px;border:1px solid var(--bs-border-color-translucent);border-radius:var(--bs-border-radius);margin-bottom:1rem;transition:border .125s ease-in-out,box-shadow .125s ease-in-out}.editor__content .editor__image.selected{border-color:var(--primary);box-shadow:0 .5rem 1rem #00000026}.editor__content mark[data-color=selection],.editor__content [data-color=selection].mark{background-color:#accef7;padding:0}.editor__content blockquote{border-left:5px solid #dee2e6;padding:.25rem .25rem .25rem 1rem;color:var(--bs-secondary-color)}.editor__content blockquote p:last-child{margin-bottom:0}.editor__content iframe{display:block;width:450px;max-height:200px;max-width:100%;margin-bottom:1rem}.editor__content iframe[height$="%"]{height:200px}.editor__content [data-node-view-wrapper]{display:block}.editor__content .btn-light{--bs-btn-color: rgba(0,0,0,.675)}.editor__content .Prosemirror-selectednode{outline:0}.editor .ProseMirror-focused{--node-selected-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);--node-selected-card-border: var(--primary)}.editor__node{margin-bottom:1rem;border-radius:4px;--card-transition: border .125s ease-in-out, box-shadow .125s ease-in-out}.editor__node.selected{box-shadow:var(--node-selected-box-shadow);--card-border-color: var(--node-selected-card-border, var(--bs-border-color))}.editor__node .embed-node__template{--card-border-color: var(--bs-border-color-translucent)}.editor__dropdown .dropdown-menu,.editor__dropdown .multiselect .multiselect__content,.multiselect .editor__dropdown .multiselect__content{width:max-content}@media (min-width: 576px){.editor__dropdown .dropdown-menu,.editor__dropdown .multiselect .multiselect__content,.multiselect .editor__dropdown .multiselect__content{min-width:var(--dropdown-min-width, 10rem)}}.editor__dropdown .dropdown-menu[x-placement^=top],.editor__dropdown .multiselect [x-placement^=top].multiselect__content,.multiselect .editor__dropdown [x-placement^=top].multiselect__content{bottom:auto}.editor__dropdown--link,.editor__dropdown--table{--dropdown-min-width: 18rem}.editor__toolbar .fa-paperclip{-webkit-text-stroke:.03em var(--bs-light)}.editor__toolbar .fa-paperclip:before{display:inline-block;transform:scale(1.2) rotate(-45deg)}.editor__toolbar .fa-caret-square-right{font-size:1rem}.editor__toolbar .btn{display:inline-flex;align-items:center;padding:.625rem .75rem;line-height:1}.editor__toolbar .fa-sm{font-size:.75rem}.editor__toolbar .fa-xs{font-size:.675rem}.editor__toolbar .btn-light{--bs-btn-color: rgba(0,0,0,.675)}.editor--disabled{pointer-events:none;cursor:default;opacity:.8}.editor--no-toolbar{--card-body-border-top-radius: var(--bs-border-radius)}.html-node pre{max-height:17em;overflow:hidden}.iframe-node__modal-renderer{position:relative}.iframe-node__modal-renderer iframe{display:block;width:100%;max-height:260px}.iframe-node__modal-renderer iframe[height$="%"]{height:260px}.SharpAutocomplete{position:relative;font-size:1rem}.SharpAutocomplete__multiselect--hide-dropdown.multiselect--active .multiselect__content,.SharpFilterSelect--open .SharpAutocomplete__multiselect--hide-dropdown.multiselect .multiselect__content{display:none!important}.SharpAutocomplete__multiselect.multiselect--active .multiselect__input,.SharpFilterSelect--open .SharpAutocomplete__multiselect.multiselect .multiselect__input{width:100%!important}.SharpAutocomplete__result{position:relative;overflow:hidden}.SharpAutocomplete .SharpClearButton{background-color:#fff}.SharpAutocomplete .SharpTemplate{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.SharpAutocomplete--wrap .SharpTemplate--has-children{overflow:visible;white-space:normal}.SharpAutocomplete--disabled{opacity:.5;cursor:not-allowed!important;outline:none!important}.SharpAutocomplete .SharpLoading{position:absolute;right:0;top:50%;transform:translateY(-50%)}.SharpAutocomplete .SharpLoading__svg{stroke:#314255}.SharpUpload{position:relative}.SharpUpload .dropzone{margin:0}.SharpUpload .dz-image-preview{display:none}.SharpUpload__thumbnail{align-self:center}.SharpUpload__thumbnail img{display:block;margin:auto;height:auto;width:auto;max-width:100%;max-height:150px}.SharpUpload__infos{display:flex;flex-flow:column;justify-content:space-between}.SharpUpload__infos .progress-bar{transition:width .5s}.SharpUpload__infos .SharpUpload__info{font-size:.75rem}.SharpUpload__infos .SharpUpload__download-link{font-size:.75rem;text-decoration:none}.SharpUpload__infos .SharpUpload__filename{font-size:.875rem;font-weight:500}.SharpUpload__progress{height:3px;background:#EBF0F7;transition-delay:.5s}.SharpUpload__progress-bar{transition:width .5s cubic-bezier(.5,0,.1,1);height:100%;background:#5596e6}.SharpUpload__progress-leave-to .SharpUpload__progress-bar{width:100%}.SharpUpload__card{transition:border .125s ease-in-out,box-shadow .125s ease-in-out}.SharpUpload--focused .SharpUpload__card,.SharpUpload .dz-drag-hover .SharpUpload__card{box-shadow:0 .5rem 1rem #00000026;border-color:var(--primary-hsl)}.SharpUpload--compacted .SharpUpload__thumbnail img{max-height:60px!important}.SharpUpload--disabled{cursor:default;opacity:.7}.SharpUpload--disabled .SharpUpload__upload-button{pointer-events:none}.SharpList__empty-alert{opacity:.5}.SharpList__add-button{position:relative}.SharpList__sort-button{position:sticky;top:calc(var(--field-header-sticky-top) + .675rem);margin-top:.675rem;z-index:51;pointer-events:auto}.SharpList__sticky-wrapper{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.SharpList__remove-button{position:absolute;top:.375rem;right:.25rem;padding:.5em;transition:opacity .25s ease-in-out;font-size:.75rem;z-index:1}.SharpList__remove-button:not(:hover):not(.multiselect__option--highlight):not(:focus){opacity:.375}.SharpList__item{position:relative;padding-top:1.5rem;padding-bottom:2rem;transition:outline-color .15s ease-in-out;outline:1px solid transparent}.SharpList__item:first-child{padding-top:1.5rem}.SharpList__item:not(:last-child){border-bottom-style:dashed;border-bottom-color:#00000040}.SharpList__item .SharpGrid__row:first-child .SharpForm__form-item--no-label{margin-top:1rem}.SharpList__item .SharpGrid__row:first-child>.SharpGrid__col:last-child .SharpForm__label{margin-right:1rem}.SharpList__item .SharpGrid__row--has-label:first-child .SharpForm__form-item--no-label{margin-top:0}.SharpList__item .SharpGrid__row--has-locale-select:first-child{margin-top:.75rem}.SharpList__item .btn-block{font-size:.75rem}.SharpList__item .btn-sm,.SharpList__item .btn-group-sm>.btn{font-size:.6875rem}.SharpList__item .SharpFieldLocaleSelect__btn{font-size:.625rem}.SharpList__item .SharpForm__label{font-size:.765625rem}.SharpList__item .SharpField .SharpClearButton:not(:focus){opacity:0}.SharpList__item .SharpField:hover .SharpClearButton,.SharpList__item .SharpField.multiselect__option--highlight .SharpClearButton{opacity:1}.SharpList__item .SharpSelect.SharpSelect--list{padding-left:0!important;padding-right:0!important}.SharpList__item .SharpList__drag-handle{position:absolute;top:0;left:0;width:1rem;height:100%;z-index:40;cursor:move;opacity:var(--drag-handle-opacity, 0);transition:opacity .15s ease-in-out;font-size:.625rem}.SharpList__item.expand-enter-active{transition:all .4s}.SharpList__item.expand-leave-active{transition:all .2s}.SharpList__item.expand-enter,.SharpList__item.expand-leave-to{opacity:0;transform:translateY(30px)}.SharpList__item--no-transition{transition:unset}.SharpList__item[style*="display: none"]:first-child+.SharpList__item{border-top-left-radius:inherit;border-top-right-radius:inherit;border-top-width:var(--bs-list-group-border-width)}.SharpList__item--drag-active{cursor:move}.SharpList__item--drag-active *{pointer-events:none}.SharpList__item--drag-active:hover,.SharpList__item--drag-active.multiselect__option--highlight{outline:var(--hover-outline, 1px solid rgba(var(--bs-body-color-rgb), .5));z-index:1}.SharpList__item.sortable-chosen{outline:1px solid rgba(var(--bs-body-color-rgb),.5);z-index:1}.SharpList__item:hover,.SharpList__item.multiselect__option--highlight{--drag-handle-opacity: 1}.SharpList__new-item-zone{position:absolute;top:0;left:0;right:0;height:2rem;transform:translateY(-50%);z-index:1;text-align:center}.SharpList__new-item-zone:hover button,.SharpList__new-item-zone.multiselect__option--highlight button{opacity:1}.SharpList__new-item-zone button{opacity:0;transition:opacity .25s ease-in-out}.SharpList__new-item-zone button:focus,.SharpList__new-item-zone .SharpFilterSelect--open button.form-control,.SharpFilterSelect--open .SharpList__new-item-zone button.form-control,.SharpList__new-item-zone .SharpUpload .dz-drag-hover button.SharpUpload__browse,.SharpUpload .dz-drag-hover .SharpList__new-item-zone button.SharpUpload__browse{opacity:1}.SharpList--dragging .SharpList__item{--drag-handle-opacity: 0;--hover-outline: 0}.SharpForm__form-item--no-label .SharpList--can-sort{margin-top:1.5rem}.SharpListUpload{position:relative;transition:border-color .125s ease-in-out,box-shadow .125s ease-in-out}.SharpListUpload__content{min-height:80px}.SharpListUpload__text{font-size:.875rem}.SharpListUpload__text a{position:relative;z-index:1}.SharpListUpload__icon{fill:currentColor;opacity:.375;margin-right:.75rem}.SharpListUpload__input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0}.SharpListUpload__help{font-size:.75rem;position:absolute;bottom:.25rem;right:.5rem;opacity:.675}.SharpListUpload--active .SharpListUpload__text a{position:static}.SharpListUpload--disabled{pointer-events:none;opacity:.75}.SharpListUpload:focus-within,.SharpListUpload--active{border:1px solid hsl(var(--primary-h),var(--primary-s),30%);border-top-width:1px!important;box-shadow:0 .5rem 1rem #00000026}.SharpListUpload:focus-within:not(:first-child),.SharpListUpload--active:not(:first-child){margin-top:-1px}.SharpDate{position:relative}.SharpDate__input--valuated.is-invalid,.SharpForm__form-item--danger .SharpDate__input--valuated.form-control{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-position:center right 2.25rem;background-size:calc(.75em + .5rem) calc(.75em + .5rem)}.SharpDate__input-wrapper:hover .SharpDate__clear-button,.SharpDate__input-wrapper.multiselect__option--highlight .SharpDate__clear-button{opacity:1}.SharpDate .vc-date{display:none!important}.SharpDate .SharpDatePicker>.vc-popover-content-wrapper{top:100%!important;transform:none!important}.SharpDate .vc-time-picker{padding:.875rem .5rem!important}.SharpSelect__clear-button{background:white}.SharpSelect__links{font-size:.75em}.SharpSelect__links a{color:#314255}.SharpTags .multiselect__option:before{content:attr(data-select) " "}.SharpGeolocation__map{padding-bottom:80%;max-width:100%}.SharpTrix--read-only{pointer-events:none;cursor:default;opacity:.8}.SharpTrix--read-only trix-editor{opacity:.8}.SharpTrix .separator{display:inline-block;width:0;border-left:1px solid #d9d9d9;border-right:1px solid #fff;color:transparent;text-indent:-10px;margin:0 6px}.SharpTrix trix-toolbar{display:block!important}.SharpTrix trix-editor{overflow:auto;min-height:0!important}.SharpTrix trix-editor[disabled]{pointer-events:none;cursor:default;opacity:.8}.SharpTrix h1,.SharpTrix .h1{font-size:1.25rem;font-weight:400;margin-top:.5rem;line-height:1.5}.SharpTrix h1:first-child,.SharpTrix .h1:first-child{margin:0}.SharpTrix pre{font-family:Lucida Console,Monaco,monospace;font-size:.875em;margin:0;padding:1rem;background:rgba(0,0,0,.05);white-space:pre;word-wrap:normal;word-break:normal}.SharpTrix ul,.SharpTrix ol,.SharpTrix ul ul,.SharpTrix ul ol,.SharpTrix ol ul,.SharpTrix ol ol{padding-left:1rem}.SharpTrix ul{list-style-type:disc}.SharpTrix ol{list-style-type:decimal}.SharpTrix blockquote{border-left:3px solid #000;margin:0;padding:0 0 0 1em}.SharpTrix .attachment{position:relative}.SharpTrix .attachment__remove{position:absolute;z-index:4;top:-3.4rem;left:50%;margin:0 0 0 -1.5rem;width:3rem;height:3rem;border:0;border-radius:5px;background:#1b6ac9;text-indent:0;color:transparent}.SharpTrix .attachment__remove:before{background:none!important;content:"";font-family:FontAwesome;color:#fff;opacity:1;font-size:1rem;display:inline-flex;align-items:center;justify-content:center}.SharpTrix .attachment__remove:after{content:" ";position:absolute;top:100%;left:50%;height:0;width:0;border:6px solid rgba(255,255,255,0);border-top-color:#1b6ac9;margin-left:-6px;pointer-events:none}.SharpGeolocationEdit--loading .SharpGeolocationEdit__input{padding-right:2rem}.SharpGeolocationEdit__loading{position:absolute;top:50%;right:0;bottom:0;transform:translateY(-50%)}.SharpGeolocationEdit .leaflet-container{cursor:crosshair}.SharpGeolocationEdit__map{padding-bottom:80%;max-width:100%}.SharpDateRange .form-control{text-align:center}.SharpDateRange__dash.form-control{width:auto;flex:0 0 auto}.SharpDatePicker .vc-popover-content-wrapper{z-index:120!important}.SharpDatePicker .vc-container{--primary-100: hsl(var(--primary-h), var(--primary-s), 90%);--primary-200: hsl(var(--primary-h), var(--primary-s), 85%);--primary-300: hsl(var(--primary-h), var(--primary-s), 70%);--primary-400: hsl(var(--primary-h), var(--primary-s), 60%);--primary-500: hsl(var(--primary-h), var(--primary-s), 50%);--primary-600: hsl(var(--primary-h), var(--primary-s), 40%);--primary-700: hsl(var(--primary-h), var(--primary-s), 30%);--primary-800: hsl(var(--primary-h), var(--primary-s), 20%);--primary-900: hsl(var(--primary-h), var(--primary-s), 10%)}.SharpFieldLocaleSelect{margin-bottom:.5rem}.SharpFieldLocaleSelect__btn{display:inline-flex;align-items:center;text-transform:uppercase;background:white;border:1px solid #b9cadf;color:var(--primary);border-radius:5px;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline-offset:2px;cursor:pointer;font-size:.625rem;line-height:1;padding-top:var(--padding-y);padding-bottom:var(--padding-y);--primary: hsl(var(--primary-h), var(--primary-s), 30%);--padding-y: .25rem}.SharpFieldLocaleSelect__btn:not(:focus-visible){outline:0}.SharpFieldLocaleSelect__btn--empty:not(.SharpFieldLocaleSelect__btn--active){border:1px dashed var(--primary);background:transparent}.SharpFieldLocaleSelect__btn--active{background:var(--primary);border:1px solid var(--primary);color:#fff}.SharpFieldLocaleSelect__btn--error:after{margin-left:.5em}.SharpFieldLocaleSelect__btn:hover,.SharpFieldLocaleSelect__btn.multiselect__option--highlight{border:1px solid var(--primary)}.SharpFieldContainer{position:relative}.SharpForm__alert{font-size:.875rem}.SharpForm__fieldset .SharpForm__label{font-size:.75rem}.SharpForm .SharpGrid{margin-bottom:-1.5rem}.SharpForm .SharpGrid__col--empty{display:none}.SharpForm .SharpGrid__col{margin-bottom:1.5rem}.SharpForm__label{display:block;min-height:1.25rem}.SharpForm__label--placeholder{display:none}.SharpForm__form-item{flex:1;height:100%}@media (min-width: 576px){.SharpForm__form-item--type-list{margin-top:-1rem}.SharpForm__form-item--type-list>.SharpForm__field-header{position:sticky;top:var(--field-header-sticky-top);padding-top:1rem;padding-left:.5rem;padding-right:.5rem;margin-left:-.5rem;margin-right:-.5rem}.SharpForm__form-item--type-list>.SharpForm__field-header.stuck{z-index:50;box-shadow:0 .125rem .25rem #00000013;background-color:#fff;border-bottom:1px solid #dee2e6}}.SharpForm__form-item--type-list .SharpForm__help-message{margin-top:1rem}.SharpForm__form-item--type-check .form-check{margin-bottom:0}.SharpForm__form-item>.SharpForm__field-content{display:flex;flex-direction:column;justify-content:center;min-height:2.5rem}.SharpForm .SharpGrid__row--has-label>.SharpGrid__col>.SharpForm__form-item--no-label .SharpForm__label{display:block}.SharpForm .SharpGrid__row--has-label>.SharpGrid__col>.SharpForm__form-item--no-label .SharpForm__label:after{content:"  "}.SharpForm .SharpGrid__row>.col-md-12>.SharpForm__form-item--type-check .SharpForm__label{display:none}.SharpForm .SharpGrid__row>.col-md-12>.SharpForm__form-item--type-check .SharpForm__field-content{min-height:auto}.SharpForm__label--disabled{opacity:.5}.SharpForm .invalid-feedback{font-weight:600;font-size:.875rem;margin-top:.25rem}.SharpForm .form-text{line-height:1.4}.form-modal{--global-message-margin-top: -.5rem;--global-message-margin-bottom: 1.5rem;--field-header-sticky-top: 0px;--bs-modal-width: 558px}.form .SharpActionView{padding-bottom:0}.form .SharpForm{padding-bottom:3rem}.form .SharpForm .tab-pane{background-color:#fff;--tab-padding-x: 1.25rem;--tab-padding-top: 1.5rem;--tab-padding-bottom: 2rem;--tab-divider-margin-top: 3rem;--tab-divider-margin-bottom: 1.5rem}.clearable{padding-right:2rem}.input-group--clearable{position:relative}.SharpEntityList .SharpDataList__row-append{width:4.5rem;background:white}@media (min-width: 576px){.SharpEntityList--has-state-only .SharpEntityList__actions{justify-content:flex-start}}.SharpEntityListTitle__info{font-size:var(--entity-list-title-info-font-size, .8125rem);opacity:var(--entity-list-title-info-opacity, .625)}.SharpWidget{text-align:center;border-width:0}.SharpWidget--panel.SharpWidget--link{border:1px solid transparent;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.SharpWidget--panel.SharpWidget--link:hover,.SharpWidget--panel.SharpWidget--link.multiselect__option--highlight{border-color:hsla(var(--primary-h),var(--primary-s),30%,.75)}.SharpWidget__title{text-align:left;font-size:1.125rem}.SharpWidget.SharpWidget--chart .card-body{padding:0}.SharpWidgetChart{text-align:left}.SharpWidgetChart--aspect-ratio{position:relative}.SharpWidgetChart--aspect-ratio:before{content:"";display:block;padding-top:calc(var(--ratio-y) / var(--ratio-x) * 100%)}.SharpWidgetChart--aspect-ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.SharpWidgetChart .apexcharts-canvas,.SharpWidgetChart .apexcharts-canvas>svg{max-width:100%}.SharpWidgetChart .apexcharts-zoom-icon{display:none}.SharpWidgetPanel{width:100%}.SharpLegend{justify-content:center;display:flex}.SharpLegend__item{white-space:nowrap}.SharpLegend__color{display:inline-block;width:1rem;height:.5rem;vertical-align:center}.SharpLegend__text{white-space:nowrap}.SharpWidgetOrderedList__list{text-align:left}.SharpWidgetOrderedList .SharpDataList{margin-right:-1rem;margin-left:-1rem;margin-bottom:-1rem}.SharpWidgetOrderedList .SharpDataList__table{margin-bottom:0;border-left:0;border-right:0;border-bottom:0;border-bottom-left-radius:var(--bs-border-radius);border-bottom-right-radius:var(--bs-border-radius)}.SharpWidgetOrderedList .SharpDataList__row:last-of-type{border-bottom:0}.dashboard .SharpDashboardPage .SharpGrid>*{margin-bottom:1rem}.dashboard .SharpDashboardPage .SharpGrid>*:last-child{margin-bottom:0}.ShowPage{--content-margin-top: 2rem}.ShowPage__content{margin-top:var(--content-margin-top)}.ShowPage__section{margin-bottom:2rem}.ShowPage__fields-grid{margin-bottom:-1.5rem}.ShowPage .show-field{margin-bottom:1.5rem}.ShowPage__fields-row--list{margin-top:.5rem}.ShowPage__fields-row:first-child{margin-top:0}.ShowPage--localized{--content-margin-top: 1.25rem}.ShowPage--title{--content-margin-top: 2rem}.ShowSection__grid{margin-bottom:-2rem}.ShowSection__col{margin-bottom:2rem}.ShowSection--layout-card .ShowSection__content{background:white;padding:1rem 1.25rem}.ShowEntityListField{--global-message-margin-top: .5rem;--global-message-margin-bottom: 1.5rem;--entity-list-title-info-opacity: .5;--entity-list-title-font-size: .75rem}.ShowEntityListField .SharpDataList__table{border:0}.ShowEntityListField .SharpPagination{margin-top:1.5rem}.ShowEntityListField__action-bar{top:calc(var(--navbar-height) + var(--bg-padding-top) + var(--sticky-offset, 0px));z-index:10;transition:padding .2s ease-in-out;--bg-padding-top: 1rem;--bg-padding-bottom: .75rem}.ShowEntityListField__action-bar .SharpButton--secondary-accent{border-color:#dfe3e6}.ShowEntityListField__action-bar:before{content:"";position:absolute;top:calc(var(--bg-padding-top) * -1 - var(--sticky-offset, 0px));bottom:calc(var(--bg-padding-bottom) * -1);left:0;right:0;background:white;box-shadow:0 .5rem 1rem #00000026;opacity:0;transition:opacity .2s ease-in-out;pointer-events:none}.ShowEntityListField__action-bar.stuck{padding-left:1.5rem;padding-right:1.5rem}.ShowEntityListField__action-bar.stuck:before{opacity:1}.ShowEntityListField--collapsed .SharpDataList{display:none}.ShowPictureField>.show-field__label{margin-bottom:1em}.ShowPictureField__thumbnail{max-width:100%}.ShowTextField{--file-font-size: .875em}.ShowTextField__content{white-space:pre-line}.ShowTextField__content h1,.ShowTextField__content .h1,.ShowTextField__content h2,.ShowTextField__content .h2,.ShowTextField__content h3,.ShowTextField__content .h3,.ShowTextField__content h4,.ShowTextField__content .h4,.ShowTextField__content h5,.ShowTextField__content .h5,.ShowTextField__content h6,.ShowTextField__content .h6{letter-spacing:normal}.ShowTextField__content h1,.ShowTextField__content .h1{font-size:2rem}.ShowTextField__content h2,.ShowTextField__content .h2{font-size:1.5rem}.ShowTextField__content h3,.ShowTextField__content .h3{font-size:1.125rem;font-weight:600}.ShowTextField__content h4,.ShowTextField__content .h4{font-size:1rem;font-weight:700}.ShowTextField__content h5,.ShowTextField__content .h5{font-size:.875rem;font-weight:700}.ShowTextField__content>img{width:auto;height:auto;max-width:100%;max-height:200px}@media (min-width: 768px){.ShowTextField__content>img{max-width:75%;max-height:300px}}.ShowTextField__content>ol,.ShowTextField__content>ul{margin-bottom:1rem;list-style:initial;padding-left:2rem}.ShowTextField__content>ol p,.ShowTextField__content>ul p{margin-bottom:0}.ShowTextField__content>.html-content{max-height:200px}.ShowTextField__content>.embed{display:block;margin-bottom:1.5rem;white-space:normal}.ShowTextField__content .iframe-wrapper iframe{display:block;width:450px;max-height:200px;max-width:100%;margin-bottom:1rem}.ShowTextField__content .iframe-wrapper iframe[height$="%"]{height:200px}.ShowTextField__content>:last-child{margin-bottom:0}.ShowTextField__more{text-transform:lowercase;text-decoration:none;font-size:.875em;font-weight:600}.ShowTextField--html .ShowTextField__content{white-space:normal}.ShowFileField .show-field__content{font-size:var(--file-font-size, 1em)}.ShowFileField__name{font-size:1em;font-weight:600;white-space:nowrap}.ShowFileField__info{font-size:.75em}.ShowFileField__download-container:before{content:"";height:calc(50% - 2em);max-height:calc(100% - 2.4em);display:block}.ShowFileField__download-button{padding:.25em 1em;line-height:1.75;font-size:.75em;height:auto}.ShowFileField__thumbnail-col{max-width:125px}.ShowFileField__thumbnail-col--collapsed{flex:0 0 auto;width:auto}.ShowFileField__thumbnail-container{display:flex;align-items:center;justify-content:center}.ShowFileField__thumbnail{display:block;max-width:100%}.ShowFileField__placeholder{color:#00000040;font-size:3rem;line-height:1}.ShowFileField--root{--file-font-size: .875em}.ShowFileField--root .show-field__content{padding-bottom:.5rem}.ShowFileField--has-label .ShowFileField__name{font-weight:400}.ShowFileField--has-placeholder .ShowFileField__name{margin-top:.25rem}.ShowListField>.show-field__label{margin-bottom:1em}.ShowListField>.show-field__content{font-size:.875em}.ShowListField__list{border:1px solid #dfe3e6}.ShowListField__item{padding:1em;border-bottom:1px solid #dfe3e6}.ShowListField__item:last-child{border-bottom:0}.ShowListField__fields-grid{margin-bottom:-.5rem}.ShowListField .show-field,.ShowListField--empty .ShowListField__label{margin-bottom:.5rem}.SharpFilterControl{font-size:.875rem;min-height:1.9375rem;--filter-value-color: hsl(var(--primary-h), var(--primary-s), 35%);--clear-button-color: hsla(var(--primary-h), var(--primary-s), 20% , .625);--clear-button-icon-width: .5rem}.SharpFilterControl .form-select,.SharpFilterControl .SharpForm .SharpSelect--dropdown,.SharpForm .SharpFilterControl .SharpSelect--dropdown{padding-right:1.5rem;background-position:right .25rem center}.SharpFilterControl .input-group-text{cursor:default}.SharpFilterControl .SharpClearButton{width:1.75rem}.SharpFilterControl>:not(:first-child){border-left:0}.SharpFilterDateRange__field{max-width:220px}.SharpFilterDateRange__field .input-group{height:100%}.SharpFilterDateRange input{color:var(--filter-value-color);text-decoration:underline}.SharpFilterDateRange input:focus,.SharpFilterDateRange .SharpFilterSelect--open input.form-control,.SharpFilterSelect--open .SharpFilterDateRange input.form-control,.SharpFilterDateRange .SharpUpload .dz-drag-hover input.SharpUpload__browse,.SharpUpload .dz-drag-hover .SharpFilterDateRange input.SharpUpload__browse{text-decoration:none}.SharpFilterDateRange .form-control{font-weight:700;font-size:.75rem;height:100%;border-left:0}.SharpFilterDateRange .form-control:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.SharpFilterDateRange .form-control.clearable{padding-right:1.5rem}.SharpFilterDateRange .SharpDateRange__dash{min-width:auto}.SharpFilterDateRange .dropdown-toggle{font-size:.875rem}.SharpFilterSelect{display:flex;border-radius:.25rem;position:relative}.SharpFilterSelect .form-control{font-size:inherit}.SharpFilterSelect .multiselect__tags-wrap{margin-left:-8px;margin-bottom:0}.SharpFilterSelect .multiselect__placeholder:before{content:"​"}.SharpFilterSelect--searchable.SharpFilterSelect--open .SharpAutocomplete .multiselect__tags{width:10rem;padding:0 1rem;top:100%;left:0;margin-top:5px;border-radius:.25rem;z-index:1001}.SharpFilterSelect--searchable.SharpFilterSelect--open .SharpAutocomplete .multiselect__input{height:2.5rem;font-size:.875rem}.SharpFilterSelect--searchable .SharpAutocomplete .multiselect__content{border-top:2.5rem solid white!important}.SharpFilterSelect:not(.SharpFilterSelect--empty):after{margin-left:0}.SharpFilterSelect .SharpAutocomplete .multiselect{background:none;border:0}.SharpFilterSelect .SharpAutocomplete .multiselect__tags{position:absolute;padding:0;width:0;height:0!important;transition:none}.SharpFilterSelect .SharpAutocomplete .multiselect__input{transition:none}.SharpFilterSelect .SharpAutocomplete .multiselect__tags-wrap,.SharpFilterSelect .SharpAutocomplete .multiselect__single,.SharpFilterSelect .SharpAutocomplete .multiselect__placeholder{display:none}.SharpFilterSelect .SharpAutocomplete .multiselect__content{top:100%;margin-top:5px}.SharpFilterSelect .SharpAutocomplete .SharpClearButton{display:none}.SharpFilterSelect .SharpSelect{width:100%}.SharpFilterSelect .SharpSelect .multiselect__content{display:none!important}.SharpFilterSelect .SharpSelect .multiselect{box-shadow:none!important}.SharpFilterSelect__select{position:static}.SharpFilterSelect__select .multiselect{position:static;background:none}.SharpFilterSelect__select .multiselect__content{left:0;min-width:10rem}@media (min-width: 768px){.SharpFilterSelect__select .multiselect__content{width:auto;max-width:30rem}}.SharpFilterSelect__select .multiselect__tag{background:transparent;height:auto;font-weight:700;margin-right:.125rem;margin-bottom:0;border-radius:0;padding-top:0!important;padding-bottom:0!important}.SharpFilterSelect__select .multiselect__tag:not(:first-child){border-left:1px solid #DAE3EE}.SharpFilterSelect__select .multiselect__tag-icon{color:var(--clear-button-color, hsla(var(--primary-h), var(--primary-s), 20%, .5));font-weight:500;font-size:1rem;height:20px}.SharpFilterSelect__select .multiselect__tag-icon:hover,.SharpFilterSelect__select .multiselect__tag-icon.multiselect__option--highlight{color:hsla(var(--primary-h),var(--primary-s),20%,1)}.SharpFilterSelect__select .multiselect__placeholder{margin-bottom:0}.SharpFilterSelect__select .multiselect__single{font-weight:700;font-size:.75rem;margin-right:.25rem;margin-bottom:0}.SharpFilterSelect__select .multiselect__tags{box-shadow:none;margin-bottom:0;border:none;min-height:0;border-bottom-left-radius:0;border-top-left-radius:0;cursor:default}@media (max-width: 575.98px){.SharpFilterSelect__select .multiselect__tags-wrap{display:flex;flex-flow:column;align-items:flex-start}}.SharpFilterSelect__select .multiselect:focus,.SharpFilterSelect__select .SharpUpload .dz-drag-hover .multiselect.SharpUpload__browse,.SharpUpload .dz-drag-hover .SharpFilterSelect__select .multiselect.SharpUpload__browse,.SharpFilterSelect__select .SharpFilterSelect--open .multiselect.form-control,.SharpFilterSelect--open .SharpFilterSelect__select .multiselect.form-control{outline:1px solid transparent}.SharpFilterSelect__select .multiselect.multiselect--active,.SharpFilterSelect__select .SharpFilterSelect--open .multiselect,.SharpFilterSelect--open .SharpFilterSelect__select .multiselect{box-shadow:unset}.SharpFilterSelect__select .SharpSelect__clear-button{width:1.5rem;--bs-btn-hover-bg: white;--bs-btn-active-bg: white}.SharpFilterSelect--underlined .multiselect__single{color:var(--filter-value-color);text-decoration:underline}.SharpFilterSelect--underlined .multiselect__tag{color:var(--filter-value-color)}.SharpFilterSelect--underlined .multiselect__tag span{text-decoration:underline}.SharpFilterCheck{color:hsl(var(--primary-h),var(--primary-s),20%);line-height:1.25}:first-child>.SharpFilterCheck{margin-left:0!important}.SharpGlobalFilters .multiselect__tags{max-width:calc(100% - 1rem)}.SharpGlobalFilters .multiselect__content{width:100%;box-shadow:0 1rem 3rem #0000002d}.SharpActionView{--content-left: 3.25rem;position:relative;transition:width ease .3s;transition-property:padding-left;padding-top:var(--content-top);padding-left:var(--content-left);padding-bottom:3rem;min-height:100vh;--content-top: var(--navbar-height)}@media (min-width: 992px){.SharpActionView{--content-left: 15rem;overflow:visible}}.SharpActionView__loading{top:var(--content-top, 0);left:var(--content-left, 0)}@media (min-width: 992px){.leftNav--collapsed .SharpActionView{--content-left: 3.25rem}}.leftNav--hidden .SharpActionView{--content-left: 0!important}.login{background:linear-gradient(45deg,hsl(var(--primary-h),var(--primary-s),var(--accent-bg-l)),hsl(var(--primary-h),var(--primary-s),var(--primary-l)) 80%)}.login__content{display:flex;height:100vh;padding:20vh 0}.login__powered{font-size:.75rem}.login__powered>span,.login__powered a{opacity:.5;mix-blend-mode:overlay}.login__powered a:hover,.login__powered a.multiselect__option--highlight{opacity:1}.login .container{width:100%}.login .alert,.login .SharpNotification{font-size:.875rem}.login .logo svg{--width: 225px;width:var(--width);height:calc(var(--width) * 15 / 100);fill:currentColor;color:hsl(var(--primary-h),var(--primary-s),calc(var(--primary-l) + 12.5%))}.login .card{border-radius:.5rem}.text-inverted{color:hsl(0,0%,calc((var(--primary-l) - var(--l-threshold)) * -100000))}.bg-primary{background-color:hsl(var(--primary-h),var(--primary-s),var(--primary-l))!important}.text-primary{color:hsl(var(--primary-h),var(--primary-s),30%)!important}.inset-0{top:0;bottom:0;left:0;right:0}a{color:hsl(var(--primary-h),var(--primary-s),30%)}a:hover,a.multiselect__option--highlight{color:hsl(var(--primary-h),var(--primary-s),15%)}body{background-color:hsl(var(--primary-h),20%,95%)}input[type=number].hide-controls{-moz-appearance:textfield}input[type=number].hide-controls::-webkit-inner-spin-button,input[type=number].hide-controls::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}[v-cloak]{display:none} diff --git a/resources/assets/dist/assets/client-api-2d1717ea.js b/resources/assets/dist/assets/client-api-2d1717ea.js deleted file mode 100644 index b6677a675..000000000 --- a/resources/assets/dist/assets/client-api-2d1717ea.js +++ /dev/null @@ -1 +0,0 @@ -import{V as o}from"./vendor-0e44235e.js";window.Vue=o; diff --git a/resources/assets/dist/assets/fa-brands-400-20c4a58b.ttf b/resources/assets/dist/assets/fa-brands-400-20c4a58b.ttf deleted file mode 100644 index 774d51ac4..000000000 Binary files a/resources/assets/dist/assets/fa-brands-400-20c4a58b.ttf and /dev/null differ diff --git a/resources/assets/dist/assets/fa-brands-400-74833209.woff2 b/resources/assets/dist/assets/fa-brands-400-74833209.woff2 deleted file mode 100644 index 71e318526..000000000 Binary files a/resources/assets/dist/assets/fa-brands-400-74833209.woff2 and /dev/null differ diff --git a/resources/assets/dist/assets/fa-regular-400-528d022d.ttf b/resources/assets/dist/assets/fa-regular-400-528d022d.ttf deleted file mode 100644 index 8a9d6344d..000000000 Binary files a/resources/assets/dist/assets/fa-regular-400-528d022d.ttf and /dev/null differ diff --git a/resources/assets/dist/assets/fa-regular-400-8e7e5ea1.woff2 b/resources/assets/dist/assets/fa-regular-400-8e7e5ea1.woff2 deleted file mode 100644 index 7f021680b..000000000 Binary files a/resources/assets/dist/assets/fa-regular-400-8e7e5ea1.woff2 and /dev/null differ diff --git a/resources/assets/dist/assets/fa-solid-900-67a65763.ttf b/resources/assets/dist/assets/fa-solid-900-67a65763.ttf deleted file mode 100644 index 993dbe1f9..000000000 Binary files a/resources/assets/dist/assets/fa-solid-900-67a65763.ttf and /dev/null differ diff --git a/resources/assets/dist/assets/fa-solid-900-7152a693.woff2 b/resources/assets/dist/assets/fa-solid-900-7152a693.woff2 deleted file mode 100644 index 5c16cd3e8..000000000 Binary files a/resources/assets/dist/assets/fa-solid-900-7152a693.woff2 and /dev/null differ diff --git a/resources/assets/dist/assets/sharp-5a3a4764.js b/resources/assets/dist/assets/sharp-5a3a4764.js deleted file mode 100644 index 19b04d8ff..000000000 --- a/resources/assets/dist/assets/sharp-5a3a4764.js +++ /dev/null @@ -1,10 +0,0 @@ -var ma=Object.defineProperty;var pa=(t,e,s)=>e in t?ma(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;var M=(t,e,s)=>(pa(t,typeof e!="symbol"?e+"":e,s),s);import{B as fa,a as _a,D as St,b as ga,c as va,d as ba,t as kt,V as h,q as Ce,e as xt,f as X,g as ya,F as Ca,h as w,i as Ye,j as Ft,k as E,l as $a,M as _e,m as wa,n as Sa,o as ka,p as xa,r as Fa,s as La,_ as Lt,u as Ba,v as Oa,w as Ea,x as Bt,y as Ia,z as Ta,A as Aa,L as Ot,C as Et,E as It,N as Tt,P as J,G as Z,H as ee,I as Ra,J as Da,K as Pa,O as za,Q as Ma,R as ja,S as te,T as Na,U as Va,W as At,X as Ua,Y as Ha,Z as qa,$ as Ka,a0 as Ga,a1 as Wa,a2 as Qa,a3 as Xe,a4 as Rt,a5 as Ya,a6 as Xa,a7 as Ja,a8 as Za,a9 as en,aa as tn,ab as sn,ac as an,ad as nn,ae as rn,af as ln,ag as on,ah as Dt,ai as dn,aj as cn,ak as un,al as Pt,am as A,an as hn,ao as mn,ap as pn,aq as fn,ar as _n,as as $e,at as we,au as gn,av as vn,aw as bn,ax as yn}from"./vendor-0e44235e.js";const Je=t=>{let e=!1,s;return()=>(e||(e=!0,s=t()),s)};let Ze=!1;const zt=(t,e)=>{if(!(typeof document>"u")){if(Ze)throw new Error("You already started the loading of google maps");{Ze=!0;const s=document.createElement("SCRIPT");if(typeof t!="object")throw new Error("options should be an object");Array.prototype.isPrototypeOf(t.libraries)&&(t.libraries=t.libraries.join(",")),t.callback="vueGoogleMapsInit";let a="https://maps.googleapis.com/";typeof e=="boolean"&&e===!0&&(a="https://maps.google.cn/");let n=a+"maps/api/js?"+Object.keys(t).map(i=>encodeURIComponent(i)+"="+encodeURIComponent(t[i])).join("&");s.setAttribute("src",n),s.setAttribute("async",""),s.setAttribute("defer",""),document.head.appendChild(s)}}},Mt=(t,e,s)=>{for(let a of s)(t.$gmapOptions.autobindAllEvents||t.$listeners[a])&&e.addListener(a,n=>{t.$emit(a,n)})};function jt(t,e,s,a=!1){let n=!1;function i(){n||(n=!0,t.$nextTick(()=>{n=!1,s()}))}for(let l of e)t.$watch(l,i,{immediate:a})}function et(t){return t.charAt(0).toUpperCase()+t.slice(1)}function ge(t,e){return Object.keys(e).reduce((s,a)=>(t[a]!==void 0&&(s[a]=t[a]),s),{})}function Nt(t,e,s,a){for(let n in s){let{twoWay:i,type:l,trackProperties:d,noBind:u}=s[n];if(u)continue;const c="set"+et(n),m="get"+et(n),g=n.toLowerCase()+"_changed",p=t[n];if(typeof e[c]>"u")throw new Error(`${c} is not a method of (the Maps object corresponding to) ${t.$options._componentTag}`);l!==Object||!d?t.$watch(n,()=>{const C=t[n];e[c](C)},{immediate:typeof p<"u",deep:l===Object}):jt(t,d.map(C=>`${n}.${C}`),()=>{e[c](t[n])},t[n]!==void 0),i&&(t.$gmapOptions.autobindAllEvents||t.$listeners[g])&&e.addListener(g,C=>{t.$emit(g,e[m]())})}}const Cn={inject:{$mapPromise:{default:"abcdef"}},provide(){return this.$mapPromise.then(t=>{this.$map=t}),{}}};function Vt(t){const{mappedProps:e,name:s,ctr:a,ctrArgs:n,events:i,beforeCreate:l,afterCreate:d,props:u,...c}=t,m=`$${s}Promise`,g=`$${s}Object`;return $n(!(c.props instanceof Array),"`props` should be an object, not Array"),{...typeof GENERATE_DOC<"u"?{$vgmOptions:t}:{},mixins:[Cn],props:{...u,...Ut(e)},render(){return""},provide(){const p=this.$mapPromise.then(C=>{this.$map=C;const k={...this.options,map:C,...ge(this,e)};if(delete k.options,l){const Qe=l.bind(this)(k);if(Qe instanceof Promise)return Qe.then(()=>({options:k}))}return{options:k}}).then(({options:C})=>{const k=a();return this[g]=n?new(Function.prototype.bind.call(k,null,...n(C,ge(this,u||{})))):new k(C),Nt(this,this[g],e),Mt(this,this[g],i),d&&d.bind(this)(this[g]),this[g]});return this[m]=p,{[m]:p}},destroyed(){this[g]&&this[g].setMap&&this[g].setMap(null)},...c}}function $n(t,e){if(!t)throw new Error(e)}function Ut(t){return Object.entries(t).map(([e,s])=>{const a={};return"type"in s&&(a.type=s.type),"default"in s&&(a.default=s.default),"required"in s&&(a.required=s.required),[e,a]}).reduce((e,[s,a])=>(e[s]=a,e),{})}const wn={animation:{twoWay:!0,type:Number},attribution:{type:Object},clickable:{type:Boolean,twoWay:!0,default:!0},cursor:{type:String,twoWay:!0},draggable:{type:Boolean,twoWay:!0,default:!1},icon:{twoWay:!0},label:{},opacity:{type:Number,default:1},options:{type:Object},place:{type:Object},position:{type:Object,twoWay:!0},shape:{type:Object,twoWay:!0},title:{type:String,twoWay:!0},zIndex:{type:Number,twoWay:!0},visible:{twoWay:!0,default:!0}},Sn=["click","rightclick","dblclick","drag","dragstart","dragend","mouseup","mousedown","mouseover","mouseout"],Se=Vt({mappedProps:wn,events:Sn,name:"marker",ctr:()=>google.maps.Marker,inject:{$clusterPromise:{default:null}},render(t){return!this.$slots.default||this.$slots.default.length===0?"":this.$slots.default.length===1?this.$slots.default[0]:t("div",this.$slots.default)},destroyed(){this.$markerObject&&(this.$clusterObject?this.$clusterObject.removeMarker(this.$markerObject,!0):this.$markerObject.setMap(null))},beforeCreate(t){return this.$clusterPromise&&(t.map=null),this.$clusterPromise},afterCreate(t){this.$clusterPromise&&this.$clusterPromise.then(e=>{e.addMarker(t),this.$clusterObject=e})}}),kn={options:{type:Object,required:!1,default(){return{}}},position:{type:Object,twoWay:!0},zIndex:{type:Number,twoWay:!0}},xn=["domready","closeclick","content_changed"],Fn=Vt({mappedProps:kn,events:xn,name:"infoWindow",ctr:()=>google.maps.InfoWindow,props:{opened:{type:Boolean,default:!0}},inject:{$markerPromise:{default:null}},mounted(){const t=this.$refs.flyaway;t.parentNode.removeChild(t)},beforeCreate(t){if(t.content=this.$refs.flyaway,this.$markerPromise)return delete t.position,this.$markerPromise.then(e=>(this.$markerObject=e,e))},methods:{_openInfoWindow(){this.opened?this.$markerObject!==null?this.$infoWindowObject.open(this.$map,this.$markerObject):this.$infoWindowObject.open(this.$map):this.$infoWindowObject.close()}},afterCreate(){this._openInfoWindow(),this.$watch("opened",()=>{this._openInfoWindow()})}});function r(t,e,s,a,n,i,l,d){var u=typeof t=="function"?t.options:t;e&&(u.render=e,u.staticRenderFns=s,u._compiled=!0),a&&(u.functional=!0),i&&(u._scopeId="data-v-"+i);var c;if(l?(c=function(p){p=p||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,!p&&typeof __VUE_SSR_CONTEXT__<"u"&&(p=__VUE_SSR_CONTEXT__),n&&n.call(this,p),p&&p._registeredComponents&&p._registeredComponents.add(l)},u._ssrRegister=c):n&&(c=d?function(){n.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:n),c)if(u.functional){u._injectStyles=c;var m=u.render;u.render=function(C,k){return c.call(k),m(C,k)}}else{var g=u.beforeCreate;u.beforeCreate=g?[].concat(g,c):[c]}return{exports:t,options:u}}var Ln=function(){var e=this,s=e._self._c;return e._self._setupProxy,s("div",[s("div",{ref:"flyaway"},[e._t("default")],2)])},Bn=[],On=r(Fn,Ln,Bn,!1,null,null,null,null);const En=On.exports,In={props:["resizeBus"],data(){return{_actualResizeBus:null}},created(){typeof this.resizeBus>"u"?this.$data._actualResizeBus=this.$gmapDefaultResizeBus:this.$data._actualResizeBus=this.resizeBus},methods:{_resizeCallback(){this.resize()},_delayedResizeCallback(){this.$nextTick(()=>this._resizeCallback())}},watch:{resizeBus(t,e){this.$data._actualResizeBus=t},"$data._actualResizeBus"(t,e){e&&e.$off("resize",this._delayedResizeCallback),t&&t.$on("resize",this._delayedResizeCallback)}},destroyed(){this.$data._actualResizeBus&&this.$data._actualResizeBus.$off("resize",this._delayedResizeCallback)}};function Tn(t){let e=0;t(()=>{e+=1},()=>{e=Math.max(0,e-1)},()=>e===0)}const ce={center:{required:!0,twoWay:!0,type:Object,noBind:!0},zoom:{required:!1,twoWay:!0,type:Number,noBind:!0},heading:{type:Number,twoWay:!0},mapTypeId:{twoWay:!0,type:String},tilt:{twoWay:!0,type:Number},options:{type:Object,default(){return{}}}},An=["bounds_changed","click","dblclick","drag","dragend","dragstart","idle","mousemove","mouseout","mouseover","resize","rightclick","tilesloaded"],Rn=["panBy","panTo","panToBounds","fitBounds"].reduce((t,e)=>(t[e]=function(){this.$mapObject&&this.$mapObject[e].apply(this.$mapObject,arguments)},t),{}),Dn={resize(){this.$mapObject&&google.maps.event.trigger(this.$mapObject,"resize")},resizePreserveCenter(){if(!this.$mapObject)return;const t=this.$mapObject.getCenter();google.maps.event.trigger(this.$mapObject,"resize"),this.$mapObject.setCenter(t)},_resizeCallback(){this.resizePreserveCenter()}},Pn={mixins:[In],props:Ut(ce),provide(){return this.$mapPromise=new Promise((t,e)=>{this.$mapPromiseDeferred={resolve:t,reject:e}}),{$mapPromise:this.$mapPromise}},computed:{finalLat(){return this.center&&typeof this.center.lat=="function"?this.center.lat():this.center.lat},finalLng(){return this.center&&typeof this.center.lng=="function"?this.center.lng():this.center.lng},finalLatLng(){return{lat:this.finalLat,lng:this.finalLng}}},watch:{zoom(t){this.$mapObject&&this.$mapObject.setZoom(t)}},mounted(){return this.$gmapApiPromiseLazy().then(()=>{const t=this.$refs["vue-map"],e={...this.options,...ge(this,ce)};return delete e.options,this.$mapObject=new google.maps.Map(t,e),Nt(this,this.$mapObject,ce),Mt(this,this.$mapObject,An),Tn((s,a,n)=>{this.$mapObject.addListener("center_changed",()=>{n()&&this.$emit("center_changed",this.$mapObject.getCenter()),a()}),jt(this,["finalLat","finalLng"],()=>{s(),this.$mapObject.setCenter(this.finalLatLng)})}),this.$mapObject.addListener("zoom_changed",()=>{this.$emit("zoom_changed",this.$mapObject.getZoom())}),this.$mapObject.addListener("bounds_changed",()=>{this.$emit("bounds_changed",this.$mapObject.getBounds())}),this.$mapPromiseDeferred.resolve(this.$mapObject),this.$mapObject}).catch(t=>{throw t})},methods:{...Dn,...Rn}};var zn=function(){var e=this,s=e._self._c;return e._self._setupProxy,s("div",{staticClass:"vue-map-container"},[s("div",{ref:"vue-map",staticClass:"vue-map"}),s("div",{staticClass:"vue-map-hidden"},[e._t("default")],2),e._t("visible")],2)},Mn=[],jn=r(Pn,zn,Mn,!1,null,null,null,null);const ke=jn.exports;let Ht=null;function Nn(t,e){e={installComponents:!0,autobindAllEvents:!1,...e},Ht=new t({data:{gmapApi:null}});const s=new t;let a=Vn(e);t.mixin({created(){this.$gmapDefaultResizeBus=s,this.$gmapOptions=e,this.$gmapApiPromiseLazy=a}}),t.$gmapDefaultResizeBus=s,t.$gmapApiPromiseLazy=a,e.installComponents&&(t.component("GmapMap",ke),t.component("GmapMarker",Se),t.component("GmapInfoWindow",En),t.component("GmapPolyline",Polyline),t.component("GmapPolygon",Polygon),t.component("GmapCircle",Circle),t.component("GmapRectangle",Rectangle),t.component("GmapAutocomplete",Autocomplete),t.component("GmapPlaceInput",PlaceInput),t.component("GmapStreetViewPanorama",StreetViewPanorama))}function Vn(t){function e(){return Ht.gmapApi={},window.google}if(t.load)return Je(()=>typeof window>"u"?new Promise(()=>{}).then(e):new Promise((s,a)=>{try{window.vueGoogleMapsInit=s,zt(t.load,t.loadCn)}catch(n){a(n)}}).then(e));{const s=new Promise(a=>{typeof window>"u"||(window.vueGoogleMapsInit=a)}).then(e);return Je(()=>s)}}const Un={props:{items:Array},computed:{icon(){var t;return(t=this.$store.state.currentEntity)==null?void 0:t.icon}},methods:{isActive(t){return t===this.items.length-1}}};var Hn=function(){var e=this,s=e._self._c;return s("div",{staticClass:"d-flex"},[s("div",{staticClass:"d-flex align-items-center"},[e.icon&&e.items&&e.items.length?[s("div",{staticClass:"me-2 pe-1"},[s("i",{staticClass:"fa fa-sm d-block text-primary opacity-75 fs-8",class:e.icon})])]:e._e(),s("div",{staticClass:"breadcrumb align-items-center p-0 m-0"},[e._l(e.items,function(a,n){return[s("div",{staticClass:"breadcrumb-item",class:{active:e.isActive(n)}},[e.isActive(n)?[s("span",[e._v(e._s(a.name))])]:[s("a",{attrs:{href:a.url}},[e._v(e._s(a.name))])]],2)]})],2)],2)])},qn=[],Kn=r(Un,Hn,qn,!1,null,null,null,null);const xe=Kn.exports,Gn={props:{variant:{type:String,default:"primary"},text:Boolean,outline:Boolean,small:Boolean,large:Boolean,active:Boolean,block:Boolean,href:String,disabled:Boolean},computed:{variantClass(){return!this.hasTextStyle&&this.variant?`btn${this.outline?"-outline":""}-${this.variant}`:null},classes(){return[this.variantClass,{"btn-sm":this.small,"btn-lg":this.large,"btn-text":this.hasTextStyle,"btn-block":this.block,active:this.active,disabled:this.disabled}]},hasTextStyle(){return this.text===!0},tag(){return this.href?"a":"button"}},methods:{focus(){this.$el.focus()}}};var Wn=function(){var e=this,s=e._self._c;return s(e.tag,e._g({tag:"component",staticClass:"SharpButton btn",class:e.classes,attrs:{href:e.href,disabled:e.disabled}},e.$listeners),[e._t("default")],2)},Qn=[],Yn=r(Gn,Wn,Qn,!1,null,null,null,null);const _=Yn.exports,Xn={props:{formControl:{type:Boolean,default:!0}},computed:{classes(){return{"SharpClearButton--form-control":this.formControl}}},methods:{click(){this.$el.click()}}};var Jn=function(){var e=this,s=e._self._c;return s("button",e._g({staticClass:"SharpClearButton btn",class:e.classes,attrs:{type:"button"}},e.$listeners),[s("svg",{staticClass:"SharpClearButton__icon",attrs:{"aria-label":"close",width:"10",height:"10",viewBox:"0 0 10 10","fill-rule":"evenodd"}},[s("path",{attrs:{d:"M9.8 8.6L8.4 10 5 6.4 1.4 10 0 8.6 3.6 5 .1 1.4 1.5 0 5 3.6 8.6 0 10 1.4 6.4 5z"}})])])},Zn=[],ei=r(Xn,Jn,Zn,!1,null,null,null,null);const se=ei.exports,ti={name:"SharpNavItem",props:{current:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},href:String,target:String,linkClass:String}};var si=function(){var e=this,s=e._self._c;return s("li",{staticClass:"SharpLeftNav__item",class:{"SharpLeftNav__item--active":e.current,"SharpLeftNav__item--disabled":e.disabled},attrs:{role:"menuitem"}},[e.disabled?[s("span",{staticClass:"SharpLeftNav__item-link",class:e.linkClass},[e._t("default")],2)]:[s("a",{staticClass:"SharpLeftNav__item-link",class:e.linkClass,attrs:{href:e.href,target:e.target}},[e._t("default")],2)]],2)},ai=[],ni=r(ti,si,ai,!1,null,null,null,null);const ii=ni.exports,ri={components:{BCollapse:fa},props:{label:String,opened:Boolean,collapsible:Boolean},data(){return{expanded:this.opened||!this.collapsible}},methods:{toggle(){this.collapsible&&(this.expanded=!this.expanded)}}};var li=function(){var e=this,s=e._self._c;return s("li",{staticClass:"SharpLeftNav__item SharpLeftNav__item--has-children",class:{"SharpLeftNav__item--expanded":e.expanded,"SharpLeftNav__item--disabled":!e.collapsible}},[s("div",{staticClass:"SharpLeftNav__item-link",attrs:{tabindex:e.collapsible?"0":"-1"},on:{keydown:function(a){return!a.type.indexOf("key")&&e._k(a.keyCode,"enter",13,a.key,"Enter")?null:e.toggle.apply(null,arguments)},click:e.toggle}},[s("div",{staticClass:"row gx-2 align-items-center flex-nowrap"},[s("div",{staticClass:"col",staticStyle:{"min-width":"0"}},[e._t("label",function(){return[e._v(" "+e._s(e.label)+" ")]})],2),e.collapsible?[s("div",{staticClass:"col-auto"},[s("div",{staticClass:"SharpLeftNav__item-icon"},[s("svg",{staticClass:"SharpLeftNav__icon",attrs:{width:"10",height:"5",viewBox:"0 0 10 5","fill-rule":"evenodd"}},[s("path",{attrs:{d:"M10 0L5 5 0 0z"}})])])])]:e._e()],2)]),s("b-collapse",{attrs:{visible:e.expanded}},[s("ul",{staticClass:"SharpLeftNav__list SharpLeftNav__list--nested",attrs:{role:"menu","aria-hidden":"true"}},[e._t("default")],2)])],1)},oi=[],di=r(ri,li,oi,!1,null,null,null,null);const ci=di.exports,ui={name:"SharpPagination",inheritAttrs:!1,components:{BPagination:_a},props:{totalRows:Number,perPage:Number,minPageEndButtons:{type:Number,default:0}},computed:{hideGotoEndButtons(){return Math.ceil(this.totalRows/Math.max(this.perPage,1))({})},url:String,header:Boolean,highlight:Boolean,selecting:Boolean,deleting:Boolean},data(){return{isHighlighted:this.highlight}},watch:{highlight(){this.isHighlighted=this.highlight}},computed:{hasLink(){return!!this.url},classes(){return{"SharpDataList__row--header":this.header,"SharpDataList__row--disabled":!this.header&&!this.hasLink,"SharpDataList__row--highlight":this.isHighlighted,"SharpDataList__row--deleting":this.deleting}}},methods:{colClasses(t){const{size:e,sizeXS:s,hideOnXS:a}=t;return{col:s==="fill"&&!a,[`col-${s}`]:s!=="fill"&&!a,"col-md":e==="fill",[`col-md-${e}`]:e!=="fill","d-none d-md-block":a}},toggleHighlight(t){this.isHighlighted=t}}};var gi=function(){var e=this,s=e._self._c;return s("div",{staticClass:"SharpDataList__row position-relative px-3",class:e.classes},[s("div",{staticClass:"row gx-0"},[e.$scopedSlots.prepend?[s("div",{staticClass:"col-auto align-self-center"},[s("div",{staticClass:"SharpDataList__row-prepend"},[e._t("prepend")],2)])]:e.header&&e.selecting?[e._m(0)]:e._e(),s("div",{staticClass:"col d-flex flex-column justify-content-center position-relative"},[s("div",{staticClass:"SharpDataList__cols py-3"},[s("div",{staticClass:"row align-items-center gx-n2 gx-md-n3"},[e._l(e.columns,function(a,n){return[s("div",{class:[e.header?"SharpDataList__th":"SharpDataList__td",e.colClasses(a)],staticStyle:{"min-width":"0"}},[e._t("cell",function(){return[a.html?[s("div",{staticClass:"SharpDataList__td-html-container",domProps:{innerHTML:e._s(e.row[a.key])}})]:[e._v(" "+e._s(e.row[a.key])+" ")]]},{row:e.row,column:a})],2)]})],2)]),e.hasLink&&!e.selecting?[s("a",{staticClass:"SharpDataList__row-link position-absolute inset-0",attrs:{href:e.url}})]:e._e()],2),s("div",{staticClass:"col-sm-auto align-self-center"},[e.$scopedSlots.append?[s("div",{staticClass:"SharpDataList__row-append pb-3 pt-sm-3"},[e._t("append",null,null,this)],2)]:[s("div",{staticStyle:{width:"var(--append-width, auto)"}})]],2)],2)])},vi=[function(){var t=this,e=t._self._c;return e("div",{staticClass:"col-auto"},[e("div",{staticStyle:{width:"var(--prepend-width, auto)"}})])}],bi=r(_i,gi,vi,!1,null,null,null,null);const Fe=bi.exports,yi={components:{Pagination:fi,DataListRow:Fe,Draggable:St},props:{items:Array,columns:Array,paginated:Boolean,totalCount:Number,pageSize:Number,page:Number,reordering:Boolean,sort:String,dir:String,hideHeader:Boolean},data(){return{reorderedItems:null,prependWidth:0,appendWidth:0}},watch:{reordering(t){this.handleReorderingChanged(t)}},computed:{hasPagination(){return!!this.paginated&&this.totalCount/this.pageSize>1},draggableOptions(){return{disabled:!this.reordering}},currentItems(){return this.reordering?this.reorderedItems:this.items},isEmpty(){return(this.items||[]).length===0},styles(){return{"--prepend-width":this.prependWidth?`${this.prependWidth}px`:null,"--append-width":this.appendWidth?`${this.appendWidth}px`:null}}},methods:{handleItemsChanged(t){this.reorderedItems=t,this.$emit("change",t)},handleSortClicked(t){this.$emit("sort-change",{prop:t,dir:this.sort===t&&this.dir==="asc"?"desc":"asc"})},handlePageChanged(t){this.$emit("page-change",t)},handleReorderingChanged(t){this.reorderedItems=t?[...this.items]:null},async updateLayout(){var a,n,i,l,d,u;this.appendWidth=0,await this.$nextTick();const t=((n=(a=this.$refs.head)==null?void 0:a.querySelector(".SharpDataList__row-append"))==null?void 0:n.offsetWidth)??0,e=((l=(i=this.$refs.body)==null?void 0:i.querySelector(".SharpDataList__row-append"))==null?void 0:l.offsetWidth)??0,s=((u=(d=this.$refs.body)==null?void 0:d.querySelector(".SharpDataList__row-prepend"))==null?void 0:u.offsetWidth)??0;this.appendWidth=Math.max(t,e),this.prependWidth=s}},updated(){},mounted(){this.updateLayout(),window.addEventListener("resize",this.updateLayout)},destroyed(){window.removeEventListener("resize",this.updateLayout)}};var Ci=function(){var e=this,s=e._self._c;return s("div",{staticClass:"SharpDataList",class:{"SharpDataList--reordering":e.reordering},style:e.styles},[e.isEmpty?[s("div",{staticClass:"SharpDataList__empty"},[e._t("prepend"),s("div",{staticClass:"p-3"},[e._t("empty"),e._t("append-body")],2)],2)]:[e.$slots["append-head"]?[s("div",{staticClass:"d-flex justify-content-end mb-3 d-sm-none"},[e._t("append-head")],2)]:e._e(),s("div",{staticClass:"SharpDataList__table SharpDataList__table--border"},[e._t("prepend"),e.hideHeader?e._e():[s("div",{ref:"head",staticClass:"SharpDataList__thead"},[s("DataListRow",{attrs:{columns:e.columns,header:""},scopedSlots:e._u([{key:"cell",fn:function({column:a}){return[s("div",{staticClass:"row"},[s("div",{staticClass:"col-auto"},[s("div",{staticClass:"row align-items-center gx-2"},[s("div",{staticClass:"col",staticStyle:{"min-width":"0"}},[s("div",{staticClass:"overflow-hidden"},[e._v(" "+e._s(a.label)+" ")])]),a.sortable?[s("div",{staticClass:"col-auto"},[s("svg",{staticClass:"SharpDataList__caret",class:{"SharpDataList__caret--selected":e.sort===a.key,"SharpDataList__caret--ascending":e.sort===a.key&&e.dir==="asc"},attrs:{width:"10",height:"5",viewBox:"0 0 10 5","fill-rule":"evenodd"}},[s("path",{attrs:{d:"M10 0L5 5 0 0z"}})]),s("a",{staticClass:"SharpDataList__sort-link",attrs:{href:""},on:{click:function(n){return n.preventDefault(),e.handleSortClicked(a.key)}}})])]:e._e()],2)])])]}},e.$slots["append-head"]?{key:"append",fn:function(){return[e._t("append-head")]},proxy:!0}:null],null,!0)})],1)],s("div",{ref:"body",staticClass:"SharpDataList__tbody"},[s("Draggable",{attrs:{options:e.draggableOptions,value:e.reorderedItems},on:{input:e.handleItemsChanged}},[e._l(e.currentItems,function(a){return[e._t("item",null,{item:a})]})],2),e._t("append-body")],2)],2)],e.hasPagination?[s("div",{staticClass:"SharpDataList__pagination-container"},[s("Pagination",{attrs:{"total-rows":e.totalCount,"per-page":e.pageSize,"min-page-end-buttons":3,limit:7,value:e.page},on:{change:e.handlePageChanged}})],1)]:e._e()],2)},$i=[],wi=r(yi,Ci,$i,!1,null,null,null,null);const qt=wi.exports,Si={name:"SharpDropdown",components:{BDropdown:{extends:ga,computed:{boundaryClass:()=>null}}},props:{..._.props,text:[Boolean,String],showCaret:{type:Boolean,default:!0},title:String,disabled:Boolean},data(){return{boundary:"scrollParent"}},computed:{..._.computed,toggleClass(){return[this.classes,this.$attrs["toggle-class"]]},popperOptions(){return{modifiers:{preventOverflow:{padding:8,priority:["left","right"]}}}}},methods:{show(){this.$refs.dropdown.show()},hide(){this.$refs.dropdown.hide()}},mounted(){this.title&&this.$el.querySelector(".dropdown-toggle").setAttribute("title",this.title),this.$el.closest("[data-popover-boundary]")&&(this.boundary=this.$el.closest("[data-popover-boundary]"))}};var ki=function(){var e=this,s=e._self._c;return s("b-dropdown",e._g(e._b({ref:"dropdown",staticClass:"SharpDropdown",attrs:{"toggle-class":e.toggleClass,disabled:e.disabled,"no-caret":!e.showCaret,offset:1,boundary:e.boundary,"popper-opts":e.popperOptions,variant:"custom","no-flip":""},scopedSlots:e._u([{key:"button-content",fn:function(){return[e._t("text",function(){return[e._v(e._s(e.text))]})]},proxy:!0}],null,!0)},"b-dropdown",e.$attrs,!1),e.$listeners),[e._t("default",null,{hide:e.hide})],2)},xi=[],Fi=r(Si,ki,xi,!1,null,null,null,null);const $=Fi.exports,Li={name:"SharpDropdownItem",props:{active:Boolean,disabled:Boolean},components:{BDropdownItem:va},methods:{handleClick(t){this.$emit("click",t)}}};var Bi=function(){var e=this,s=e._self._c;return s("b-dropdown-item",e._b({attrs:{active:e.active,disabled:e.disabled},on:{click:e.handleClick}},"b-dropdown-item",e.$attrs,!1),[e._t("default")],2)},Oi=[],Ei=r(Li,Bi,Oi,!1,null,null,null,null);const x=Ei.exports,Ii={name:"SharpDropdownSeparator",components:{BDropdownDivider:ba}};var Ti=function(){var e=this,s=e._self._c;return s("b-dropdown-divider")},Ai=[],Ri=r(Ii,Ti,Ai,!1,null,null,null,null);const U=Ri.exports,Di={name:"SharpTemplate",props:{name:String,templateData:Object,templateProps:Array,template:String},computed:{component(){return{name:`SharpTemplate${this.name}`,template:`
${this.template??""}
`,props:[...this.templateProps||[],...Object.keys(this.templateData??{})],mounted(){var e,s,a;const t=!((e=this.$el.children)!=null&&e.length)&&!((s=this.$el.innerText)!=null&&s.trim());this.$emit("content-change",{isEmpty:t}),((a=this.$el.children)==null?void 0:a.length)>0&&this.$el.classList.add("SharpTemplate--has-children")}}}}};var Pi=function(){var e=this,s=e._self._c;return s(e.component,e._g(e._b({tag:"component"},"component",e.templateData,!1),e.$listeners),[e._t("default")],2)},zi=[],Mi=r(Di,Pi,zi,!1,null,null,null,null);const z=Mi.exports;const ji={props:{name:String}};var Ni=function(){var e=this,s=e._self._c;return s("div",{staticClass:"unknown-field"},[s("span",[e._v("Unknown field «"+e._s(e.name)+"»")])])},Vi=[],Ui=r(ji,Ni,Vi,!1,null,"494eccfb",null,null);const Le=Ui.exports,Hi={props:{options:Object},computed:{alertClasses(){return[`alert-${this.options.alertLevel}`]}}};var qi=function(){var e=this,s=e._self._c;return s("div",[e.options.alertLevel?[s("div",{staticClass:"alert mb-0",class:e.alertClasses},[e._t("default")],2)]:[e._t("default")]],2)},Ki=[],Gi=r(Hi,qi,Ki,!1,null,null,null,null);const Wi=Gi.exports,Qi={components:{GlobalMessageLayout:Wi,TemplateRenderer:z},props:{options:Object,fields:Object,data:Object},data(){return{visible:!0}},computed:{fieldKey(){return this.options.fieldKey},fieldOptions(){var t;return(t=this.fields)==null?void 0:t[this.fieldKey]},value(){var t;return(t=this.data)==null?void 0:t[this.fieldKey]}},methods:{handleTemplateContentChanged({isEmpty:t}){this.visible=!t}}};var Yi=function(){var e=this,s=e._self._c;return s("GlobalMessageLayout",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"SharpGlobalMessage",attrs:{options:e.options}},[e.fieldOptions?[s("TemplateRenderer",{attrs:{name:"GlobalMessage","template-data":e.value,template:e.fieldOptions.template},on:{"content-change":e.handleTemplateContentChanged}})]:e._e()],2)},Xi=[],Ji=r(Qi,Yi,Xi,!1,null,null,null,null);const ae=Ji.exports;function Zi(t){return t.text?t.text.trim().length===0:t.elm instanceof HTMLElement?t.elm.style.display==="none":!t.tag}function tt(t,{value:e},s){!s.children.length||s.children.every(a=>Zi(a))?t.classList.add(e):t.classList.remove(e)}const er={inserted:tt,componentUpdated:tt};class st{constructor(e){M(this,"el");M(this,"sentinel");M(this,"listener");M(this,"position");this.el=e,this.listener=kt(()=>this.refresh(),50),this.sentinel=document.createElement("div"),this.scrollContainer=e.closest(".modal")??window,this.position=window.getComputedStyle(e).bottom!=="auto"?"bottom":"top",this.sentinel.dataset.stickySentinel=!0,this.position==="bottom"?this.el.parentElement.insertBefore(this.sentinel,this.el.nextSibling):this.el.parentElement.insertBefore(this.sentinel,this.el),this.scrollContainer.addEventListener("scroll",this.listener),window.addEventListener("resize",this.listener),h.nextTick(()=>this.refresh())}destroy(){this.el=null,this.sentinel.remove(),this.scrollContainer.removeEventListener("scroll",this.listener),window.removeEventListener("resize",this.listener)}refresh(){if(!this.el)return;const e=this.el.getBoundingClientRect(),s=this.el.querySelector("[data-sticky-anchor]");this.position==="bottom"?this.setStuck(e.bottomthis.sentinel.getBoundingClientRect().top),s&&this.el.style.setProperty("--sticky-offset",`${e.top-s.getBoundingClientRect().top}px`)}setStuck(e){this.el.classList.toggle("stuck",e),this.el.dispatchEvent(new CustomEvent("stuck-change",{detail:e}))}}const H={inserted(t,{value:e,expression:s}){(e||!s)&&(t._stickyObserver=new st(t))},update(t,{value:e}){var s;e&&!t._stickyObserver&&(t._stickyObserver=new st(t)),(s=t._stickyObserver)==null||s.refresh()},unbind(t){var e;(e=t._stickyObserver)==null||e.destroy()}},tr={name:"SharpGrid",props:{rows:{type:Array,required:!0},rowClass:[Function,String],colClass:{type:Function,default:()=>null}},methods:{colClasses(t){const{size:e,sizeXS:s}=t,a=!!e;return[{[`col-${s}`]:s,[`col-md-${e}`]:a,"col-md":!a},this.colClass(t)]},rowClasses(t){return typeof this.rowClass=="function"?this.rowClass(t):this.rowClass}},directives:{"empty-class":er}};var sr=function(){var e=this,s=e._self._c;return s("div",{staticClass:"SharpGrid"},[e._l(e.rows,function(a){return[s("div",{staticClass:"SharpGrid__row row",class:e.rowClasses(a)},[e._l(a,function(n){return[s("div",{directives:[{name:"empty-class",rawName:"v-empty-class",value:"SharpGrid__col--empty",expression:"'SharpGrid__col--empty'"}],staticClass:"SharpGrid__col",class:e.colClasses(n)},[e._t("default",null,{itemLayout:n})],2)]})],2)]})],2)},ar=[],nr=r(tr,sr,ar,!1,null,null,null,null);const R=nr.exports,ir={props:{fade:Boolean},computed:{name(){if(this.fade)return"loading-fade"}}};var rr=function(){var e=this,s=e._self._c;return s("transition",{attrs:{name:e.name,appear:""}},[e._t("default")],2)},lr=[],or=r(ir,rr,lr,!1,null,null,null,null);const Kt=or.exports,dr={components:{LoadingTransition:Kt},props:{visible:{type:Boolean,default:!0},small:Boolean,light:Boolean,fade:Boolean},computed:{classes(){return{"SharpLoading--light":this.light}},spinnerClasses(){return{"spinner-border-sm":this.small}}}};var cr=function(){var e=this,s=e._self._c;return s("loading-transition",{attrs:{fade:e.fade}},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"SharpLoading",class:e.classes},[s("div",{staticClass:"d-block spinner-border",class:e.spinnerClasses})])])},ur=[],hr=r(dr,cr,ur,!1,null,null,null,null);const I=hr.exports,mr={components:{LoadingTransition:Kt,Loading:I},props:{visible:{type:Boolean,default:!0},absolute:Boolean,fade:Boolean},computed:{classes(){return{"SharpLoading__overlay--absolute":this.absolute}}}};var pr=function(){var e=this,s=e._self._c;return s("loading-transition",{attrs:{fade:e.fade}},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"SharpLoading__overlay",class:e.classes},[s("Loading",e._b({},"Loading",e.$attrs,!1))],1)])},fr=[],_r=r(mr,pr,fr,!1,null,null,null,null);const ne=_r.exports,Be={methods:{getMergedIdentifier(t,e){let s=this.$parent;for(;s&&typeof s[t]>"u";)s=s.$parent;let a="";return s!=null&&s[t]&&(a=s[t]+"."),`${a}${e}`}}},gr={mixins:[Be],props:{errorIdentifier:{type:[String,Number],required:!0}},computed:{mergedErrorIdentifier(){return this.getMergedIdentifier("mergedErrorIdentifier",this.errorIdentifier)}}};function vr(){const t=document.head.querySelector("meta[name=base-url]");return t?`/${t.content}`:"/sharp"}let Oe=vr(),Ee=`${Oe}/api`,br=`${Ee}/upload`;function yr(t){return Array.isArray(t)&&!t.length?null:t}function Cr(t){return Object.entries(t).reduce((e,[s,a])=>({...e,[s]:yr(a)}),t||{})}function $r(t){const e=Cr(t);return Ce.stringify(e,{strictNullHandling:!0})}function Gt(t){return new Promise(e=>{let s=new FileReader;s.addEventListener("loadend",function(){e(JSON.parse(s.result))}),s.readAsText(t)})}function wr(t={}){let{["content-disposition"]:e}=t;if(e&&e.includes("attachment")){let a=/filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/.exec(e);if(a!=null&&a[1])return a[1].replace(/['"]/g,"")}return null}function o(t,e){var a;const s=(a=window.i18n)==null?void 0:a[t];return s||(e!==void 0?e:t)}const Sr={state:{loading:!1,dialogs:[],currentEntity:null},mutations:{setLoading(t,e){t.loading=!!e},setDialogs(t,e){t.dialogs=e},setCurrentEntity(t,e){t.currentEntity=e}},getters:{isLoading(t){return!!t.loading}},actions:{setLoading({commit:t},e){t("setLoading",e)},setDialogs({commit:t},e){t("setDialogs",e)},setCurrentEntity({commit:t},e){t("setCurrentEntity",e)}}};let ue=null;function T(){return ue||(ue=new xt.Store(Sr))}let kr=0;function Wt({text:t,okCallback:e=()=>{},okCloseOnly:s,isError:a,...n}){const i=kr++;return new Promise((l,d)=>{T().dispatch("setDialogs",[...T().state.dialogs,{id:i,props:{...n,okOnly:s,noCloseOnBackdrop:s,noCloseOnEsc:s,visible:!0,isError:a},okCallback:()=>l(!0),hiddenCallback:()=>{T().dispatch("setDialogs",T().state.dialogs.filter(u=>u.id!==i)),l(!1)},text:t}])})}function D(t,{title:e,...s}={}){return Wt({okCloseOnly:!0,text:t,title:e,...s})}function Qt(t,{title:e,...s}={}){return Wt({text:t,title:e,size:"sm",hideHeader:!0,okTitle:o("modals.confirm.ok_button"),bodyClass:"pt-4",...s})}function Yt(t){return Qt(t,{okTitle:o("modals.confirm.delete.ok_button"),okVariant:"danger"})}function Xt({data:t,status:e}){return o(`modals.${e}.message`,null)||`${e}: ${t.message}`||o("modals.error.message")}async function Jt({data:t,method:e,status:s}){const a=Xt({data:t,status:s}),n=o(`modals.${s}.title`,null)||o("modals.error.title");s===404&&e==="get"||s===422||(await D(a,{title:n,isError:!0}),(s===401||s===419)&&location.reload())}function xr(t){t.interceptors.response.use(e=>(Fr(e),e),async e=>{const s=e.response;return s.data instanceof Blob&&s.data.type==="application/json"&&(s.data=await Gt(s.data)),Jt({data:s.data,status:s.status,method:e.config.method}),Promise.reject(e)})}function Fr(t){var s;const e=t.headers["content-type"];if(!(e!=null&&e.includes("application/json"))&&!((s=t.headers["content-disposition"])!=null&&s.includes("attachment"))){const{method:a,url:n}=t.config,i=`${a.toUpperCase()} ${n} : Invalid response content-type "${e}", expected JSON`;throw console.error(i),new Error(i)}}const v=Zt();function Zt(){const t=X.create({baseURL:Ee,paramsSerializer:$r});return xr(t),t}function Lr(t,{params:e}={}){return v.getUri({url:`${Ee}/${t.replace(/^\//,"")}`,params:e})}function Br(){return ya.read("XSRF-TOKEN")}const Or={caseSensitive:!1,include:[],minMatchCharLength:1,shouldSort:!0,tokenize:!0,matchAllTokens:!1,findAllMatches:!1,id:null,keys:["value"],location:0,threshold:0,distance:0,maxPatternLength:64};function Er(t,e,{searchKeys:s}={}){return new Ca(t,{...Or,keys:s}).search(e)}const Q="YYYYMMDD";function Ir(t){return Ce.stringify(t,{addQueryPrefix:!0,skipNulls:!0})}function Tr(t){return Ce.parse(t,{ignoreQueryPrefix:!0,strictNullHandling:!0})}function Ar(t){const[e,s]=(t||"").split("..");return{start:e?w(e,Q).toDate():null,end:s?w(s,Q).toDate():null}}function Rr(t){if(typeof t=="string")return t;let e=(t||{}).start,s=(t||{}).end;return e&&(e=w(e).format(Q)),s&&(s=w(s).format(Q)),e||s?`${e||""}..${s||""}`:null}function Ie(t){return`SHARP : ${t}`}function Dr(t,...e){console.log(Ie(t),...e)}function Pr(t,...e){console.warn(Ie(t),...e)}function b(t,...e){console.error(Ie(t),...e)}function zr(){return(navigator.language||"").slice(0,2)||"en"}function Mr(t){if(t==="fr")return{KB:"Ko",MB:"Mo"}}function Te(t){const e=zr(),s=Math.max(Ye(t,{output:"exponent"}),1),a=Math.max(t,128),n=Ye(a,{standard:"jedec",round:2,exponent:s,locale:!0,symbols:Mr(e)});return t<128?`< ${n}`:n}function es(t){const e=t[t.length-2];return e?e.url:null}function jr(t,e){return!t||!e?!1:t.replace(/:(.*)/,"")===e.replace(/:(.*)/,"")}const ts=/^custom-(.+)$/;function ss(t){return ts.test(t)}function as(t){const[e,s]=t.match(ts)||[],a=s?h.options.components[`SharpCustomField_${s}`]:null;return a||b(`unknown custom field type '${t}', make sure you register it correctly (https://sharp.code16.fr/docs/guide/custom-form-fields.html#register-the-custom-field)`),a}function Nr({level:t,title:e,message:s,autoHide:a}){h.notify({title:e,type:t,text:s,duration:a?4e3:-1})}function ns(t){setTimeout(()=>{var e;(e=t==null?void 0:t.forEach)==null||e.call(t,s=>Nr(s))},500)}function Y(t){return T().dispatch("setLoading",!0),t.finally(()=>{T().dispatch("setLoading",!1)})}function Vr(t){return t.uid||t._uid}function is(t){t&&!h.config.ignoredElements.includes(t)&&h.config.ignoredElements.push(t)}const Ur=[];let he=null;function V(t){return!he||t?he=new Ft({mode:"history",routes:Ur,base:`${Oe}/`,parseQuery:Tr,stringifyQuery:Ir}):he}function rs(t,{append:e}={}){let{href:s,route:a}=V().resolve(t);if(e){const n=V().currentRoute.path.replace(/\/$/,"");s=V().resolve(n+a.fullPath).href}return s}function Hr(){if(!document.referrer)return;const t=new URL(document.referrer);if(t.origin!==location.origin)return;const{route:e}=V().resolve(t.pathname+t.search);return e}function ls({entityKey:t,instanceId:e},s){return rs({name:"form",params:{entityKey:t,instanceId:e}},s)}function qr({entityKey:t,instanceId:e},s){return rs({name:"show",params:{entityKey:t,instanceId:e}},s)}const y={computed:{language(){return document.documentElement.lang}},methods:{l:o}};let Kr=t=>({methods:{lSub(e){return o(`${t}.${e}`)}}});function Gr(t="sm"){return{data(){return{isViewportSmall:!1}},methods:{$_responsiveUpdate(){let{offsetWidth:e}=this.$_testElm;this.isViewportSmall=!!e}},created(){let e=`viewport-down-${t}`;this.$_testElm=document.getElementById(e),this.$_testElm||(this.$_testElm=document.createElement("div"),this.$_testElm.id=e,this.$_testElm.classList.add(`d-${t}-none`),document.body.appendChild(this.$_testElm)),this.$_responsiveUpdate(),this.$_debouncedRespnsiveUpdate=E(this.$_responsiveUpdate,300),window.addEventListener("resize",this.$_debouncedRespnsiveUpdate)},destroyed(){window.removeEventListener("resize",this.$_debouncedRespnsiveUpdate)}}}const os={mixins:[Be],props:{configIdentifier:{type:String,required:!0}},computed:{mergedConfigIdentifier(){return this.getMergedIdentifier("mergedConfigIdentifier",this.configIdentifier)}}},Wr={inject:["axiosInstance"],methods:{showLoading(){this.$store.dispatch("setLoading",!0)},hideLoading(){this.$store.dispatch("setLoading",!1)},installInterceptors(){this.axiosInstance.interceptors.request.use(t=>(this.showLoading(),t),t=>Promise.reject(t)),this.axiosInstance.interceptors.response.use(t=>(this.hideLoading(),t),t=>(this.hideLoading(),Promise.reject(t)))}},created(){this.synchronous||(this.installInterceptors(),this.showLoading())}},ds={mixins:[Wr],inject:["axiosInstance"],data(){return{data:null,layout:null}},methods:{get(){return this.axiosInstance.get(this.apiPath,{params:this.apiParams}).then(t=>(this.mount(t.data),ns(t.data.notifications),Promise.resolve(t)))},post(t=this.apiPath,e=this.data,s){return this.axiosInstance.post(t,e,s)}}},Ae={data(){return{currentCommand:null,commandViewContent:null,commandEndpoints:{postCommand:null,getForm:null},commandFormProps:{loading:!1}}},computed:{commandFormListeners(){return{submit:this.handleCommandFormSubmitClicked,close:this.handleCommandFormClosed,"update:loading":t=>{this.commandFormProps.loading=t}}}},methods:{transformCommandForm(t){return{...t,layout:{tabs:[{columns:[{fields:t.layout}]}]}}},downloadCommandFile(t){let e=document.createElement("a");this.$el.appendChild(e),e.href=URL.createObjectURL(t.data),e.download=wr(t.headers),e.click()},async handleCommandResponse(t){if(t.data.type!=="application/json")return this.downloadCommandFile(t),null;const e=await Gt(t.data);return await this.handleCommandActionRequested(e.action,e),e},async postCommandForm(t){const{postCommand:e}=this.commandEndpoints,s=await t.submit({postFn:n=>e({data:n,command_step:this.currentCommand.step})}),a=await this.handleCommandResponse(s);(a==null?void 0:a.action)==="step"?(this.currentCommand={...this.currentCommand,step:a.step},await this.showCommandForm(this.currentCommand)):this.currentCommand=null},async getCommandForm(){const{getForm:t}=this.commandEndpoints;return this.currentCommand?(this.commandFormProps.loading=!0,t({command_step:this.currentCommand.step}).finally(()=>{this.commandFormProps.loading=!1})):Y(t())},async showCommandForm(t){const e=await this.getCommandForm();this.currentCommand={...t,form:this.transformCommandForm(e)}},async sendCommand(t,{postCommand:e,getForm:s}){if(this.commandEndpoints={postCommand:e,getForm:s},t.has_form)return this.showCommandForm(t);if(!(t.confirmation&&!await Qt(t.confirmation)))try{let a=await Y(e());await this.handleCommandResponse(a)}catch(a){console.error(a)}},addCommandActionHandlers(t){this.commandHandlers={...this.commandHandlers,...t}},async handleCommandActionRequested(t,e){const s=this.commandHandlers[t];s&&await s(e)},async handleReloadCommand(){await this.init()},async handleInfoCommand(t){await D(t.message,{title:o("modals.command.info.title")})},handleViewCommand(t){this.commandViewContent=t.html},handleLinkCommand(t){window.location.href=t.link},handleCommandFormSubmitClicked(t){this.postCommandForm(t)},handleCommandFormClosed(){this.currentCommand=null},handleCommandViewPanelClosed(){this.commandViewContent=null}},created(){this.addCommandActionHandlers({reload:this.handleReloadCommand,info:this.handleInfoCommand,link:this.handleLinkCommand,view:this.handleViewCommand})}},Qr={name:"SharpModal",mixins:[y],components:{LoadingOverlay:ne,Loading:I,BModal:$a},inheritAttrs:!1,props:{visible:Boolean,cancelTitle:String,title:String,okTitle:String,okOnly:Boolean,okVariant:{type:String,default:"primary"},static:Boolean,modalClass:String,noCloseOnBackdrop:{type:Boolean,default:!0},noEnforceFocus:{type:Boolean,default:!0},isError:Boolean,loading:Boolean},computed:{okClasses(){return{"btn-lg":this.okOnly,[`btn-${this.okVariant}`]:!!this.okVariant}}},methods:{show(){this.$refs.modal.show()},hide(){this.$refs.modal.hide()},handleVisiblityChanged(t){this.$emit("update:visible",t)}}};var Yr=function(){var e=this,s=e._self._c;return s("b-modal",e._g(e._b({ref:"modal",attrs:{title:e.title,visible:e.visible,"ok-only":e.okOnly,static:e.static,"modal-class":[e.modalClass,"SharpModal"],"title-class":{"text-danger":e.isError},"header-class":{"pb-0":!e.title},"no-enforce-focus":e.noEnforceFocus,"no-close-on-backdrop":e.noCloseOnBackdrop},on:{change:e.handleVisiblityChanged},scopedSlots:e._u([e.$slots.title?{key:"modal-title",fn:function(){return[e._t("title")]},proxy:!0}:null,{key:"modal-footer",fn:function({cancel:a,ok:n}){return[s("div",{staticClass:"w-100"},[s("div",{staticClass:"row"},[s("div",{staticClass:"col"},[e._t("footer-prepend")],2),s("div",{staticClass:"col-auto align-self-end"},[s("div",{staticClass:"row gx-2"},[e.okOnly?e._e():[s("div",{staticClass:"col-auto"},[s("button",{staticClass:"btn btn-outline-primary",on:{click:a}},[e._v(" "+e._s(e.cancelTitle||e.l("modals.cancel_button"))+" ")])])],s("div",{staticClass:"col-auto"},[s("button",{staticClass:"btn position-relative",class:e.okClasses,staticStyle:{"min-width":"70px"},attrs:{disabled:e.loading},on:{click:n}},[s("span",{class:{invisible:e.loading}},[e._v(" "+e._s(e.okTitle||e.l("modals.ok_button"))+" ")]),e.loading?[s("LoadingOverlay",{staticClass:"bg-transparent",attrs:{absolute:"",small:""}})]:e._e()],2)])],2)])])])]}}],null,!0)},"b-modal",e.$attrs,!1),e.$listeners),[e._t("default")],2)},Xr=[],Jr=r(Qr,Yr,Xr,!1,null,null,null,null);const F=Jr.exports,Zr={components:{Modal:F},props:{value:[Number,String],visible:Boolean,options:Array,title:String,okTitle:String,size:String},data(){return{modalVisible:this.visible,selected:this.value??null}},watch:{visible(t){this.modalVisible=t},value(t){this.selected=t}},methods:{itemClass(t){return{"active bg-white text-primary":this.isSelected(t)}},isSelected(t){return t.value===this.selected},handleOptionSelected(t){this.$emit("select",t),this.selected=t.value},handleButtonClicked(){this.modalVisible=!0,this.$emit("update:visible",!0)},handleVisibleChanged(t){this.modalVisible=t,this.$emit("update:visible",t)},handleModalOkClicked(){this.$emit("input",this.selected),this.$emit("change",this.selected)}}};var el=function(){var e=this,s=e._self._c;return s("div",[e._t("default",null,{on:{click:e.handleButtonClicked}}),s("Modal",{attrs:{visible:e.modalVisible,title:e.title,"ok-title":e.okTitle,"ok-only":"",size:e.size},on:{ok:e.handleModalOkClicked,change:e.handleVisibleChanged}},[s("div",{staticClass:"list-group",attrs:{role:"menu"}},[e._l(e.options,function(a){return[s("div",{key:a.value,staticClass:"list-group-item list-group-item-action pe-2",class:e.itemClass(a),staticStyle:{cursor:"pointer","outline-offset":"4px"},attrs:{role:"menuitemradio",tabindex:"0","aria-checked":e.isSelected(a)},on:{click:function(n){return e.handleOptionSelected(a)},keydown:function(n){return!n.type.indexOf("key")&&e._k(n.keyCode,"enter",13,n.key,"Enter")&&e._k(n.keyCode,"space",32,n.key,[" ","Spacebar"])?null:e.handleOptionSelected(a)}}},[s("div",{staticClass:"py-1"},[s("div",{staticClass:"row align-items-center gx-3"},[e.$scopedSlots["item-prepend"]?[s("div",{staticClass:"col-auto"},[e._t("item-prepend",null,{option:a})],2)]:e._e(),s("div",{staticClass:"col"},[e._v(" "+e._s(a.label)+" ")]),s("div",{staticClass:"col-auto",class:{invisible:!e.isSelected(a)}},[s("div",{staticClass:"bg-primary text-inverted d-inline-flex rounded-circle justify-content-center align-items-center",staticStyle:{width:"1.5em",height:"1.5em"}},[s("i",{staticClass:"fas fa-check fa-sm"})])])],2)])])]})],2)])],2)},tl=[],sl=r(Zr,el,tl,!1,null,null,null,null);const Re=sl.exports;async function cs(t){await new Promise(a=>setTimeout(a,10));const s=t.$el.querySelector(".multiselect__content").getBoundingClientRect();s.bottom>window.innerHeight&&window.scrollBy({top:s.bottom-window.innerHeight+20,behavior:"smooth"})}function al(){const t=document.documentElement.style.getPropertyValue("--navbar-height");return parseInt(t)||0}const nl={name:"SharpMultiselect",functional:!0,render(t,{data:e,children:s=[],props:a}){return a.placeholder||(e.attrs.placeholder=o("form.multiselect.placeholder")),e.class=["form-control",e.class],e.attrs.showPointer=!1,a.disabled&&(e.attrs.tabindex=-1),t({extends:_e,watch:{isOpen(n){n&&cs(this)}},computed:{isSingleLabelVisible(){return this.singleValue===0||_e.computed.isSingleLabelVisible.call(this)}},mounted(){this.$el.addEventListener("blur",()=>this.deactivate())}},e,[t("template",{slot:"maxElements"},o("form.multiselect.max_text")),...s])}},il=null,rl=null;var ll=r(nl,il,rl,!1,null,null,null,null);const us=ll.exports,ol={props:{value:String,placeholder:String,disabled:Boolean},data(){return{search:null,focused:!1}},watch:{value:{immediate:!0,handler:"handleValueChanged"}},computed:{clearVisible(){var t;return((t=this.search)==null?void 0:t.length)>0}},methods:{handleValueChanged(t){this.search=t},handleClearButtonClicked(){this.search="",this.$emit("submit",""),this.$emit("clear"),this.$refs.input.focus()},handleFocused(){this.$emit("focus"),this.focused=!0},handleBlur(){this.$emit("blur"),this.focused=!1},handleFocusout(t){(!t.relatedTarget||!this.$el.contains(t.relatedTarget))&&(this.search=this.value)},handleSubmitted(){this.$emit("submit",this.search)}}};var dl=function(){var e=this,s=e._self._c;return s("div",{staticClass:"SharpSearch",class:{"SharpSearch--focused":e.focused||e.search},attrs:{role:"search"}},[s("form",{staticClass:"h-100",on:{submit:function(a){return a.preventDefault(),e.handleSubmitted.apply(null,arguments)}}},[s("label",{staticClass:"SharpSearch__label visually-hidden",attrs:{id:"ab-search-label",for:"ab-search-input"}},[e._v(e._s(e.placeholder))]),s("div",{staticClass:"input-group input-group-sm flex-nowrap"},[s("div",{staticClass:"position-relative flex-fill",staticStyle:{"min-width":"0"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.search,expression:"search"}],ref:"input",staticClass:"SharpSearch__input form-control form-control-sm h-100 fs-8",attrs:{placeholder:e.placeholder,disabled:e.disabled,type:"text",id:"ab-search-input",role:"search","aria-labelledby":"ab-search-label"},domProps:{value:e.search},on:{focus:e.handleFocused,blur:e.handleBlur,focusout:e.handleFocusout,input:function(a){a.target.composing||(e.search=a.target.value)}}}),s("button",{staticClass:"btn btn-sm SharpSearch__clear h-100 d-inline-flex align-items-center position-absolute",class:{invisible:!e.clearVisible},attrs:{type:"button","aria-label":"Clear search"},on:{click:e.handleClearButtonClicked}},[s("svg",{attrs:{width:"1em",height:"1em",viewBox:"0 0 16 16","fill-rule":"evenodd"}},[s("path",{attrs:{d:"M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm3.5 10.1l-1.4 1.4L8 9.4l-2.1 2.1-1.4-1.4L6.6 8 4.5 5.9l1.4-1.4L8 6.6l2.1-2.1 1.4 1.4L9.4 8l2.1 2.1z"}})])])]),s("button",{staticClass:"btn btn-sm btn-outline-primary d-inline-flex SharpSearch__button",attrs:{tabindex:"0"}},[s("svg",{attrs:{width:"20",height:"20",viewBox:"0 0 20 20",fill:"currentColor"}},[s("path",{attrs:{"fill-rule":"evenodd",d:"M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z","clip-rule":"evenodd"}})])])])])])},cl=[],ul=r(ol,dl,cl,!1,null,null,null,null);const hs=ul.exports,hl={props:{section:Object,collapsed:Boolean,collapsable:Boolean}};var ml=function(){var e=this,s=e._self._c;return s("div",[e.collapsable?[s("details",{attrs:{open:!e.collapsed},on:{toggle:function(a){return e.$emit("toggle",a.target.open)}}},[s("summary",{staticClass:"section__header section__header--collapsable"},[s("h2",{staticClass:"section__title d-inline-block mb-0"},[e._v(e._s(e.section.title||" "))])])])]:e.section.title?[s("div",{staticClass:"section__header"},[s("h2",{staticClass:"section__title"},[e._v(e._s(e.section.title))])])]:e._e()],2)},pl=[],fl=r(hl,ml,pl,!1,null,null,null,null);const ms=fl.exports,_l={name:"SharpStateIcon",props:{color:{required:!0,type:String}},computed:{style(){return{background:this.color}}}};var gl=function(){var e=this,s=e._self._c;return s("span",{staticClass:"StateIcon",style:e.style})},vl=[],bl=r(_l,gl,vl,!1,null,null,null,null);const De=bl.exports,yl={name:"SharpTab",components:{BTab:wa},provide(){return{$tab:this}},props:{title:String,active:Boolean},data(){return{errors:{}}},computed:{hasError(){return Object.keys(this.errors).length>0},classes(){return{"is-invalid":this.hasError}}},methods:{setError(t){this.$set(this.errors,t,!0)},clearError(t){this.$delete(this.errors,t)},async handleActiveChanged(t){t&&(await this.$nextTick(),this.$emit("active"))}},created(){this.$on("error",t=>this.setError(t)),this.$on("clear",t=>this.clearError(t))}};var Cl=function(){var e=this,s=e._self._c;return s("b-tab",{attrs:{"title-link-class":e.classes,active:e.active},on:{"update:active":e.handleActiveChanged},scopedSlots:e._u([{key:"title",fn:function(){return[e._v(" "+e._s(e.title)+" ")]},proxy:!0}])},[e._t("default")],2)},$l=[],wl=r(yl,Cl,$l,!1,null,null,null,null);const Sl=wl.exports,kl={name:"SharpTabs",props:{navClass:String},components:{BTabs:Sa},computed:{dropdownButtonClasses(){return this.tabs[this.currentTab].hasError?"error-dot":this.tabsHaveError?"error-dot--partial":""}}};var xl=function(){var e=this,s=e._self._c;return s("b-tabs",{staticClass:"SharpTabs",attrs:{"nav-class":["SharpTabs__nav align-items-center nav-tabs",e.navClass]},scopedSlots:e._u([{key:"tabs-end",fn:function(){return[s("li",{staticClass:"nav-item ms-auto"},[e._t("nav-append")],2)]},proxy:!0}],null,!0)},[e._t("default")],2)},Fl=[],Ll=r(kl,xl,Fl,!1,null,null,null,null);const Bl=Ll.exports;function at(t){return t.toLowerCase().normalize("NFD").replace(/\p{Diacritic}/gu,"").replace(/[^\w ]+/g,"").replace(/ +/g,"-")}const Ol={name:"SharpTabbedLayout",props:{layout:Object},components:{Tabs:Bl,Tab:Sl},computed:{showTabs(){return this.layout.tabbed&&this.layout.tabs.length>1}},methods:{isActive(t){return this.$route.query.tab===at(t.title)},handleTabActivated(t){this.$router.replace({query:{...this.$route.query,tab:at(t.title)}})}}};var El=function(){var e=this,s=e._self._c;return s("div",{staticClass:"SharpTabbedLayout"},[e.showTabs?[s("Tabs",{attrs:{"nav-class":"bg-white border-bottom p-3 pb-0"},scopedSlots:e._u([{key:"nav-append",fn:function(){return[e._t("nav-append")]},proxy:!0}],null,!0)},[e._l(e.layout.tabs,function(a,n){return[s("Tab",{key:`tab-${n}`,attrs:{title:a.title,active:e.isActive(a)},on:{active:function(i){return e.handleTabActivated(a)}}},[e._t("default",null,{tab:a})],2)]})],2)]:[e.$slots["nav-append"]?[s("div",{staticClass:"d-flex justify-content-end bg-white border-bottom p-3"},[e._t("nav-append")],2)]:e._e(),s("div",{staticClass:"tab-pane"},[e._l(e.layout.tabs,function(a){return[e._t("default",null,{tab:a}),s("hr",{staticClass:"SharpTabbedLayout__divider"})]})],2)]],2)},Il=[],Tl=r(Ol,El,Il,!1,null,null,null,null);const Al=Tl.exports,Rl={name:"SharpActionBar",props:{container:Boolean},data(){return{title:null,showTitle:!1}},computed:{hasExtras(){return this.$slots.extras||this.$slots["extras-right"]}},methods:{layout(t){},handleScroll(){var t;this.title=(t=document.querySelector("h1[data-top-bar-title]"))==null?void 0:t.innerText,this.showTitle=window.scrollY>150}},async mounted(){this.layout(this.$refs.bar.getBoundingClientRect()),window.ResizeObserver&&new ResizeObserver(t=>{this.layout(t[0].target.getBoundingClientRect())}).observe(this.$refs.bar),window.addEventListener("scroll",kt(this.handleScroll,100))}};var Dl=function(){var e=this,s=e._self._c;return s("div",{ref:"bar",staticClass:"SharpTopBar d-flex flex-column sticky-top"},[s("div",{staticClass:"container flex-fill d-flex flex-column"},[s("div",{staticClass:"row align-items-center flex-fill g-2 gx-md-4"},[s("div",{staticClass:"col",staticStyle:{"min-width":"0"}},[e.title?[s("div",{staticClass:"SharpTopBar__title d-none d-md-block"},[s("div",{staticClass:"h5 mb-0 text-truncate",class:{"opacity-0":!e.showTitle},staticStyle:{transition:"opacity .2s ease-in-out"}},[e._v(" "+e._s(e.title)+" ")])])]:e._e()],2),s("div",{staticClass:"col-auto"},[e._t("right")],2)])])])},Pl=[],zl=r(Rl,Dl,Pl,!1,null,null,null,null);const Ml=zl.exports,jl={components:{BTooltip:ka},props:{target:Function,triggers:String,placement:String,overflowOnly:Boolean,disabled:Boolean},data(){return{isOverflowing:!1}},computed:{isEnabled(){return this.disabled?!1:this.overflowOnly?this.isOverflowing:!0}},methods:{layout(t){this.isOverflowing=t.scrollWidth>t.offsetWidth},getTarget(){return this.target()}},async mounted(){await this.$nextTick();const t=this.getTarget();this.layout(t),"ResizeObserver"in window&&(this.observer=new ResizeObserver(()=>this.layout(t)),this.observer.observe(t))},beforeDestroy(){var t;(t=this.observer)==null||t.disconnect()}};var Nl=function(){var e=this,s=e._self._c;return s("b-tooltip",{attrs:{target:e.target,triggers:e.triggers,placement:e.placement,disabled:!e.isEnabled}},[e._t("default")],2)},Vl=[],Ul=r(jl,Nl,Vl,!1,null,null,null,null);const Hl=Ul.exports;function ql(t,{store:e,router:s}){t.component("sharp-dropdown",$),t.component("sharp-dropdown-item",x)}function Kl({results:t,dataWrapper:e,fieldKey:s,url:a}){if(t){if(e&&!t.hasOwnProperty(e))return b(`Autocomplete (${s}): dataWrapper "${e}" seems to be invalid :`),b(`- search url "${a}"`),b("- results",t),!1;if(!e&&!Array.isArray(t))return b(`Autocomplete (${s}): search results response is not an array, please use setDataWrapper() if results are wrapped inside an object (https://sharp.code16.fr/docs/guide/form-fields/autocomplete.html#setdatawrapper)`),b(`- search url "${a}"`),b("- response",t),!1}return!0}function Gl({url:t,method:e,locale:s,searchAttribute:a,query:n,dataWrapper:i,fieldKey:l,cancelToken:d}){const u=e.toLowerCase()==="get",c={locale:s,[a]:n};return X({url:t,method:e,params:u?c:void 0,data:u?void 0:c,cancelToken:d}).then(m=>{var g;return Kl({results:m.data,dataWrapper:i,fieldKey:l,url:t})?i?((g=m.data)==null?void 0:g[i])??[]:m.data??[]:[]})}const Pe={inject:{$form:{default:()=>({})}},props:{locale:String,localized:Boolean},computed:{locales(){return this.$form.locales},isLocalized(){return this.$form.localized&&this.localized}}},Wl=["text","textarea"];function Ql(t,e){return!t||typeof t!="object"?!1:e.every(s=>s in t)}function Yl(t){return t===null||t===""}function Xl(t){return Object.entries(t).every(([e,s])=>Yl(s))}function ze(t){return Wl.includes(t.type)}function Jl({locales:t,resolve:e=()=>null}){return t.reduce((s,a)=>({...s,[a]:e(a)}),{})}function ps({localeObject:t,locale:e,value:s}){let a={...t,[e]:s};return Xl(a)?null:a}function Zl({field:t,value:e}){return t.type==="editor"?(e||{}).text:e}const eo={mixins:[Pe],computed:{localizedSearchKeys(){return this.localized?this.searchKeys.map(t=>{let e=t;return this.localizedDataKeys.includes(t)&&(e+=`.${this.locale}`),e}):this.searchKeys},localizedDataKeys(){return Array.isArray(this.localValues)&&this.localValues.length?Object.keys(this.localValues[0]).filter(t=>this.isLocaleObject(this.localValues[0][t])):[]}},methods:{isLocaleObject(t){return this.locales&&Ql(t,this.locales)},localizedTemplateData(t){return this.localized?Object.entries(t).reduce((e,[s,a])=>(e[s]=this.isLocaleObject(a)?a[this.locale]:a,e),{}):t}}},fs=/{{([\s\S]+?)}}/g;function to({contextSources:t,contextData:e}){return t.filter(s=>{const a=e[s];return a==null||a===""})}function _s(t,e){return(t||[]).find(s=>s.name===e)}function so({map:t,path:e,contextData:s}){const a=e.map(n=>s[n]);return xa(t,a)}function ao(t){return[...t.matchAll(fs)].map(e=>e[1].trim())}function no({template:t,sources:e,contextData:s}){const a=Fa(t,{interpolate:fs,evaluate:!1,escape:!1}),n=(e||[]).reduce((i,l)=>({...i,[l]:null}),{});return a({...n,...s})}function gs({dynamicOptions:t={},attributeValue:e}){return t.type==="map"?t.path:t.type==="template"?ao(e):[]}function io({dynamicOptions:t,attributeValue:e,contextData:s,contextSources:a}){return t.type==="map"?so({map:e,path:t.path,contextData:s}):t.type==="template"?no({template:e,sources:a,contextData:s}):e}function ro(t,e,{dynamicAttributes:s,contextData:a}){const n=_s(s,t),i=gs({dynamicOptions:n,attributeValue:e});return n?to({contextSources:i,contextData:a}).length>0?{isEmpty:n.default==null,value:n.default}:{value:io({dynamicOptions:n,attributeValue:e,contextData:a,contextSources:i})}:{value:e}}function lo(t,e,s){return(e||[]).some(a=>{const n=s[a.name];return gs({dynamicOptions:a,attributeValue:n}).includes(t)})}function oo(t,e,s){const a=Object.entries(t||{}).reduce((n,[i,l])=>{const d=ro(i,l,{dynamicAttributes:e,contextData:s}),u=n.resolvedEmptyAttributes||[];return d.isEmpty&&u.push(i),{...n,resolvedEmptyAttributes:u,attributes:{...n.attributes,[i]:d.value}}},{});return{attributes:a.attributes,resolvedEmptyAttributes:a.resolvedEmptyAttributes}}function vs(t,e,s){return Object.values(t).filter(a=>lo(e,a.dynamicAttributes,a)).reduce((a,n)=>({...a,[n.key]:s?s(n,null):null}),{})}function bs(t,e,{dependantAttributes:s}={}){const a=t.$attrs.dynamicAttributes;(s||[]).some(i=>_s(a,i))?t.$nextTick(e):e()}function co(t){return t==="editor"?{}:null}function uo(t,e){return t==="autocomplete"?e&&e.id:e}function ho(t,e){return Object.entries(t).reduce((s,[a,n])=>{const i=e[a];return{...s,[a]:i?uo(i.type,n):null}},{})}function ys(t,e){const s=ho(e,t);return Object.entries(t).reduce((a,[n,i])=>{const{attributes:l,resolvedEmptyAttributes:d}=oo(i,i.dynamicAttributes,s),u=l.readOnly||d.length>0;return{...a,[n]:{...l,readOnly:u}}},{})}const mo={name:"SharpAutocomplete",components:{Multiselect:_e,TemplateRenderer:z,Loading:I,ClearButton:se},mixins:[y,eo],props:{id:String,fieldKey:String,value:[String,Number,Object,Array],mode:String,localValues:{type:Array,default:()=>[]},placeholder:{type:String,default:()=>o("form.multiselect.placeholder")},remoteEndpoint:String,remoteMethod:String,remoteSearchAttribute:{type:String,default:"query"},itemIdAttribute:{type:String,default:"id"},searchMinChars:{type:Number,default:1},searchKeys:{type:Array,default:()=>["value"]},dataWrapper:String,readOnly:Boolean,listItemTemplate:String,resultItemTemplate:String,templateData:Object,noResultItem:Boolean,multiple:Boolean,hideSelected:Boolean,searchable:{type:Boolean,default:!0},allowEmpty:{type:Boolean,default:!0},clearOnSelect:Boolean,preserveSearch:{type:Boolean,default:!0},showPointer:{type:Boolean,default:!0},dynamicAttributes:Array,debounceDelay:{type:Number,default:400},nowrap:Boolean},data(){return{ready:!1,query:"",suggestions:this.localValues,opened:!1,isLoading:!1}},watch:{localValues(){this.isRemote||this.updateLocalSuggestions(this.query)}},computed:{isRemote(){return this.mode==="remote"},hideDropdown(){return this.isQueryTooShort},isQueryTooShort(){return this.isRemote&&this.query.length=this.searchMinChars?Er(this.localValues,t,{searchKeys:this.searchKeys}):this.localValues},updateRemoteSuggestions(t){var e;return(e=this.cancelSource)==null||e.cancel(),this.cancelSource=La.CancelToken.source(),Gl({url:this.remoteEndpoint,method:this.remoteMethod,locale:this.locale,searchAttribute:this.remoteSearchAttribute,dataWrapper:this.dataWrapper,fieldKey:this.fieldKey,query:t,cancelToken:this.cancelSource.token}).then(s=>{this.suggestions=s,this.scroll()}).finally(()=>{this.isLoading=!1})},scroll(){cs(this)},handleSelect(t){this.$emit("input",t)},handleDropdownClose(){this.opened=!1,this.$emit("close")},handleDropdownOpen(){this.opened=!0,this.$emit("open"),this.scroll()},handleClearButtonClicked(){this.$emit("input",null),this.$nextTick(()=>{this.$refs.multiselect.activate()})},resolveTemplateData(t){return{...this.templateData,...this.localizedTemplateData(t)}},itemMatchValue(t){return t[this.itemIdAttribute]==this.value[this.itemIdAttribute]},findLocalValue(){return!this.value||this.value[this.itemIdAttribute]==null?null:this.localValues.some(this.itemMatchValue)?this.localValues.find(this.itemMatchValue):(b(`Autocomplete (key: ${this.fieldKey}) can't find local value matching : ${JSON.stringify(this.value)}`),null)},async setDefault(){this.$emit("input",this.findLocalValue(),{force:!0}),await this.$nextTick(),this.ready=!0}},created(){this.updateRemoteSuggestions=E(this.updateRemoteSuggestions,this.debounceDelay),this.mode==="local"&&!this.searchKeys&&Pr(`Autocomplete (key: ${this.fieldKey}) has local mode but no searchKeys, default set to ['value']`),this.isRemote?this.ready=!0:bs(this,this.setDefault,{dependantAttributes:["localValues"]})}};var po=function(){var e=this,s=e._self._c;return s("div",{staticClass:"SharpAutocomplete",class:e.classes},[e.ready?[e.overlayVisible?[s("div",{staticClass:"form-control clearable SharpAutocomplete__result"},[s("TemplateRenderer",{attrs:{name:"ResultItem",template:e.resultItemTemplate,"template-data":e.resolveTemplateData(e.value),"template-props":e.searchKeys}}),s("ClearButton",{on:{click:e.handleClearButtonClicked}})],1)]:[s("Multiselect",{ref:"multiselect",staticClass:"SharpAutocomplete__multiselect form-control",class:{"form-select":!this.isRemote,"SharpAutocomplete__multiselect--hide-dropdown":e.hideDropdown},attrs:{id:e.id,value:e.value,options:e.suggestions,"track-by":e.itemIdAttribute,"internal-search":!1,placeholder:e.placeholder,loading:e.isLoading,multiple:e.multiple,disabled:e.readOnly,"hide-selected":e.hideSelected,"allow-empty":e.allowEmpty,"preserve-search":e.preserveSearch,"show-pointer":e.showPointer,searchable:e.searchable,readonly:e.readOnly,tabindex:e.readOnly?-1:0},on:{"search-change":function(a){return e.updateSuggestions(a)},select:e.handleSelect,input:function(a){return e.$emit("multiselect-input",a)},close:e.handleDropdownClose,open:e.handleDropdownOpen},scopedSlots:e._u([{key:"clear",fn:function(){return[e.clearButtonVisible?[s("ClearButton",{on:{click:e.handleClearButtonClicked}})]:e._e()]},proxy:!0},{key:"singleLabel",fn:function({option:a}){return[s("TemplateRenderer",{attrs:{name:"ResultItem",template:e.resultItemTemplate,"template-data":e.resolveTemplateData(a),"template-props":e.searchKeys}})]}},{key:"option",fn:function({option:a}){return[s("TemplateRenderer",{attrs:{name:"ListItem",template:e.listItemTemplate,"template-data":e.resolveTemplateData(a),"template-props":e.searchKeys}})]}},{key:"loading",fn:function(){return[s("Loading",{attrs:{visible:e.isLoading,small:""}})]},proxy:!0},{key:"noResult",fn:function(){return[e._v(" "+e._s(e.l("form.autocomplete.no_results_text"))+" ")]},proxy:!0}],null,!1,1447355180)})]]:e._e()],2)},fo=[],_o=r(mo,po,fo,!1,null,null,null,null);const Cs=_o.exports;function $s(t,{maxlength:e}){return e&&(t==null?void 0:t.length)>e?o("form.text.validation.maxlength").replace(":maxlength",e):null}function ie(t){return t.normalize()}const go={name:"SharpTextarea",props:{value:String,placeholder:String,readOnly:Boolean,maxLength:Number,rows:Number},methods:{validate(t){return $s(t,{maxlength:this.maxLength})},handleInput(t){const e=ie(t.target.value),s=this.validate(e);this.$emit("input",e,{error:s})}}};var vo=function(){var e=this,s=e._self._c;return s("textarea",{staticClass:"SharpTextarea form-control",attrs:{rows:e.rows,placeholder:e.placeholder,disabled:e.readOnly},domProps:{value:e.value},on:{input:e.handleInput}})},bo=[],yo=r(go,vo,bo,!1,null,null,null,null);const Co=yo.exports,$o={name:"SharpText",props:{value:[String,Number],type:String,placeholder:String,readOnly:Boolean,maxLength:Number,inputType:{type:String,default:"text"}},methods:{validate(t){return $s(t,{maxlength:this.maxLength})},handleInput(t){const e=ie(t.target.value),s=this.validate(e);this.$emit("input",e,{error:s})},focus(){this.$refs.input.focus()}}};var wo=function(){var e=this,s=e._self._c;return s("input",{ref:"input",staticClass:"SharpText form-control",attrs:{type:e.inputType,placeholder:e.placeholder,disabled:e.readOnly},domProps:{value:e.value},on:{input:e.handleInput}})},So=[],ko=r($o,wo,So,!1,null,null,null,null);const re=ko.exports,xo={components:{TextField:re},props:{value:[String,Number],showControls:Boolean,min:Number,max:Number,step:Number}};var Fo=function(){var e=this,s=e._self._c;return s("TextField",e._g(e._b({class:{"hide-controls":!e.showControls},attrs:{value:e.value,step:e.step,min:e.min,max:e.max,"input-type":"number"}},"TextField",e.$attrs,!1),e.$listeners))},Lo=[],Bo=r(xo,Fo,Lo,!1,null,null,null,null);const Oo=Bo.exports;function Me({entityKey:t,instanceId:e,files:s,thumbnailWidth:a,thumbnailHeight:n}){return v.post(`/files/${t}/${e??""}`,{files:s,thumbnail_width:a,thumbnail_height:n}).then(i=>i.data.files)}function ws({entityKey:t,instanceId:e,disk:s,path:a}){return Lr(`/download/${t}/${e??""}`,{params:{disk:s,path:a}})}function P(t,e){return typeof t!="number"?null:Math.round((t+Number.EPSILON)*10**e)/10**e}function j(t,e){return P(t,e)}function Eo(t){let{x:e,y:s,width:a,height:n}=t??{};return e=P(e,4)??0,s=P(s,4)??0,a=P(a,4)??1,n=P(n,4)??1,e===0&&s===0&&a===1&&n===1?null:`${e},${s},${a},${n}`}function Ss(t){if(!t)return null;const[e,s,a,n]=t.split(",");return{x:Number(e),y:Number(s),width:Number(a),height:Number(n)}}function Io(t){return P(t==null?void 0:t.angle,4)||null}function ks(t){return t?{angle:Number(t)}:null}const xs=200,Fs=200;function W(t,e){return!t.path||!e.path?t.name===e.name:`${t.disk}:${t.path}`==`${e.disk}:${e.path}`}function To({filters:t,imageWidth:e,imageHeight:s}){var m;const a=((m=t==null?void 0:t.rotate)==null?void 0:m.angle)??0;let n=e,i=s;Math.abs(a)%180&&(n=s,i=e);const{width:l,height:d,x:u,y:c}=(t==null?void 0:t.crop)??{};return{width:(l??1)*n,height:(d??1)*i,x:(u??0)*n,y:(c??0)*i,rotate:a*-1}}function Ao({cropData:t,imageWidth:e,imageHeight:s}){let a=e,n=s;return Math.abs(t.rotate)%180&&(a=s,n=e),{crop:{width:j(t.width/a,4),height:j(t.height/n,4),x:j(t.x/a,4),y:j(t.y/n,4)},rotate:{angle:j(t.rotate*-1,4)}}}function Ro(t){if(!t.type.match(/^image\//))return Promise.resolve(null);const e=new Image;return e.src=URL.createObjectURL(t),new Promise((s,a)=>{e.onload=()=>s(e.src),e.onerror=n=>{URL.revokeObjectURL(e.src),a(`Image format not handled by browser for "${t.name}"`)}})}function Do(t,e){const s=t.getData();Ls(t,s.rotate+e)}function Ls(t,e){const s=t.getCropBoxData(),a=t.getContainerData();s.width=2,s.height=2,s.top=0;let n=a.width/2-1;s.left=n,t.setCropBoxData(s),t.rotateTo(e);let i=t.getCanvasData(),l=i.height,d=a.height,u=d/l,c=Math.min(i.width*u,a.width);i.height=d,i.width=c,i.top=0,i.left=(a.width-i.width)/2,t.setCanvasData(i),s.left=0,s.top=0,s.width=i.width,s.height=i.height,t.setCropBoxData(s)}const Po={components:{Modal:F,Loading:I,VueCropper:Lt,Button:_},inject:{$form:{default:null}},props:{value:Object,visible:Boolean,src:String,ratioX:Number,ratioY:Number},data(){return{ready:!1,cropData:null,originalImg:null}},watch:{value:"handleValueChanged"},computed:{imageSrc(){return this.originalImg||this.src},cropperOptions(){return{viewMode:2,dragMode:"move",aspectRatio:this.ratioX/this.ratioY,autoCropArea:1,guides:!1,background:!0,rotatable:!0,restore:!1,data:this.cropData,ready:this.handleCropperReady}}},methods:{l:o,handleRotateClicked(t){Do(this.$refs.cropper.cropper,t)},handleValueChanged(){this.value||(this.cropData=null,this.originalImg=null)},handleOkClicked(){const t=this.$refs.cropper,e=t.getData(!0);this.cropData=e,this.$emit("submit",t)},handleShow(){this.init()},async initOriginalThumbnail(){var e;if(this.originalImg)return;const t=await Me({entityKey:this.$form.entityKey,instanceId:this.$form.instanceId,files:[{path:this.value.path,disk:this.value.disk}],thumbnailWidth:1200,thumbnailHeight:1e3});if(this.originalImg=(e=t[0])==null?void 0:e.thumbnail,!this.originalImg)return Promise.reject("Sharp Upload: original thumbnail not found in POST /api/files request");await new Promise(s=>{const a=new Image;a.src=this.originalImg,a.onload=()=>{this.cropData=To({filters:this.value.filters,imageWidth:a.naturalWidth,imageHeight:a.naturalHeight}),s()},a.onerror=()=>{this.originalImg=null,s()}})},async init(){var t;this.ready=!1,(t=this.value)!=null&&t.path&&await this.initOriginalThumbnail(),this.ready=!0},handleCropperReady(){var e;const t=this.$refs.cropper.cropper;(e=this.cropData)!=null&&e.rotate&&(Ls(t,this.cropData.rotate),t.setData(this.cropData))}}};var zo=function(){var e=this,s=e._self._c;return s("Modal",e._g({ref:"modal",attrs:{visible:e.visible,title:e.l("modals.cropper.title"),"no-close-on-backdrop":"","dialog-class":"modal-dialog-scrollable","content-class":"h-100",size:"xl"},on:{ok:e.handleOkClicked,show:e.handleShow},scopedSlots:e._u([{key:"footer-prepend",fn:function(){return[s("div",{staticClass:"row align-items-center"},[s("div",{staticClass:"col-auto"},[s("Button",{attrs:{text:""},on:{click:function(a){return e.handleRotateClicked(-90)}}},[s("i",{staticClass:"fas fa-undo"})]),s("Button",{staticClass:"me-auto",attrs:{text:""},on:{click:function(a){return e.handleRotateClicked(90)}}},[s("i",{staticClass:"fas fa-redo"})])],1),s("div",{staticClass:"col d-none d-lg-block"},[s("div",{staticClass:"text-muted fs-7 lh-sm"},[e._v(" "+e._s(e.l("form.upload.edit_modal.description"))+" ")])])])]},proxy:!0}])},e.$listeners),[e.ready?[s("vue-cropper",e._b({ref:"cropper",staticClass:"SharpUpload__modal-vue-cropper h-100",attrs:{src:e.imageSrc,alt:"Source image"}},"vue-cropper",e.cropperOptions,!1))]:[s("div",{staticClass:"d-flex align-items-center justify-content-center",staticStyle:{height:"300px"}},[s("Loading")],1)]],2)},Mo=[],jo=r(Po,zo,Mo,!1,null,null,null,null);const No=jo.exports,Vo={name:"SharpVueClip",extends:Ba,components:{EditModal:No,VueCropper:Lt,Button:_},inject:{$form:{default:null}},mixins:[y],props:{ratioX:Number,ratioY:Number,value:Object,transformable:{type:Boolean,default:!0},transformableFileTypes:Array,transformKeepOriginal:Boolean,readOnly:Boolean,root:Boolean,compactThumbnail:Boolean,focused:Boolean,invalid:Boolean,uniqueIdentifier:String,fieldConfigIdentifier:String,persistThumbnails:Boolean},data(){return{showEditModal:!1,transformedImg:null}},watch:{value:"init","file.status"(t){t in this.statusFunction&&this[this.statusFunction[t]]()}},computed:{classes(){return{"SharpUpload--empty":!this.file,"SharpUpload--disabled":this.readOnly,"SharpUpload--compacted":this.compactThumbnail,"SharpUpload--focused":this.focused}},file(){return this.files[0]},originalImageSrc(){var t,e;return((t=this.file)==null?void 0:t.thumbnail)||((e=this.file)==null?void 0:e.blobUrl)},imageSrc(){return this.transformedImg||this.originalImageSrc},size(){return this.file.size!=null?Te(this.file.size):null},operationFinished(){return{transform:this.hasInitialTransform?!!this.transformedImg:null}},operations(){return Object.keys(this.operationFinished)},activeOperationsCount(){return this.operations.filter(t=>this.operationFinished[t]!==null).length},operationFinishedCount(){return this.operations.filter(t=>this.operationFinished[t]).length},progress(){let t=this.file?this.file.progress:100,s=1-(this.activeOperationsCount-this.operationFinishedCount)*.05;return Math.floor(t)*s},inProgress(){var t;return((t=this.file)==null?void 0:t.status)==="exist"||this.hasError?!1:this.progress<100},statusFunction(){return{error:"onStatusError",success:"onStatusSuccess",added:"onStatusAdded"}},hasError(){var t;return((t=this.file)==null?void 0:t.status)==="error"||this.invalid},fileName(){let t=this.file.name.split("/");return t.length?t[t.length-1]:""},fileExtension(){let t=this.fileName.split(".").pop();return t?`.${t}`:null},downloadUrl(){var t,e;return ws({entityKey:(t=this.$form)==null?void 0:t.entityKey,instanceId:(e=this.$form)==null?void 0:e.instanceId,disk:this.value.disk,path:this.value.path})},showThumbnail(){return!!this.imageSrc},isTransformable(){var t;return!this.transformable||!this.originalImageSrc||(t=this.file)!=null&&t.type&&!this.file.type.match(/^image\//)?!1:!this.transformableFileTypes||this.transformableFileTypes.includes(this.fileExtension)},hasInitialTransform(){var t;return((t=this.file)==null?void 0:t.status)==="exist"&&!this.value.uploaded?!1:this.isTransformable&&!!this.ratioX&&!!this.ratioY},hasEdit(){return this.isTransformable&&!this.inProgress},hasDownload(){var t;return((t=this.file)==null?void 0:t.status)==="exist"&&!!this.value.path}},methods:{setPending(t){var e;(e=this.$form)==null||e.setUploading(this.uniqueIdentifier,t)},onStatusAdded(){const t=this.file._file;this.$emit("add",t),this.setPending(!0),Ro(t).then(e=>{e&&(this.$set(this.file,"blobUrl",e),this.$emit("thumbnail",e))}).catch(e=>{console.error(e)})},async onStatusError(){const t=this.file.xhrResponse,e=this.file.errorMessage;this.setPending(!1),await this.$nextTick(),t!=null&&t.statusCode?this.handleUploadError(t):this.$emit("error",e,this.file._file)},handleUploadError(t){const e=JSON.parse(t.responseText),s=t.statusCode;if(s===422){const a=Object.values(e.errors??{}).join(", ");this.$emit("error",a)}else{const a=Xt({data:e,status:s});Jt({data:e,status:s}),this.$emit("error",a)}},onStatusSuccess(){let t={};try{t=JSON.parse(this.file.xhrResponse.responseText)}catch(s){console.log(s)}const e={...this.value,...t,uploaded:!0};this.$emit("success",{...e,size:this.file.size}),this.$emit("input",e),this.setPending(!1)},remove(t=!0){this.removeFile(this.file),this.files.splice(0,1),this.setPending(!1),this.resetThumbnails(),this.transformedImg=null,t&&(this.$emit("input",null),this.$emit("reset"))},handleEditButtonClick(){this.showEditModal=!0},handleRemoveClicked(){this.remove(),this.$emit("removed")},handleClick(){this.uploader._uploader.hiddenFileInput.click()},handleDrop(t){var e,s;this.file&&((s=(e=t.dataTransfer)==null?void 0:e.files)==null?void 0:s.length)>0&&this.remove(!1)},handleEditSubmitted(t){this.updateTransformedImage(t),this.updateFilters(t)},onCropperReady(){this.hasInitialTransform&&(this.updateTransformedImage(this.$refs.cropper),this.updateFilters(this.$refs.cropper))},updateFilters(t){var n;const e=t.getData(!0),s=t.getImageData(),a={...this.value,transformed:!0,filters:{...(n=this.value)==null?void 0:n.filters,...Ao({cropData:e,imageWidth:s.naturalWidth,imageHeight:s.naturalHeight})}};this.$emit("input",a),this.$emit("updated",a)},updateTransformedImage(t){this.resetTransformedImage(),t.getCroppedCanvas({width:300,height:300}).toBlob(e=>{this.transformedImg=URL.createObjectURL(e)})},resetTransformedImage(){this.transformedImg&&URL.revokeObjectURL(this.transformedImg)},resetThumbnails(){var t;(t=this.file)!=null&&t.blobUrl&&!this.persistThumbnails&&URL.revokeObjectURL(this.file.blobUrl),this.resetTransformedImage()},validateValue(){return this.value.name?!0:b(`Upload field '${this.downloadId}' has an invalid value: expects to have a "name", given :`,JSON.parse(JSON.stringify(this.value)))},init(){this.value?(this.file?Object.assign(this.file,this.value):this.addedFile({...this.value,upload:{}}),this.$set(this.file,"thumbnail",this.value.thumbnail??null)):this.files=[]}},created(){this.options.thumbnailWidth=null,this.options.thumbnailHeight=null,this.options.maxFiles=1,!(!this.value||this.value.file)&&this.validateValue()&&(this.init(),this.file.status="exist")},mounted(){var e;const t=this.uploader._uploader;t.disable(),t.listeners=t.listeners.filter(s=>!s.events.click),t.enable(),t.on("drop",this.handleDrop),t.on("thumbnail",this.onThumbnail),(e=this.value)!=null&&e.file&&(t.addFile(this.value.file),this.$emit("input",{}))},beforeDestroy(){this.resetThumbnails(),this.setPending(!1),this.uploader._uploader.destroy()}};var Uo=function(){var e=this,s=e._self._c;return s("div",{staticClass:"SharpUpload",class:e.classes},[s("div",[e.file?[s("div",{staticClass:"card card-body SharpUpload__card",class:{"border-danger":e.hasError}},[s("div",{class:{row:e.showThumbnail}},[e.showThumbnail?[s("div",{staticClass:"SharpUpload__thumbnail",class:[e.compactThumbnail?"col-4 col-sm-3 col-xl-2":"col-4 col-md-4"]},[s("img",{attrs:{src:e.imageSrc,alt:""}})])]:e._e(),s("div",{staticClass:"SharpUpload__infos",class:{[e.compactThumbnail?"col-8 col-sm-9 col-xl-10":"col-8 col-md-8"]:e.showThumbnail}},[s("div",{staticClass:"mb-3"},[s("label",{staticClass:"SharpUpload__filename text-truncate d-block"},[e._v(e._s(e.fileName))]),s("div",{staticClass:"SharpUpload__info mt-2"},[s("div",{staticClass:"row g-2"},[e.size?[s("div",{staticClass:"col-auto"},[e._v(e._s(e.size))])]:e._e(),e.hasDownload?[s("div",{staticClass:"col-auto"},[s("a",{staticClass:"SharpUpload__download-link",attrs:{href:e.downloadUrl,download:e.fileName}},[s("i",{staticClass:"fas fa-download"}),e._v(" "+e._s(e.l("form.upload.download_link"))+" ")])])]:e._e()],2)]),s("transition",{attrs:{name:"SharpUpload__progress"}},[e.inProgress?[s("div",{staticClass:"SharpUpload__progress mt-2"},[s("div",{staticClass:"SharpUpload__progress-bar",style:{width:`${e.progress}%`},attrs:{role:"progressbar","aria-valuenow":e.progress,"aria-valuemin":"0","aria-valuemax":"100"}})])]:e._e()],2)],1),e.readOnly?e._e():[s("div",[e.hasEdit&&!e.hasError?[s("Button",{staticClass:"me-2",attrs:{outline:"",small:""},on:{click:e.handleEditButtonClick}},[e._v(" "+e._s(e.l("form.upload.edit_button"))+" ")])]:e._e(),s("Button",{staticClass:"SharpUpload__remove-button",attrs:{variant:"danger",outline:"",small:""},on:{click:e.handleRemoveClicked}},[e._v(" "+e._s(e.l("form.upload.remove_button"))+" ")])],2)]],2)],2)])]:[s("Button",{staticClass:"SharpUpload__browse dz-message",attrs:{text:"",block:"",disabled:e.readOnly,type:"button"},on:{click:e.handleClick}},[e._v(" "+e._s(e.l("form.upload.browse_button"))+" ")])],s("div",{ref:"clip-preview-template",staticClass:"clip-preview-template",staticStyle:{display:"none"}},[s("div")])],2),s("EditModal",{ref:"modal",attrs:{value:e.value,visible:e.showEditModal,src:e.originalImageSrc,"ratio-x":e.ratioX,"ratio-y":e.ratioY},on:{"update:visible":function(a){e.showEditModal=a},submit:e.handleEditSubmitted}}),e.hasInitialTransform?[s("vue-cropper",{ref:"cropper",staticClass:"d-none",attrs:{src:e.originalImageSrc,"aspect-ratio":e.ratioX/e.ratioY,"auto-crop-area":1,ready:e.onCropperReady}})]:e._e(),s("a",{ref:"dlLink",staticStyle:{display:"none"}})],2)},Ho=[],qo=r(Vo,Uo,Ho,!1,null,null,null,null);const ve=qo.exports;function Ko(t){const e=t*1024*1024;return o("form.upload.message.file_too_big").replace(":size",Te(e))}function Bs({fileFilter:t,maxFileSize:e}){return{url:br,uploadMultiple:!1,headers:{"X-XSRF-TOKEN":Br()},...t?{acceptedFiles:{extensions:t,message:o("form.upload.message.bad_extension")}}:null,...e?{maxFilesize:{limit:e,message:Ko(e)}}:null,createImageThumbnails:!1}}const Go={name:"SharpUpload",components:{VueClip:ve},props:{...ve.props,value:Object,fileFilter:Array,maxFileSize:Number,root:Boolean},computed:{options(){return Bs({fileFilter:this.fileFilter,maxFileSize:this.maxFileSize})}}};var Wo=function(){var e=this,s=e._self._c;return s("VueClip",e._b({attrs:{value:e.value,options:e.options,root:e.root},on:{input:function(a){return e.$emit("input",a)},error:function(a){return e.$emit("error",a)},add:function(a){return e.$emit("clear")}}},"VueClip",e.$props,!1))},Qo=[],Yo=r(Go,Wo,Qo,!1,null,null,null,null);const Xo=Yo.exports,Os={mixins:[Pe],methods:{localizeLabel(t){return this.isLocalized?t[this.locale]:t},localizedOptionLabel(t){return this.localizeLabel(t.label)}}},Jo={extends:Os,methods:{localizeLabel(t){return this.isLocalized?t[this.locale]||o("form.tags.unknown_label"):t},localizedTagLabel(t){return this.isLocalized?Jl({locales:this.locales,resolve:e=>e===this.locale?t:null}):t},localizedCustomLabel(t){return this.localizeLabel(t.label)}}};class Es{constructor(e){this.id=e.id,this.label=e.label}set internalId(e){this._internalId=e}get internalId(){return this._internalId}}class Zo extends Es{}class me extends Es{}const ed={name:"SharpTags",mixins:[Jo],components:{Multiselect:us},props:{id:String,value:Array,options:Array,placeholder:String,maxTagCount:Number,createText:String,creatable:{type:Boolean,default:!0},readOnly:Boolean},data(){return{tags:[],lastIndex:0}},computed:{indexedOptions(){return this.options.map(this.patchOption)},dynamicPlaceholder(){return this.tags.length<(this.maxTagCount||1/0)?this.placeholder:""},ids(){return this.tags.map(t=>t.internalId)}},watch:{tags:"onTagsChanged"},methods:{patchOption(t,e){let s=new Zo(t);return s.internalId=e,s},patchTag(t){let e=this.indexedOptions.find(a=>a.id===t.id),s=new me(e);return s.internalId=e.internalId,s},handleNewTag(t){let e=new me({id:null,label:this.localizedTagLabel(t)});e.internalId=this.lastIndex++,this.tags.push(e)},handleInput(t){this.tags=t},handleTextInput(t){t.length>0&&this.$refs.multiselect.filteredOptions.length>1?this.$refs.multiselect.pointer=1:this.$refs.multiselect.pointer=0},onTagsChanged(){this.$emit("input",this.tags.map(t=>new me(t)))}},created(){this.lastIndex+=this.options.length,this.tags=(this.value||[]).map(this.patchTag)}};var td=function(){var e=this,s=e._self._c;return s("Multiselect",{ref:"multiselect",staticClass:"SharpTags form-select",attrs:{id:e.id,value:e.tags,options:e.indexedOptions,placeholder:e.dynamicPlaceholder,"tag-placeholder":e.createText,max:e.maxTagCount,taggable:e.creatable,"close-on-select":!1,disabled:e.readOnly,"track-by":"_internalId",label:"label","custom-label":e.localizedCustomLabel,multiple:"",searchable:"","hide-selected":"","show-labels":!1},on:{"search-change":e.handleTextInput,input:e.handleInput,tag:e.handleNewTag}})},sd=[],ad=r(ed,td,sd,!1,null,null,null,null);const nd=ad.exports,id={name:"SharpDatePicker",components:{VDatePicker:Oa.DatePicker},props:{value:[Date,Object],isRange:Boolean,mondayFirst:Boolean,displayFormat:String},computed:{popoverOptions(){return{visibility:"focus",hideDelay:10,placement:"bottom",modifiers:[{name:"preventOverflow",options:{boundary:document.querySelector("[data-popover-boundary]")??"clippingParents",padding:8}},{name:"flip",enabled:!1}]}},masks(){return{input:this.displayFormat||void 0}},locale(){return document.documentElement.lang},firstDayOfWeek(){return this.mondayFirst?2:1},attributes(){return[{key:"today",dot:!0,dates:new Date}]}},methods:{handleInput(t){this.$emit("input",t)}}};var rd=function(){var e=this,s=e._self._c;return s("v-date-picker",e._g(e._b({staticClass:"SharpDatePicker",attrs:{value:e.value,popover:e.popoverOptions,"is-range":e.isRange,locale:e.locale,"first-day-of-week":e.firstDayOfWeek,attributes:e.attributes,color:"primary",is24hr:"","trim-weeks":""},on:{input:e.handleInput},scopedSlots:e._u([{key:"default",fn:function(a){return[e._t("default",null,null,a)]}}],null,!0)},"v-date-picker",e.$attrs,!1),e.$listeners))},ld=[],od=r(id,rd,ld,!1,null,null,null,null);const Is=od.exports;w.locale(w.locales().includes(document.documentElement.lang)?document.documentElement.lang:"en");const dd={name:"SharpDate",components:{DatePicker:Is,ClearButton:se},mixins:[y],props:{id:String,value:{type:[Date,String]},hasDate:{type:Boolean,default:!0},hasTime:{type:Boolean,default:!1},displayFormat:String,mondayFirst:Boolean,stepTime:{type:Number,default:30},minTime:String,maxTime:String,readOnly:Boolean},data(){return{localInputValue:null}},computed:{format(){return this.hasTime&&!this.hasDate?"HH:mm":null},mode(){return this.hasDate&&this.hasTime?"dateTime":this.hasTime?"time":"date"},validHours(){return{min:this.minTime?parseInt(this.minTime):null,max:this.maxTime?parseInt(this.maxTime):null}},pickerValue(){return this.value?w(this.value,this.format).toDate():null},inputValue(){return typeof this.localInputValue=="string"?this.localInputValue:this.value?w(this.value,this.format).format(this.displayFormat):""},hasClearButton(){return!!this.value}},methods:{getMoment(){return this.value?w(this.value,this.format):w()},formatDateValue(t){return t?this.hasDate?this.hasTime?w(t).format():w(t).format("YYYY-MM-DD"):w(t).format("HH:mm"):null},handleDateChanged(t){this.$emit("input",this.formatDateValue(t))},handleInput(t){const e=w(t.target.value,this.displayFormat,!0);this.localInputValue=t.target.value,e.isValid()?(this.rollback(),this.$emit("input",this.formatDateValue(e.toDate())),this.updatePopover()):this.$emit("error",`${o("form.date.validation_error.format")} (${this.displayFormat})`)},handlePrependButtonClicked(){setTimeout(()=>this.$refs.input.focus())},handleBlur(){this.localInputValue&&this.rollback()},updatePopover(){this.$refs.input.dispatchEvent(new Event("change",{bubbles:!0}))},increase(t){this.translate(t.target,1)},decrease(t){this.translate(t.target,-1)},async translate(t,e){let s=this.changeOnArrowPressed(t.selectionStart,e);s&&(await this.$nextTick(),t.setSelectionRange(s.start,s.end),this.updatePopover())},add(t,e){const s=this.getMoment();s.add(t,e),this.$emit("input",this.formatDateValue(s.toDate()))},nearestMinutesDist(t){let e=this.getMoment().minutes();if(e%this.stepTime===0)return t*this.stepTime;let s=t<0?"floor":"ceil";return this.stepTime*Math[s](e/this.stepTime)-e},updateMoment(t,e){switch(t){case"H":this.add(e,"hours");break;case"m":this.add(this.nearestMinutesDist(e),"minutes");break;case"s":this.add(e,"seconds");break;case"Y":this.add(e,"years");break;case"M":this.add(e,"months");break;case"D":this.add(e,"days");break;default:return!1}return!0},changeOnArrowPressed(t,e){let s=t;if(!this.updateMoment(this.displayFormat[s],e)&&t&&(s--,!this.updateMoment(this.displayFormat[s],e)))return null;let a=this.displayFormat[s];return{start:this.displayFormat.indexOf(a),end:this.displayFormat.lastIndexOf(a)+1}},rollback(){this.$emit("clear"),this.localInputValue=null},clear(){this.rollback(),this.$emit("input",null),setTimeout(()=>this.$refs.input.focus())}}};var cd=function(){var e=this,s=e._self._c;return s("div",{staticClass:"SharpDate"},[s("div",{staticClass:"SharpDate__input-wrapper position-relative"},[s("DatePicker",{attrs:{value:e.pickerValue,mode:e.mode,"minute-increment":e.stepTime,"monday-first":e.mondayFirst,"update-on-input":!1},on:{input:e.handleDateChanged},scopedSlots:e._u([{key:"default",fn:function({inputEvents:a,togglePopover:n}){return[s("div",{staticClass:"input-group",class:{"input-group--clearable":e.hasClearButton}},[s("button",{staticClass:"input-group-text btn",on:{click:e.handlePrependButtonClicked}},[s("svg",{staticClass:"align-middle",staticStyle:{fill:"currentColor"},attrs:{width:"1.25em",height:"1.25em",viewBox:"0 0 32 32"}},[s("path",{attrs:{d:"M26,4h-4V2h-2v2h-8V2h-2v2H6C4.9,4,4,4.9,4,6v20c0,1.1,0.9,2,2,2h20c1.1,0,2-0.9,2-2V6C28,4.9,27.1,4,26,4z M26,26H6V12h20 V26z M26,10H6V6h4v2h2V6h8v2h2V6h4V10z"}})])]),s("input",e._g({ref:"input",staticClass:"form-control clearable SharpDate__input",class:{"SharpDate__input--valuated":e.value},attrs:{id:e.id,placeholder:e.displayFormat,disabled:e.readOnly,autocomplete:"off"},domProps:{value:e.inputValue},on:{input:e.handleInput,blur:e.handleBlur,keydown:[function(i){return!i.type.indexOf("key")&&e._k(i.keyCode,"up",38,i.key,["Up","ArrowUp"])?null:(i.preventDefault(),e.increase.apply(null,arguments))},function(i){return!i.type.indexOf("key")&&e._k(i.keyCode,"down",40,i.key,["Down","ArrowDown"])?null:(i.preventDefault(),e.decrease.apply(null,arguments))}]}},a)),e.hasClearButton?[s("ClearButton",{ref:"clearButton",on:{click:e.clear}})]:e._e()],2)]}}])})],1)])},ud=[],hd=r(dd,cd,ud,!1,null,null,null,null);const md=hd.exports,pd={name:"SharpCheck",props:{value:Boolean,text:String,readOnly:Boolean,uniqueIdentifier:String,id:String},computed:{resolvedId(){return this.id??this.uniqueIdentifier}},methods:{handleCheck(t){this.$emit("input",t.target.checked)}}};var fd=function(){var e=this,s=e._self._c;return s("div",{staticClass:"SharpCheck form-check"},[s("input",{staticClass:"form-check-input",attrs:{type:"checkbox",id:e.resolvedId,disabled:e.readOnly},domProps:{checked:e.value},on:{change:e.handleCheck}}),s("label",{staticClass:"form-check-label",attrs:{for:e.resolvedId}},[e._v(" "+e._s(e.text)+" ")])])},_d=[],gd=r(pd,fd,_d,!1,null,null,null,null);const Ts=gd.exports,vd={name:"FieldsLayout",components:{Grid:R},props:{layout:{type:Array,required:!0},visible:{type:Object,default:()=>({})}},data(){return{fieldsetMap:{}}},methods:{isFieldset(t){return!!t.legend},isFieldsetVisible(t){return(t.fields||[]).flat().some(e=>this.visible[e.key])},updateLayout(){this.$el.querySelectorAll(":scope > .SharpGrid__row").forEach(e=>{const s=!!e.querySelector(":scope > .SharpGrid__col > .SharpForm__form-item--has-label"),a=!!e.querySelector(".SharpFieldLocaleSelect");e.classList.toggle("SharpGrid__row--has-label",s),e.classList.toggle("SharpGrid__row--has-locale-select",a)})}},mounted(){this.updateLayout()},updated(){this.updateLayout()}};var bd=function(){var e=this,s=e._self._c;return s("Grid",{attrs:{rows:e.layout},scopedSlots:e._u([{key:"default",fn:function({itemLayout:a}){return[e.isFieldset(a)?[s("fieldset",{directives:[{name:"show",rawName:"v-show",value:e.isFieldsetVisible(a),expression:"isFieldsetVisible(fieldLayout)"}]},[s("legend",{staticClass:"SharpForm__label form-label"},[e._v(e._s(a.legend))]),s("div",{staticClass:"card SharpForm__fieldset shadow-sm"},[s("div",{staticClass:"card-body"},[s("FieldsLayout",{attrs:{layout:a.fields},scopedSlots:e._u([{key:"default",fn:function({fieldLayout:n}){return[e._t("default",null,{fieldLayout:n})]}}],null,!0)})],1)])])]:[e._t("default",null,{fieldLayout:a})]]}}])})},yd=[],Cd=r(vd,bd,yd,!1,null,null,null,null);const As=Cd.exports,$d={name:"SharpListItem",extends:As,mixins:[gr]},wd=null,Sd=null;var kd=r($d,wd,Sd,!1,null,null,null,null);const xd=kd.exports;function Rs(t){return{_localizedForm:t,methods:{fieldLocalizedValue(e,s,a=this.data,n=this.fieldLocale){let i=this[t][e];return this.localized&&i.localized&&ze(i)?ps({localeObject:a[e],locale:n[e],value:s}):s},defaultFieldLocaleMap({fields:e,locales:s},a){return Object.values(e).filter(n=>n.type==="list"?Object.values(n.itemFields??{}).some(i=>i.localized):n.localized).reduce((n,i)=>({...n,[i.key]:a||s&&s[0]}),{})}}}}const Fd={props:{field:Object,limit:Number,disabled:Boolean},data(){return{dragActive:!1}},computed:{classes(){return{"SharpListUpload--active":this.dragActive,"SharpListUpload--disabled":this.disabled}},text(){return this.getText({link:'$1'})},label(){return this.getText()},accept(){var t;return(t=this.field.fileFilter)==null?void 0:t.join(",")},helpText(){return o("form.list.bulk_upload.help_text").replace(":limit",this.limit)}},methods:{getText({link:t}={}){return o("form.list.bulk_upload.text").replace(/\[(.+?)]\(.*?\)/,t??"$1")},handleDragEnter(){this.dragActive=!0},handleDragLeave(){this.dragActive=!1},handleDrop(){this.dragActive=!1},handleTextClicked(){this.$refs.input.click()},handleChanged(t){this.$emit("change",t),t.target.value=""}}};var Ld=function(){var e=this,s=e._self._c;return s("div",{staticClass:"list-group-item text-muted SharpListUpload",class:e.classes},[s("div",{staticClass:"SharpListUpload__content d-flex align-items-center justify-content-center"},[s("div",{staticClass:"SharpListUpload__text"},[s("div",{staticClass:"row align-items-center gx-0"},[s("div",{staticClass:"col-auto"},[s("svg",{staticClass:"SharpListUpload__icon",attrs:{width:"2em",height:"2em",viewBox:"0 0 32 32"}},[s("path",{attrs:{d:"M26,24v4H6V24H4v4H4a2,2,0,0,0,2,2H26a2,2,0,0,0,2-2h0V24Z"}}),s("polygon",{attrs:{points:"26 14 24.59 12.59 17 20.17 17 2 15 2 15 20.17 7.41 12.59 6 14 16 24 26 14"}})])]),s("div",{staticClass:"col"},[s("div",{domProps:{innerHTML:e._s(e.text)},on:{click:function(a){return a.preventDefault(),e.handleTextClicked.apply(null,arguments)}}})])])])]),s("div",{staticClass:"SharpListUpload__help"},[e._v(" "+e._s(e.helpText)+" ")]),s("input",{ref:"input",staticClass:"SharpListUpload__input",attrs:{type:"file","aria-label":e.label,disabled:e.disabled,accept:e.accept,multiple:""},on:{change:e.handleChanged,dragenter:e.handleDragEnter,dragleave:e.handleDragLeave,drop:e.handleDrop}})])},Bd=[],Od=r(Fd,Ld,Bd,!1,null,null,null,null);const Ed=Od.exports,Id={name:"SharpList",inject:["$form"],mixins:[y,Rs("itemFields")],components:{ListUpload:Ed,Draggable:St,ListItem:xd,Button:_,TemplateRenderer:z},props:{fieldKey:String,fieldLayout:Object,value:Array,addable:{type:Boolean,default:!0},sortable:{type:Boolean,default:!1},removable:{type:Boolean,default:!1},addText:{type:String,default:"Ajouter un élément"},itemFields:{type:Object,required:!0},collapsedItemTemplate:String,maxItemCount:Number,bulkUploadField:String,bulkUploadLimit:{type:Number,default:10},itemIdAttribute:String,readOnly:Boolean,locale:[String,Array]},data(){return{list:[],dragActive:!1,dragging:!1,lastIndex:0}},watch:{list:"handleListChanged",locale:"handleLocaleChanged"},computed:{classes(){return{"SharpList--can-sort":this.showSortButton,"SharpList--dragging":this.dragging}},dragOptions(){return{handle:this.dragActive?".SharpList__item":".SharpList__drag-handle",filter:".SharpListUpload"}},canAddItem(){return this.addable&&(this.list.length1},showRemoveButton(){return this.removable&&!this.isReadOnly},dragIndexSymbol(){return Symbol("dragIndex")},indexSymbol(){return Symbol("index")},hasPendingActions(){var t;return(t=this.$form)==null?void 0:t.hasUploadingFields(this.fieldKey)},isReadOnly(){return this.readOnly||this.dragActive},hasUpload(){var t;return((t=this.uploadField)==null?void 0:t.type)==="upload"&&this.canAddItem&&this.uploadLimit>0},uploadField(){return this.bulkUploadField?this.itemFields[this.bulkUploadField]:null},uploadLimit(){if(this.maxItemCount){const t=this.maxItemCount-this.list.length;return Math.min(t,this.bulkUploadLimit)}return this.bulkUploadLimit}},methods:{handleListChanged(){this.$emit("locale-change",this.list.map(t=>t._fieldsLocale))},handleLocaleChanged(t){typeof t=="string"&&this.list.forEach(e=>{Object.assign(e,this.withLocale(null,t))})},itemData(t){const{_fieldsLocale:e,...s}=t;return s},transformedFields(t){const e=this.list[t],s=this.itemData(e);return ys(this.itemFields,s)},indexedList(){return(this.value||[]).map((t,e)=>this.withLocale({[this.indexSymbol]:e,...t}))},createItem(){return Object.entries(this.itemFields).reduce((t,[e,s])=>(t[e]=co(s.type),t),this.withLocale({[this.itemIdAttribute]:null,[this.indexSymbol]:this.lastIndex++}))},insertNewItem(t,e){e.target&&e.target.blur(),this.list.splice(t,0,this.createItem())},add(){this.list.push(this.createItem())},remove(t){this.list.splice(t,1)},update(t){return(e,s,{forced:a}={})=>{const n={...this.list[t]},i={...a?null:vs(this.itemFields,e,()=>this.fieldLocalizedValue(e,null,n,n._fieldsLocale)),[e]:this.fieldLocalizedValue(e,s,n,n._fieldsLocale)};Object.assign(this.list[t],i)}},updateLocale(t,e,s){this.$set(this.list[t]._fieldsLocale,e,s),this.handleListChanged()},collapsedItemData(t){return{$index:t[this.dragIndexSymbol],...t}},toggleDrag(){this.dragActive=!this.dragActive,this.list.forEach((t,e)=>t[this.dragIndexSymbol]=e)},withLocale(t,e){var s;return{...t,_fieldsLocale:this.defaultFieldLocaleMap({fields:this.itemFields,locales:(s=this.$form)==null?void 0:s.locales},e)}},handleUploadChanged(t){const e=[...t.target.files].slice(0,this.uploadLimit);if(t.target.files.length>this.uploadLimit){const s=o("form.list.bulk_upload.validation.limit").replace(":limit",this.uploadLimit);D(s,{title:o("modals.error.title")})}e.forEach(s=>{const a=this.createItem();a[this.bulkUploadField]={file:s},this.list.push(a)})},initList(){this.list=this.indexedList(),this.lastIndex=this.list.length,this.$emit("input",this.list)}},created(){var t;this.localized=(t=this.$form)==null?void 0:t.localized,this.initList()}};var Td=function(){var e=this,s=e._self._c;return s("div",{staticClass:"SharpList",class:e.classes,on:{dragstart:function(a){e.dragging=!0},dragend:function(a){e.dragging=!1}}},[s("div",{staticClass:"SharpList__sticky-wrapper text-end"},[e.showSortButton?[s("Button",{staticClass:"SharpList__sort-button",staticStyle:{"pointer-events":"auto"},attrs:{text:"",small:"",active:e.dragActive},on:{click:e.toggleDrag}},[e._v(" "+e._s(e.l("form.list.sort_button.inactive"))+" "),s("svg",{staticStyle:{"margin-left":".5em"},attrs:{width:"1.125em",height:"1.125em",viewBox:"0 0 24 22","fill-rule":"evenodd"}},[s("path",{attrs:{d:"M20 14V0h-4v14h-4l6 8 6-8zM4 8v14h4V8h4L6 0 0 8z"}})])])]:e._e()],2),s("Draggable",{ref:"draggable",attrs:{options:e.dragOptions,list:e.list},scopedSlots:e._u([e.showAddButton?{key:"footer",fn:function(){return[s("div",{class:{"mt-3":e.list.length>0||e.hasUpload}},[s("Button",{key:-1,staticClass:"SharpList__add-button",attrs:{disabled:e.isReadOnly,text:"",block:""},on:{click:e.add}},[e._v(" + "+e._s(e.addText)+" ")])],1)]},proxy:!0}:null],null,!0)},[s("transition-group",{staticClass:"list-group shadow-sm",attrs:{name:"expand",tag:"div"}},[e._l(e.list,function(a,n){return[s("div",{key:a[e.indexSymbol],staticClass:"SharpList__item list-group-item",class:{"SharpList__item--drag-active":e.dragActive}},[e.showInsertButton?[s("div",{staticClass:"SharpList__new-item-zone"},[s("Button",{attrs:{small:""},on:{click:function(i){return e.insertNewItem(n,i)}}},[e._v(" "+e._s(e.l("form.list.insert_button"))+" ")])],1)]:e._e(),e.dragActive&&e.collapsedItemTemplate?[s("TemplateRenderer",{attrs:{name:"CollapsedItem",template:e.collapsedItemTemplate,"template-data":e.collapsedItemData(a)}})]:[s("ListItem",{attrs:{layout:e.fieldLayout.item,"error-identifier":n},scopedSlots:e._u([{key:"default",fn:function({fieldLayout:i}){return[s("FieldDisplay",{attrs:{"field-key":i.key,"context-fields":e.transformedFields(n),"context-data":a,"error-identifier":i.key,"config-identifier":i.key,"update-data":e.update(n),locale:a._fieldsLocale[i.key],"read-only":e.isReadOnly,list:!0},on:{"locale-change":(l,d)=>e.updateLocale(n,l,d)}})]}}],null,!0)}),e.showRemoveButton?[s("button",{staticClass:"SharpList__remove-button btn-close",attrs:{"aria-label":e.l("form.list.remove_button")},on:{click:function(i){return e.remove(n)}}})]:e._e()],e.showSortButton?[s("div",{staticClass:"SharpList__drag-handle d-flex align-items-center px-1"},[s("i",{staticClass:"fas fa-grip-vertical opacity-25"})])]:e._e()],2)]}),e.hasUpload?[s("ListUpload",{key:"upload",attrs:{field:e.uploadField,limit:e.uploadLimit,disabled:e.isReadOnly},on:{change:e.handleUploadChanged}})]:e._e()],2)],1),e.readOnly&&!e.list.length?[s("em",{staticClass:"SharpList__empty-alert"},[e._v(e._s(e.l("form.list.empty")))])]:e._e()],2)},Ad=[],Rd=r(Id,Td,Ad,!1,null,null,null,null);const Dd=Rd.exports;function Ds(t,e,s){if(!e)return;const a=document.querySelector(`label[for="${e}"]`);a&&(a.addEventListener("click",s),t.$on("hook:beforeDestroy",()=>{a.removeEventListener("click",s)}))}const Pd={components:{Multiselect:us,ClearButton:se},props:{id:String,value:[Array,String,Number],options:Array,labels:Object,multiple:Boolean,clearable:Boolean,placeholder:String,maxSelected:Number,readOnly:Boolean},computed:{multiselectOptions(){return this.options.map(t=>t.id)},hasClearButton(){return this.clearable&&!this.multiple&&this.value!=null}},methods:{multiselectLabel(t){return this.labels[t]},remove(){this.$emit("input",null),this.$refs.multiselect.activate()},handleInput(t){this.$emit("input",t)}},mounted(){Ds(this,this.id,()=>{this.$el.focus()})}};var zd=function(){var e=this,s=e._self._c;return s("Multiselect",{ref:"multiselect",attrs:{id:e.id,value:e.value,searchable:!1,options:e.multiselectOptions,multiple:e.multiple,"hide-selected":e.multiple,"close-on-select":!e.multiple,"custom-label":e.multiselectLabel,placeholder:e.placeholder,disabled:e.readOnly,max:e.maxSelected,"allow-empty":e.clearable},on:{input:e.handleInput,open:function(a){return e.$emit("open")},close:function(a){return e.$emit("close")}},scopedSlots:e._u([e.hasClearButton?{key:"caret",fn:function(){return[s("ClearButton",{staticClass:"SharpSelect__clear-button",on:{click:e.remove}})]},proxy:!0}:null,{key:"tag",fn:function({option:a,remove:n}){return[s("span",{key:a,staticClass:"multiselect__tag"},[s("span",[e._v(e._s(e.multiselectLabel(a)))]),s("i",{staticClass:"multiselect__tag-icon",attrs:{"aria-hidden":"true",tabindex:"1"},on:{keypress:function(i){return!i.type.indexOf("key")&&e._k(i.keyCode,"enter",13,i.key,"Enter")?null:(i.preventDefault(),n(a))},mousedown:function(i){return i.preventDefault(),i.stopPropagation(),n(a)}}})])]}},{key:"option",fn:function(){return[e._t("option")]},proxy:!0}],null,!0)})},Md=[],jd=r(Pd,zd,Md,!1,null,null,null,null);const Nd=jd.exports;function be(t,e){return t.id==null||e==null?!1:t.id==e}const Vd={components:{Check:Ts},props:{value:Array,options:Array,readOnly:Boolean,labels:Object,showSelectAll:Boolean,maxSelected:Number,inline:Boolean,root:Boolean,uniqueIdentifier:String},methods:{lang:o,isChecked(t){var e;return(e=this.value)==null?void 0:e.some(s=>be(t,s))},checkboxId(t){return`${this.uniqueIdentifier}.${t}`},handleSelectAllClicked(){this.$emit("input",this.options.map(t=>t.id))},handleUnselectAllClicked(){this.$emit("input",[])},handleCheckboxChanged(t,e){const s=t?[...this.value??[],e.id]:(this.value??[]).filter(n=>!be(e,n)),a=this.validate(s);this.$emit("input",s,{error:a})},validate(t){return this.maxSelected&&(t==null?void 0:t.length)>this.maxSelected?o("form.select.validation.max_selected").replace(":max_selected",this.maxSelected):null}}};var Ud=function(){var e=this,s=e._self._c;return s("div",{class:{"card card-body form-control":e.root}},[s("div",{staticClass:"row gy-1 gx-3",class:e.inline?"row-cols-auto":"row-cols-1"},[e._l(e.options,function(a,n){return[s("div",{staticClass:"col"},[s("Check",{key:a.id,staticClass:"mb-0",attrs:{id:e.checkboxId(n),value:e.isChecked(a),text:e.labels[a.id],"read-only":e.readOnly},on:{input:function(i){return e.handleCheckboxChanged(i,a)}}})],1)]})],2),e.showSelectAll?[s("div",{staticClass:"SharpSelect__links mt-3"},[s("div",{staticClass:"row gx-3"},[s("div",{staticClass:"col-auto"},[s("a",{attrs:{href:"#"},on:{click:function(a){return a.preventDefault(),e.handleSelectAllClicked.apply(null,arguments)}}},[e._v(e._s(e.lang("form.select.select_all")))])]),s("div",{staticClass:"col-auto"},[s("a",{attrs:{href:"#"},on:{click:function(a){return a.preventDefault(),e.handleUnselectAllClicked.apply(null,arguments)}}},[e._v(e._s(e.lang("form.select.unselect_all")))])])])])]:e._e()],2)},Hd=[],qd=r(Vd,Ud,Hd,!1,null,null,null,null);const Kd=qd.exports,Gd={props:{value:[String,Number],options:Array,labels:Object,uniqueIdentifier:String,readOnly:Boolean,inline:Boolean,root:Boolean},methods:{isSelected(t){return be(t,this.value)},handleRadioChanged(t){this.$emit("input",t.id)}}};var Wd=function(){var e=this,s=e._self._c;return s("div",{class:{"card card-body form-control":e.root}},[s("div",{staticClass:"row gy-1 gx-3",class:e.inline?"row-cols-auto":"row-cols-1"},[e._l(e.options,function(a,n){return[s("div",{key:a.id,staticClass:"col"},[s("div",{staticClass:"form-check mb-0"},[s("input",{staticClass:"form-check-input",attrs:{type:"radio",tabindex:"0",id:`${e.uniqueIdentifier}.${n}`,disabled:e.readOnly,name:e.uniqueIdentifier},domProps:{checked:e.isSelected(a),value:a.id},on:{change:function(i){return e.handleRadioChanged(a)}}}),s("label",{staticClass:"form-check-label",attrs:{for:`${e.uniqueIdentifier}.${n}`}},[e._v(" "+e._s(e.labels[a.id])+" ")])])])]})],2)])},Qd=[],Yd=r(Gd,Wd,Qd,!1,null,null,null,null);const Xd=Yd.exports,Jd={name:"SharpSelect",mixins:[Os],props:{value:[Array,String,Number],uniqueIdentifier:String,options:{type:Array,required:!0,default:()=>[]},multiple:{type:Boolean,default:!1},display:{type:String,default:"dropdown"},clearable:{type:Boolean,default:!1},showSelectAll:{type:Boolean,default:!0},placeholder:{type:String,default:"-"},maxSelected:Number,readOnly:Boolean,inline:{type:Boolean,default:!0},root:Boolean},watch:{options(){this.init()}},computed:{classes(){return[`SharpSelect--${this.display}`,{"SharpSelect--multiple":this.multiple}]},component(){return this.display==="dropdown"?Nd:this.multiple?Kd:Xd},optionsLabel(){return this.options.reduce((t,e)=>(t[e.id]=this.localizedOptionLabel(e),t),{})}},methods:{handleInput(t,{error:e}={}){this.$emit("input",t,{error:e})},setDefault(){!this.clearable&&!this.multiple&&this.value==null&&this.options.length>0&&this.$emit("input",this.options[0].id,{force:!0})},init(){bs(this,this.setDefault,{dependantAttributes:["options"]})},blur(){var t;(t=this.$refs.component.$refs)==null||t.multiselect.deactivate()}},created(){this.init()}};var Zd=function(){var e=this,s=e._self._c;return s(e.component,e._b({ref:"component",tag:"component",staticClass:"SharpSelect",class:e.classes,attrs:{labels:e.optionsLabel},on:{input:e.handleInput}},"component",[e.$props,e.$attrs],!1))},ec=[],tc=r(Jd,Zd,ec,!1,null,null,null,null);const Ps=tc.exports,sc={name:"SharpHtml",components:{TemplateRenderer:z},props:{value:Object,template:String}};var ac=function(){var e=this,s=e._self._c;return s("TemplateRenderer",{attrs:{name:"Html",template:e.template,"template-data":e.value}})},nc=[],ic=r(sc,ac,nc,!1,null,null,null,null);const rc=ic.exports,zs={mapTypeControl:!1,streetViewControl:!1};function lc(t){return[t.getSouthWest().toJSON(),t.getNorthEast().toJSON()]}function Ms(t){const e=t;return Array.isArray(e)?new google.maps.LatLngBounds(e[0],e[1]):null}function js({maxBounds:t,...e}){const s={...e};return Array.isArray(t)&&(s.restriction={latLngBounds:Ms(t)}),s}const oc={name:"SharpGmaps",components:{GmapMap:ke,GmapMarker:Se},props:{markerPosition:Object,center:Object,zoom:Number},computed:{options(){return js({...zs,maxBounds:this.maxBounds,controlSize:32})}}};var dc=function(){var e=this,s=e._self._c;return s("GmapMap",{ref:"map",attrs:{center:e.center,zoom:e.zoom,options:e.options}},[s("GmapMarker",{attrs:{position:e.markerPosition}})],1)},cc=[],uc=r(oc,dc,cc,!1,null,null,null,null);const hc=uc.exports,mc={name:"SharpGmapsEditable",components:{GmapMap:ke,GmapMarker:Se},props:{markerPosition:Object,bounds:Array,center:Object,zoom:Number,maxBounds:Array},computed:{options(){return js({...zs,maxBounds:this.maxBounds,draggableCursor:"crosshair"})},hasMarker(){return!!this.markerPosition}},watch:{bounds(t){const e=Ms(t);e&&this.$refs.map.$mapObject.fitBounds(e)}},methods:{handleMapClicked(t){this.$emit("change",t.latLng.toJSON())},handleMarkerDragEnd(t){this.$emit("change",t.latLng.toJSON())}}};var pc=function(){var e=this,s=e._self._c;return s("GmapMap",{ref:"map",attrs:{center:e.center,zoom:e.zoom,options:e.options},on:{click:e.handleMapClicked}},[e.hasMarker?[s("GmapMarker",{attrs:{position:e.markerPosition,draggable:""},on:{dragend:e.handleMarkerDragEnd}})]:e._e()],2)},fc=[],_c=r(mc,pc,fc,!1,null,null,null,null);const gc=_c.exports,vc=Ea(({apiKey:t})=>{const e={v:3};return t&&(e.key=t),zt(e),h.$gmapApiPromiseLazy()});let pe=null;function bc({address:t,latLng:e}){return pe||(pe=new google.maps.Geocoder),new Promise((s,a)=>{pe.geocode({address:t,location:e},(n,i)=>{i==="OK"?s(n.map(l=>({location:l.geometry.location.toJSON(),bounds:lc(l.geometry.viewport),address:l.formatted_address}))):i==="ZERO_RESULTS"?s([]):a(i)})})}function ye(t){const e=t;return Array.isArray(e)?Bt.latLngBounds(e[0],e[1]):null}Bt.Icon.Default.mergeOptions({iconUrl:Ia,iconRetinaUrl:Ta,shadowUrl:Aa});const yc={name:"SharpOsm",components:{LMap:Ot,LMarker:Et,LTileLayer:It},props:{markerPosition:Object,zoom:Number,center:Object,maxBounds:Array,tilesUrl:{type:String,default:"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"}},computed:{transformedMaxBounds(){return ye(this.maxBounds)}}};var Cc=function(){var e=this,s=e._self._c;return s("LMap",{attrs:{zoom:e.zoom,center:e.center,"max-bounds":e.transformedMaxBounds}},[s("LTileLayer",{attrs:{url:e.tilesUrl}}),s("LMarker",{attrs:{"lat-lng":e.markerPosition}})],1)},$c=[],wc=r(yc,Cc,$c,!1,null,null,null,null);const Sc=wc.exports;function nt(t,e){let s=t<0?e?"W":"S":e?"E":"N",a=0|(t<0?t=-t:t),n=0|t%1*60,i=(0|t*60%1*6e3)/100;return`${a}°${n}"${i}' ${s}`}function G(t){return t?t.name:null}function fe(t){return t?t.options||{}:{}}function Ns(t){return t?t.tilesUrl:null}function Vs(){window.dispatchEvent(new Event("resize"))}const kc={name:"SharpOsmEditable",components:{LMap:Ot,LMarker:Et,LTileLayer:It},props:{markerPosition:Object,center:Object,zoom:Number,bounds:Array,maxBounds:Array,tilesUrl:{type:String,default:"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"}},computed:{hasMarker(){return!!this.markerPosition},transformedBounds(){return ye(this.bounds)},transformedMaxBounds(){return ye(this.maxBounds)}},methods:{handleMapClicked(t){this.$emit("change",t.latlng)},handleMarkerDragEnd(t){this.$emit("change",t.target.getLatLng())}},mounted(){Vs()}};var xc=function(){var e=this,s=e._self._c;return s("LMap",{attrs:{zoom:e.zoom,center:e.center,bounds:e.transformedBounds,"max-bounds":e.transformedMaxBounds},on:{click:e.handleMapClicked}},[s("LTileLayer",{attrs:{url:e.tilesUrl}}),e.hasMarker?[s("LMarker",{attrs:{"lat-lng":e.markerPosition,draggable:""},on:{dragend:e.handleMarkerDragEnd}})]:e._e()],2)},Fc=[],Lc=r(kc,xc,Fc,!1,null,null,null,null);const Bc=Lc.exports;function Oc(t){return X.get("https://nominatim.openstreetmap.org/search",{params:{q:t,format:"json"}}).then(e=>e.data)}function Ec(t){return X.get("https://nominatim.openstreetmap.org/reverse",{params:{lat:t.lat,lon:t.lng,format:"json"}}).then(e=>[e.data])}async function Ic({address:t,latLng:e}){return(e?await Ec(e):await Oc(t)).map(a=>({location:{lat:Number(a.lat),lng:Number(a.lon)},bounds:[{lat:Number(a.boundingbox[0]),lng:Number(a.boundingbox[2])},{lat:Number(a.boundingbox[1]),lng:Number(a.boundingbox[3])}],address:a.display_name}))}function Tc(t){if(t==="gmaps")return hc;if(t==="osm")return Sc}function Ac(t){if(t==="gmaps")return gc;if(t==="osm")return Bc}function Rc(t,e){return t==="gmaps"?Promise.resolve(vc(e)):Promise.resolve()}function it(t,e,s){return t==="gmaps"?bc(e):t==="osm"?Ic(e):Promise.resolve([])}const Dc={mixins:[Kr("form.geolocation.modal")],components:{Loading:I,Modal:F,TextField:re,Button:_},props:{location:Object,center:Object,bounds:Object,zoom:Number,maxBounds:Array,geocoding:Boolean,mapsProvider:{type:String,default:"gmaps"},mapsOptions:Object,geocodingProvider:{type:String,default:"gmaps"},geocodingOptions:Object},data(){return{loading:!1,search:null,message:null,currentLocation:this.location,currentBounds:this.bounds}},computed:{editableMapComponent(){return Ac(this.mapsProvider)},hasGeocoding(){return this.geocoding},classes(){return{"SharpGeolocationEdit--loading":this.loading}},mapClasses(){return[`SharpGeolocationEdit__map--${this.mapsProvider}`]},tilesUrl(){return Ns(this.mapsOptions)}},methods:{handleSearchInput(t){this.search=t},handleMarkerPositionChanged(t){this.currentLocation=t,this.message="",this.$emit("change",this.currentLocation),this.hasGeocoding&&(this.loading=!0,it(this.geocodingProvider,{latLng:t},this.geocodingOptions).then(e=>{e.length>0&&(this.search=e[0].address)}).finally(()=>{this.loading=!1}))},handleSearchSubmitted(){const t=this.search;this.message="",this.loading=!0,it(this.geocodingProvider,{address:t},this.geocodingOptions).then(e=>{e.length>0?(this.currentLocation=e[0].location,this.currentBounds=e[0].bounds,this.$emit("change",this.currentLocation)):this.message=this.lSub("geocode_input.message.no_results").replace(":query",t||"")}).catch(e=>{this.message=`${this.lSub("geocode_input.message.error")}${e?` (${e})`:""}`}).finally(()=>{this.loading=!1})}}};var Pc=function(){var e=this,s=e._self._c;return s("div",{staticClass:"SharpGeolocationEdit",class:e.classes},[e.hasGeocoding?[s("div",{staticClass:"mb-2"},[s("form",{on:{submit:function(a){return a.preventDefault(),e.handleSearchSubmitted.apply(null,arguments)}}},[s("div",{staticClass:"row no-gutters"},[s("div",{staticClass:"col position-relative"},[s("TextField",{staticClass:"SharpGeolocationEdit__input",attrs:{value:e.search,placeholder:e.lSub("geocode_input.placeholder")},on:{input:e.handleSearchInput}}),s("Loading",{staticClass:"SharpGeolocationEdit__loading",attrs:{visible:e.loading,small:""}})],1),s("div",{staticClass:"col-auto pl-2"},[s("Button",{attrs:{outline:""}},[e._v(e._s(e.lSub("search_button")))])],1)])]),e.message?[s("small",[e._v(e._s(e.message))])]:e._e()],2)]:e._e(),s(e.editableMapComponent,{tag:"component",staticClass:"SharpGeolocationEdit__map",class:e.mapClasses,attrs:{"marker-position":e.currentLocation,center:e.center,bounds:e.currentBounds,zoom:e.zoom,"max-bounds":e.maxBounds,"tiles-url":e.tilesUrl},on:{change:e.handleMarkerPositionChanged}})],2)},zc=[],Mc=r(Dc,Pc,zc,!1,null,null,null,null);const jc=Mc.exports,Nc={name:"SharpGeolocation",mixins:[y],inject:{$tab:{default:null}},components:{GeolocationEdit:jc,Button:_,Modal:F},props:{value:Object,readOnly:Boolean,uniqueIdentifier:String,geocoding:Boolean,apiKey:String,boundaries:Object,zoomLevel:{type:Number,default:4},initialPosition:{type:Object,default:()=>({lat:46.1445458,lng:-2.4343779})},displayUnit:{type:String,default:"DD",validator:t=>t==="DMS"||t==="DD"},mapsProvider:{type:Object,default:()=>({name:"gmaps"})},geocodingProvider:{type:Object,default:()=>({name:"gmaps"})}},data(){return{ready:!1,modalVisible:!1,location:this.value}},computed:{isLoading(){return!this.ready},isEmpty(){return!this.value},latLngString(){if(this.displayUnit==="DMS")return{lat:nt(this.value.lat),lng:nt(this.value.lng,!0)};if(this.displayUnit==="DD")return this.value},mapComponent(){return Tc(G(this.mapsProvider))},mapClasses(){return[`SharpGeolocation__map--${G(this.mapsProvider)}`]},tilesUrl(){const t=fe(this.mapsProvider);return Ns(t)},maxBounds(){return this.boundaries?[this.boundaries.sw,this.boundaries.ne]:null},modalTitle(){return this.geocoding?this.l("form.geolocation.modal.title"):this.l("form.geolocation.modal.title-no-geocoding")}},methods:{providerName:G,providerOptions:fe,handleModalSubmitted(){this.$emit("input",this.location)},handleRemoveButtonClicked(){this.$emit("input",null)},handleShowModalButtonClicked(){this.modalVisible=!0},handleEditButtonClicked(){this.modalVisible=!0},handleLocationChanged(t){this.location=t},loadProvider(t){const e=G(t),{apiKey:s}=fe(t);return Rc(e,{apiKey:s})},async init(){await this.loadProvider(this.mapsProvider),this.geocodingProvider&&await this.loadProvider(this.geocodingProvider),this.ready=!0}},created(){this.init()},mounted(){var t;(t=this.$tab)==null||t.$once("active",()=>{Vs()})}};var Vc=function(){var e=this,s=e._self._c;return s("div",{staticClass:"SharpGeolocation"},[e.isLoading?[e._v(" "+e._s(e.l("form.geolocation.loading"))+" ")]:e.isEmpty?[s("Button",{attrs:{text:"",block:""},on:{click:e.handleShowModalButtonClicked}},[e._v(" "+e._s(e.l("form.geolocation.browse_button"))+" ")])]:[s("div",{staticClass:"card card-body form-control"},[s("div",{staticClass:"row"},[s("div",{staticClass:"col-7"},[s(e.mapComponent,{tag:"component",staticClass:"SharpGeolocation__map",class:e.mapClasses,attrs:{"marker-position":e.value,center:e.value,zoom:e.zoomLevel,"max-bounds":e.maxBounds,"tiles-url":e.tilesUrl}})],1),s("div",{staticClass:"col-5 pl-0"},[s("div",{staticClass:"d-flex flex-column justify-content-between h-100"},[s("div",[s("div",[s("small",[e._v("Latitude : "+e._s(e.latLngString.lat))])]),s("div",[s("small",[e._v("Longitude : "+e._s(e.latLngString.lng))])])]),s("div",[s("Button",{staticClass:"remove-button",attrs:{variant:"danger",small:"",outline:"",disabled:e.readOnly},on:{click:e.handleRemoveButtonClicked}},[e._v(" "+e._s(e.l("form.geolocation.remove_button"))+" ")]),s("Button",{attrs:{small:"",outline:"",disabled:e.readOnly},on:{click:e.handleEditButtonClicked}},[e._v(" "+e._s(e.l("form.geolocation.edit_button"))+" ")])],1)])])])])],s("Modal",{attrs:{title:e.modalTitle,visible:e.modalVisible,"no-close-on-backdrop":""},on:{"update:visible":function(a){e.modalVisible=a},ok:e.handleModalSubmitted}},[s("transition",{attrs:{duration:300}},[e.modalVisible?[s("GeolocationEdit",{attrs:{location:e.value,center:e.value||e.initialPosition,zoom:e.zoomLevel,"max-bounds":e.maxBounds,"maps-provider":e.providerName(e.mapsProvider),"maps-options":e.providerOptions(e.mapsProvider),geocoding:e.geocoding,"geocoding-provider":e.providerName(e.geocodingProvider),"geocoding-options":e.providerOptions(e.geocodingProvider)},on:{change:e.handleLocationChanged}})]:e._e()],2)],1)],2)},Uc=[],Hc=r(Nc,Vc,Uc,!1,null,null,null,null);const qc=Hc.exports,Kc={extends:Tt,props:{node:Object},computed:{rendered(){return this.node.type.spec.toDOM(this.node)},tag(){return this.rendered instanceof HTMLElement?this.rendered.tagName:this.rendered[0]},attributes(){return this.rendered instanceof HTMLElement?[...this.rendered.attributes].reduce((t,e)=>({...t,[e.name]:e.value}),{}):this.rendered[1]}},created(){is(this.tag)}};var Gc=function(){var e=this,s=e._self._c;return s(e.tag,e._b({tag:"component",class:e.decorationClasses.value,staticStyle:{"white-space":"normal"},attrs:{"data-node-view-wrapper":""},on:{dragstart:e.onDragStart}},"component",e.attributes,!1),[e._t("default")],2)},Wc=[],Qc=r(Kc,Gc,Wc,!1,null,null,null,null);const je=Qc.exports,Yc={components:{NodeRenderer:je,VueClip:ve},props:{editor:Object,node:Object,selected:Object,extension:Object,getPos:Function,updateAttributes:Function,deleteNode:Function},computed:{value(){const t=this.node.attrs;return t.file?{file:t.file}:{path:t.path,disk:t.disk,name:t.name,filters:t.filters,thumbnail:t.thumbnail,size:t.size,uploaded:t.uploaded}},error(){if(this.node.attrs.notFound)return o("form.editor.errors.unknown_file").replace(":path",this.node.attrs.path??"")},fieldProps(){const t=this.extension.options.fieldProps;return{...t,uniqueIdentifier:`${t.uniqueIdentifier}.upload.${Vr(this)}`}},options(){return Bs({fileFilter:this.fieldProps.fileFilter,maxFileSize:this.fieldProps.maxFileSize})}},methods:{handleThumbnailChanged(t){this.updateAttributes({thumbnail:t})},handleRemoveClicked(){this.deleteNode(),setTimeout(()=>{this.editor.commands.focus()},0)},handleError(t,e){this.deleteNode(),D(`${t}
> ${e.name}`,{isError:!0,title:o("modals.error.title")})},handleUpdated(t){this.updateAttributes({filters:t.filters}),this.node.attrs.file||this.extension.options.onUpdate(t)},handleSuccess(t){this.updateAttributes({...t,file:null,uploaded:!0}),this.extension.options.onSuccess(t)},async init(){if(this.node.attrs.file||this.node.attrs.notFound)return;const t=await this.extension.options.registerFile(this.value);t?this.updateAttributes(t):this.updateAttributes({notFound:!0})}},created(){this.init()},beforeDestroy(){this.node.attrs.file||this.extension.options.onRemove(this.value)}};var Xc=function(){var e=this,s=e._self._c;return s("NodeRenderer",{staticClass:"editor__node",attrs:{node:e.node}},[s("VueClip",e._b({attrs:{value:e.value,root:!1,options:e.options,invalid:!!e.error,"persist-thumbnails":""},on:{thumbnail:e.handleThumbnailChanged,updated:e.handleUpdated,removed:e.handleRemoveClicked,success:e.handleSuccess,error:e.handleError}},"VueClip",e.fieldProps,!1)),e.error?[s("div",{staticClass:"invalid-feedback d-block",staticStyle:{"font-size":".75rem"}},[e._v(" "+e._s(e.error)+" ")])]:e._e()],2)},Jc=[],Zc=r(Yc,Xc,Jc,!1,null,null,null,null);const eu=Zc.exports;function rt(t,{editor:e,pos:s}){[...t].reverse().reduce((a,n)=>a.insertUpload({file:n,pos:s}),e.chain()).run()}function tu(t){return new J({props:{handlePaste(e,s){const a=s.clipboardData||s.originalEvent.clipboardData;if(a.files.length)return s.preventDefault(),rt(a.files,{pos:t.state.selection,editor:t}),!1},handleDOMEvents:{drop(e,s){var n,i;if(!((i=(n=s.dataTransfer)==null?void 0:n.files)!=null&&i.length))return;s.preventDefault();const a=e.posAtCoords({left:s.clientX,top:s.clientY});return rt(s.dataTransfer.files,{pos:a.pos,editor:t}),!0}}}})}const Ne=Z.create({name:"upload",group:"block",atom:!0,isolating:!0,priority:150,addOptions:()=>({fieldProps:{},isReady:()=>!0,getFile:()=>{},registerFile:()=>{},onInput:()=>{},onRemove:()=>{},onUpdate:()=>{}}),addAttributes(){return{disk:{default:null},path:{default:null},name:{default:null},size:{default:null,renderHTML:()=>null},thumbnail:{default:null,renderHTML:()=>null},filters:{parseHTML:t=>({crop:Ss(t.getAttribute("filter-crop")),rotate:ks(t.getAttribute("filter-rotate"))}),renderHTML:()=>null},"filter-crop":{default:null,renderHTML:t=>{var e;return{"filter-crop":Eo((e=t.filters)==null?void 0:e.crop)}}},"filter-rotate":{default:null,renderHTML:t=>{var e;return{"filter-rotate":Io((e=t.filters)==null?void 0:e.rotate)}}},file:{default:null,renderHTML:()=>null},isImage:{default:!1,parseHTML:t=>t.matches("x-sharp-image"),renderHTML:()=>null},uploaded:{default:!1,renderHTML:()=>null},notFound:{default:!1,renderHTML:()=>null}}},parseHTML(){return[{tag:"x-sharp-image"},{tag:"x-sharp-file"}]},renderHTML({node:t,HTMLAttributes:e}){return t.attrs.isImage?["x-sharp-image",e]:["x-sharp-file",e]},addProseMirrorPlugins(){return[tu(this.editor)]},addCommands(){return{insertUpload:({file:t,pos:e})=>({commands:s,tr:a})=>s.insertContentAt(e??a.selection.to,{type:this.name,attrs:{file:t,isImage:t.type.match(/^image\//)}}),newUpload:()=>({editor:t})=>{t.emit("new-upload")}}},addNodeView(){return ee(eu)}}),su={props:{editor:Object},computed:{uploadExtension(){return this.editor.options.extensions.find(t=>t.name===Ne.name)},accept(){var t;return(t=this.uploadExtension)==null?void 0:t.options.fieldProps.fileFilter}},methods:{handleChanged(t){this.editor.chain().focus().insertUpload({file:t.target.files[0]}).run()},handleUploadRequested(){this.$refs.input.value="",setTimeout(()=>{this.$refs.input.click()})}},mounted(){this.editor.on("new-upload",this.handleUploadRequested)}};var au=function(){var e=this,s=e._self._c;return s("input",{ref:"input",staticStyle:{display:"none"},attrs:{type:"file",accept:e.accept},on:{change:e.handleChanged}})},nu=[],iu=r(su,au,nu,!1,null,null,null,null);const ru=iu.exports,lu={bold:"fas fa-bold",italic:"fas fa-italic",strike:"fas fa-strikethrough",link:"fas fa-link",highlight:"fas fa-highlighter",small:"fas fa-font",h1:"fas fa-heading",h2:"fas fa-heading fa-sm",h3:"fas fa-heading fa-xs",quote:"fas fa-quote-right",code:"fas fa-code",ul:"fas fa-list-ul",ol:"fas fa-list-ol",indent:"fas fa-indent","de-indent":"fas fa-outdent",undo:"fas fa-undo",redo:"fas fa-redo",hr:"fas fa-minus",image:"far fa-image",document:"fas fa-paperclip",iframe:"far fa-caret-square-right",table:"fas fa-table",html:"far fa-file-code","code-block":"fas fa-file-code",superscript:"fas fa-superscript"};function f(t){return lu[t]||null}const N={bold:{command:t=>t.chain().focus().toggleBold().run(),isActive:t=>t.isActive("bold"),icon:f("bold"),label:o("form.editor.toolbar.bold.title")},italic:{command:t=>t.chain().focus().toggleItalic().run(),isActive:t=>t.isActive("italic"),icon:f("italic"),label:o("form.editor.toolbar.italic.title")},highlight:{command:t=>t.chain().focus().toggleHighlight().run(),isActive:t=>t.isActive("highlight"),icon:f("highlight"),label:o("form.editor.toolbar.highlight.title")},small:{command:t=>t.chain().focus().toggleSmall().run(),isActive:t=>t.isActive("small"),icon:f("small"),label:o("form.editor.toolbar.small.title")},"heading-1":{command:t=>t.chain().focus().toggleHeading({level:1}).run(),isActive:t=>t.isActive("heading",{level:1}),icon:f("h1"),label:o("form.editor.toolbar.heading_1.title")},"heading-2":{command:t=>t.chain().focus().toggleHeading({level:2}).run(),isActive:t=>t.isActive("heading",{level:2}),icon:f("h2"),label:o("form.editor.toolbar.heading_2.title")},"heading-3":{command:t=>t.chain().focus().toggleHeading({level:3}).run(),isActive:t=>t.isActive("heading",{level:3}),icon:f("h3"),label:o("form.editor.toolbar.heading_3.title")},code:{command:t=>t.chain().focus().toggleCode().run(),isActive:t=>t.isActive("code"),icon:f("code"),label:o("form.editor.toolbar.code.title")},blockquote:{command:t=>t.chain().focus().toggleBlockquote().run(),isActive:t=>t.isActive("blockquote"),icon:f("quote"),label:o("form.editor.toolbar.quote.title")},"bullet-list":{command:t=>t.chain().focus().toggleBulletList().run(),isActive:t=>t.isActive("bulletList"),icon:f("ul"),label:o("form.editor.toolbar.unordered_list.title")},"ordered-list":{command:t=>t.chain().focus().toggleOrderedList().run(),isActive:t=>t.isActive("orderedList"),icon:f("ol"),label:o("form.editor.toolbar.ordered_list.title")},link:{command:(t,{href:e,label:s})=>{const a=t.state.tr.selection;t.isActive("link")?t.chain().focus().extendMarkRange("link").setLink({href:e}).run():a.empty?t.chain().focus().insertContent(`${s||e}`).run():t.chain().focus().setLink({href:e}).run()},isActive:t=>t.isActive("link"),icon:f("link"),label:o("form.editor.toolbar.link.title")},"upload-image":{command:t=>t.chain().focus().newUpload().run(),isActive:t=>t.isActive("upload")||t.isActive("image"),icon:f("image"),label:o("form.editor.toolbar.upload_image.title")},upload:{command:t=>t.chain().focus().newUpload().run(),isActive:t=>t.isActive("upload"),icon:f("document"),label:o("form.editor.toolbar.upload.title")},"horizontal-rule":{command:t=>t.chain().focus().setHorizontalRule().run(),isActive:t=>t.isActive("horizontalRule"),icon:f("hr"),label:o("form.editor.toolbar.horizontal_rule.title")},iframe:{command:t=>t.chain().focus().insertIframe().run(),isActive:t=>t.isActive("iframe"),icon:f("iframe"),label:o("form.editor.toolbar.iframe.title")},table:{command:t=>t.chain().focus().insertTable().run(),isActive:t=>t.isActive("table"),icon:f("table")},html:{command:t=>t.chain().focus().insertHtml().run(),isActive:t=>t.isActive("html"),icon:f("html")},"code-block":{command:t=>t.chain().focus().toggleCodeBlock().run(),isActive:t=>t.isActive("codeBlock"),icon:f("code-block")},superscript:{command:t=>t.chain().focus().toggleSuperscript().run(),isActive:t=>t.isActive("superscript"),icon:f("superscript")},undo:{command:t=>t.chain().undo().run(),icon:f("undo"),label:o("form.editor.toolbar.undo.title")},redo:{command:t=>t.chain().redo().run(),icon:f("redo"),label:o("form.editor.toolbar.redo.title")}},ou={components:{Button:_,Dropdown:$,BDropdownForm:Ra,BFormGroup:Da,TextInput:re},props:{id:String,active:Boolean,editor:Object},data(){return{label:null,href:null,hasSelectedText:!1,inserted:!1,selection:null}},computed:{hasLabelInput(){return!this.active&&!this.hasSelectedText},isEdit(){return this.inserted}},methods:{lang:o,fieldId(t){return`${this.id}-${t}`},hide(t=!0){this.$refs.dropdown.hide(),t&&this.editor.chain().focus().run()},handleDropdownShow(){const t=this.editor.state.selection;if(this.href=null,this.inserted=!1,this.hasSelectedText=!t.empty,this.active){const e=this.editor.getAttributes("link");this.href=e==null?void 0:e.href,this.inserted=!0}this.hasSelectedText&&(this.editor.commands.setLink({href:"#"}),this.selection={from:t.from,to:t.to})},handleDropdownShown(){setTimeout(()=>{this.$refs.input.focus()},0)},handleDropdownHide(){if(!this.inserted&&this.hasSelectedText){const{from:t,to:e}=this.editor.state.selection;this.editor.chain().setTextSelection(this.selection.from,this.selection.to).unsetLink().setTextSelection(t,e).run()}},handleCancelClicked(){this.hide()},handleLinkSubmitted(){if(!this.href){this.hide();return}this.$emit("submit",{href:this.href,label:this.label}),this.inserted=!0},handleRemoveClicked(){this.$emit("remove")}}};var du=function(){var e=this,s=e._self._c;return s("Dropdown",e._b({ref:"dropdown",staticClass:"editor__dropdown editor__dropdown--link",attrs:{variant:"light",active:e.active},on:{show:e.handleDropdownShow,shown:e.handleDropdownShown,hide:e.handleDropdownHide},scopedSlots:e._u([{key:"text",fn:function(){return[e._t("default")]},proxy:!0},{key:"default",fn:function({hide:a}){return[s("b-dropdown-form",{on:{submit:function(n){return n.preventDefault(),e.handleLinkSubmitted.apply(null,arguments)}}},[e.isEdit?[s("button",{staticClass:"btn-close position-absolute end-0 top-0 p-2 fs-8",attrs:{type:"button"},on:{click:e.handleCancelClicked}},[s("span",{staticClass:"visually-hidden"},[e._v(e._s(e.lang("modals.cancel_button","Cancel")))])])]:e._e(),e.hasLabelInput?[s("div",{staticClass:"mb-3"},[s("label",{staticClass:"form-label",attrs:{for:e.fieldId("label")}},[e._v(" "+e._s(e.lang("form.editor.dialogs.link.text_label","Text"))+" ")]),s("TextInput",{attrs:{id:e.fieldId("label")},model:{value:e.label,callback:function(n){e.label=n},expression:"label"}})],1)]:e._e(),s("div",{staticClass:"mb-3"},[s("label",{staticClass:"form-label",attrs:{for:e.fieldId("href")}},[e._v(" "+e._s(e.lang("form.editor.dialogs.link.url_label","URL"))+" ")]),s("TextInput",{ref:"input",attrs:{id:e.fieldId("href"),placeholder:"https://example.org",autocomplete:"off"},model:{value:e.href,callback:function(n){e.href=n},expression:"href"}})],1),s("div",{staticClass:"mt-3"},[s("div",{staticClass:"row g-2 flex-sm-nowrap"},[s("div",{staticClass:"col-auto"},[s("Button",{attrs:{type:"submit",small:"",variant:"primary"}},[e.isEdit?[e._v(" "+e._s(e.lang("form.editor.dialogs.link.update_button","Update"))+" ")]:[e._v(" "+e._s(e.lang("form.editor.dialogs.link.insert_button","Insert link"))+" ")]],2)],1),s("div",{staticClass:"col-auto"},[e.isEdit?[s("Button",{attrs:{type:"button",small:"",variant:"danger",outline:""},on:{click:e.handleRemoveClicked}},[e._v(" "+e._s(e.lang("form.editor.dialogs.link.remove_button","Remove link"))+" ")])]:[s("Button",{attrs:{type:"button",small:"",variant:"light"},on:{click:e.handleCancelClicked}},[e._v(" "+e._s(e.lang("modals.cancel_button","Cancel"))+" ")])]],2)])])],2)]}}],null,!0)},"Dropdown",e.$attrs,!1))},cu=[],uu=r(ou,du,cu,!1,null,null,null,null);const hu=uu.exports,mu={components:{Button:_,Dropdown:$,DropdownItem:x,DropdownSeparator:U},props:{id:String,active:Boolean,editor:Object},data(){return{}},methods:{lang:o,handleInsertClicked(){this.command(()=>{this.editor.chain().focus().insertTable().run()})},command(t){t(),setTimeout(()=>{this.editor.chain().focus().run()},0)}}};var pu=function(){var e=this,s=e._self._c;return s("Dropdown",e._b({ref:"dropdown",staticClass:"editor__dropdown editor__dropdown--table",attrs:{variant:"light",active:e.active},scopedSlots:e._u([{key:"text",fn:function(){return[e._t("default")]},proxy:!0},{key:"default",fn:function({hide:a}){return[s("DropdownItem",{attrs:{disabled:e.editor.isActive("table")},on:{click:e.handleInsertClicked}},[e._v(" "+e._s(e.lang("form.editor.dropdown.table.insert_table","Insert table"))+" ")]),s("DropdownSeparator"),s("DropdownItem",{attrs:{disabled:!e.editor.can().toggleHeaderCell()},on:{click:function(n){e.command(()=>e.editor.chain().toggleHeaderCell().run())}}},[e._v(" "+e._s(e.lang("form.editor.dropdown.table.toggle_header_cell"))+" ")]),s("DropdownSeparator"),s("DropdownItem",{attrs:{disabled:!e.editor.can().addRowBefore()},on:{click:function(n){e.command(()=>e.editor.chain().addRowBefore().run())}}},[e._v(" "+e._s(e.lang("form.editor.dropdown.table.insert_row_above","Insert row above"))+" ")]),s("DropdownItem",{attrs:{disabled:!e.editor.can().addRowAfter()},on:{click:function(n){e.command(()=>e.editor.chain().addRowAfter().run())}}},[e._v(" "+e._s(e.lang("form.editor.dropdown.table.insert_row_below","Insert row below"))+" ")]),s("DropdownItem",{attrs:{disabled:!e.editor.can().deleteRow()},on:{click:function(n){e.command(()=>e.editor.chain().deleteRow().run())}}},[e._v(" "+e._s(e.lang("form.editor.dropdown.table.remove_row","Remove row"))+" ")]),s("DropdownSeparator"),s("DropdownItem",{attrs:{disabled:!e.editor.can().addColumnBefore()},on:{click:function(n){e.command(()=>e.editor.chain().addColumnBefore().run())}}},[e._v(" "+e._s(e.lang("form.editor.dropdown.table.insert_col_left","Insert column to the left"))+" ")]),s("DropdownItem",{attrs:{disabled:!e.editor.can().addColumnAfter()},on:{click:function(n){e.command(()=>e.editor.chain().addColumnAfter().run())}}},[e._v(" "+e._s(e.lang("form.editor.dropdown.table.insert_col_right","Insert column to the right"))+" ")]),s("DropdownItem",{attrs:{disabled:!e.editor.can().deleteColumn()},on:{click:function(n){e.command(()=>e.editor.chain().deleteColumn().run())}}},[e._v(" "+e._s(e.lang("form.editor.dropdown.table.remove_col","Remove column"))+" ")]),s("DropdownSeparator"),s("DropdownItem",{attrs:{disabled:!e.editor.can().deleteTable()},on:{click:function(n){e.command(()=>e.editor.chain().deleteTable().run())}}},[e._v(" "+e._s(e.lang("form.editor.dropdown.table.remove_table","Remove table"))+" ")])]}}],null,!0)},"Dropdown",e.$attrs,!1))},fu=[],_u=r(mu,pu,fu,!1,null,null,null,null);const gu=_u.exports,vu={components:{Dropdown:$,DropdownItem:x},props:{id:String,editor:Object,options:Array},data(){return{}},computed:{disabled(){return this.options.every(t=>t.disabled)}},methods:{runCommand(t){t.command(),setTimeout(()=>{this.editor.chain().focus().run()},0)}}};var bu=function(){var e=this,s=e._self._c;return s("Dropdown",e._b({ref:"dropdown",staticClass:"editor__dropdown",attrs:{variant:"light",small:"",disabled:e.disabled},scopedSlots:e._u([{key:"text",fn:function(){return[e._v(" Options ")]},proxy:!0},{key:"default",fn:function({hide:a}){return[e._l(e.options,function(n){return[s("DropdownItem",{attrs:{disabled:n.disabled},on:{click:function(i){return e.runCommand(n)}}},[e._v(" "+e._s(n.label)+" ")])]})]}}])},"Dropdown",e.$attrs,!1))},yu=[],Cu=r(vu,bu,yu,!1,null,null,null,null);const $u=Cu.exports,wu={components:{Dropdown:$,DropdownItem:x},props:{embeds:Array,editor:Object},methods:{lang:o,handleClicked(t){this.editor.chain().focus().insertEmbed({embedKey:t.key}).run()}}};var Su=function(){var e=this,s=e._self._c;return s("Dropdown",e._b({ref:"dropdown",staticClass:"editor__dropdown",attrs:{variant:"light",small:""},scopedSlots:e._u([{key:"text",fn:function(){return[e._v(" "+e._s(e.lang("form.editor.dropdown.embeds"))+" ")]},proxy:!0},{key:"default",fn:function({hide:a}){return[e._l(e.embeds,function(n){return[s("DropdownItem",{on:{click:function(i){return e.handleClicked(n)}}},[e._v(" "+e._s(n.label)+" ")])]})]}}])},"Dropdown",e.$attrs,!1))},ku=[],xu=r(wu,Su,ku,!1,null,null,null,null);const Fu=xu.exports,Lu={components:{EmbedDropdown:Fu,TableDropdown:gu,LinkDropdown:hu,OptionsDropdown:$u,Button:_,Dropdown:$},props:{id:String,editor:Object,toolbar:Array,disabled:Boolean,options:Array,embeds:Object},computed:{toolbarGroups(){return this.toolbar.reduce((t,e)=>e==="|"?[...t,[]]:(t[t.length-1].push(e),t),[[]])},customEmbeds(){const{upload:t,...e}=this.embeds??{};return Object.values(e)}},methods:{getIcon(t){var e;return(e=N[t])==null?void 0:e.icon},isActive(t){var e,s;return(s=(e=N[t])==null?void 0:e.isActive)==null?void 0:s.call(e,this.editor)},buttonTitle(t){var e;return(e=N[t])==null?void 0:e.label},handleClicked(t){var e;(e=N[t])==null||e.command(this.editor)},handleLinkSubmitted({href:t,label:e}){N.link.command(this.editor,{href:t,label:e})},handleRemoveLinkClicked(){this.editor.chain().focus().unsetLink().run()}}};var Bu=function(){var e=this,s=e._self._c;return s("div",{staticClass:"editor__toolbar"},[s("div",{staticClass:"row row-cols-auto g-2"},[e._l(e.toolbarGroups,function(a){return[s("div",{staticClass:"btn-group"},[e._l(a,function(n){return[n==="link"?[s("LinkDropdown",{attrs:{id:e.id,active:e.isActive(n),title:e.buttonTitle(n),editor:e.editor,disabled:e.disabled},on:{submit:e.handleLinkSubmitted,remove:e.handleRemoveLinkClicked}},[s("i",{class:e.getIcon(n),attrs:{"data-test":"link"}})])]:n==="table"?[s("TableDropdown",{attrs:{active:e.isActive(n),disabled:e.disabled,editor:e.editor}},[s("i",{class:e.getIcon(n),attrs:{"data-test":"table"}})])]:[s("Button",{key:n,attrs:{variant:"light",active:e.isActive(n),disabled:e.disabled,title:e.buttonTitle(n),"data-test":n},on:{click:function(i){return e.handleClicked(n)}}},[s("i",{class:e.getIcon(n)}),n==="small"?[s("i",{staticClass:"fas fa-font fa-xs",staticStyle:{"margin-top":".25em"}})]:e._e()],2)]]})],2)]}),e.options&&e.options.length>0?[s("div",{staticClass:"btn-group"},[s("OptionsDropdown",{attrs:{options:e.options,editor:e.editor}})],1)]:e._e(),e.customEmbeds&&e.customEmbeds.length>0?[s("div",{staticClass:"btn-group"},[s("EmbedDropdown",{attrs:{embeds:e.customEmbeds,editor:e.editor}})],1)]:e._e()],2)])},Ou=[],Eu=r(Lu,Bu,Ou,!1,null,null,null,null);const Iu=Eu.exports,Tu={inheritAttrs:!1,components:{EditorContent:Pa,MenuBar:Iu,UploadFileInput:ru},props:{id:String,editor:Object,uniqueIdentifier:String,toolbar:Array,minHeight:{type:Number,default:300},maxHeight:Number,readOnly:Boolean,toolbarOptions:Array,embeds:Object,showCharacterCount:Boolean,maxLength:Number},data(){return{firstFocus:!0}},watch:{readOnly(){this.editor.setEditable(!this.readOnly)}},computed:{classes(){return{"editor--disabled":this.readOnly,"editor--no-toolbar":!this.toolbar}},style(){var e;const t=[...new Set((e=this.toolbar)==null?void 0:e.filter(s=>s.startsWith("heading")))].length;return{"--min-height":this.minHeight?`${this.minHeight}px`:null,"--max-height":this.maxHeight?`${this.maxHeight}px`:null,"--heading-depth":t}},hasUpload(){var t;return(t=this.editor.options.extensions)==null?void 0:t.find(e=>e.name===Ne.name)},characterCount(){return this.editor.storage.characterCount.characters()}},methods:{lang:o,validate(){return this.maxLength&&!this.showCharacterCount&&this.characterCount>this.maxLength?o("form.text.validation.maxlength").replace(":maxlength",this.maxLength):null},handleFocus(){this.firstFocus=!1},focus(){const t=this.firstFocus?"end":null;this.editor.commands.focus(t)},handleSelectionUpdated(){const{from:t,to:e}=this.editor.state.selection,s=Math.min(t,e),a=this.editor.view.coordsAtPos(s);if(this.toolbar){const n=this.$refs.header.getBoundingClientRect();a.topthis.focus())},directives:{sticky:H}};var Au=function(){var e=this,s=e._self._c;return s("div",{staticClass:"editor",class:e.classes,style:e.style},[s("div",{staticClass:"card"},[e.editor&&e.toolbar?[s("div",{directives:[{name:"sticky",rawName:"v-sticky"}],ref:"header",staticClass:"card-header editor__header"},[s("MenuBar",{attrs:{id:e.uniqueIdentifier,editor:e.editor,toolbar:e.toolbar,disabled:e.readOnly,options:e.toolbarOptions,embeds:e.embeds}})],1)]:e._e(),s("EditorContent",{attrs:{editor:e.editor}}),e.editor&&!e.readOnly?[e.hasUpload?[s("UploadFileInput",{attrs:{editor:e.editor}})]:e._e()]:e._e(),e.editor&&e.showCharacterCount?[s("div",{staticClass:"card-footer fs-8 text-muted bg-white"},[e.maxLength?[s("span",{class:{"text-danger":e.characterCount>e.maxLength}},[e._v(" "+e._s(e.lang("form.editor.character_count").replace(":count",`${e.characterCount} / ${e.maxLength}`))+" ")])]:[e._v(" "+e._s(e.lang("form.editor.character_count").replace(":count",e.characterCount))+" ")]],2)]:e._e()],2)])},Ru=[],Du=r(Tu,Au,Ru,!1,null,null,null,null);const Us=Du.exports,Pu={components:{Modal:F,NodeRenderer:je,Button:_},props:{editor:Object,node:Object,selected:Object,extension:Object,getPos:Function,updateAttributes:Function,deleteNode:Function},data(){return{html:null,previewHtml:null,invalid:!1,modalVisible:this.node.attrs.isNew}},methods:{lang:o,getIframe(t){const e=document.createElement("div");return e.innerHTML=t,e.querySelector("iframe")},handleRemoveClicked(){this.deleteNode()},handleEditClicked(){const t=za(Ma.from(this.node),this.editor.schema);this.html=this.getIframe(t).outerHTML,this.previewHtml=this.html,this.modalVisible=!0,this.invalid=!1},handleChanged(){const t=this.getIframe(this.html);this.invalid=!t,t&&(t.removeAttribute("style"),this.previewHtml=t.outerHTML)},handleInput(){this.handleChanged()},handleModalOk(t){const e=this.getIframe(this.html);e?(this.updateAttributes({...this.node.type.defaultAttrs,...Object.fromEntries([...e.attributes].map(s=>[s.name,s.value])),isNew:!1}),this.modalVisible=!1):t.preventDefault()},handleModalCancel(){this.node.attrs.isNew&&(this.deleteNode(),setTimeout(()=>this.editor.commands.focus()))},handleModalShown(){this.node.attrs.isNew&&this.$refs.textarea.focus()}},created(){this.handleInput=E(this.handleInput,200)}};var zu=function(){var e=this,s=e._self._c;return s("NodeRenderer",{staticClass:"editor__node d-inline-flex",attrs:{node:e.node}},[e.node.attrs.isNew?e._e():[s("div",{staticClass:"card"},[s("div",{staticClass:"card-body"},[s("iframe",e._b({},"iframe",e.node.attrs,!1)),s("div",{staticClass:"mt-3"},[s("div",{staticClass:"row row-cols-auto gx-2"},[s("div",[s("Button",{attrs:{outline:"",small:""},on:{click:e.handleEditClicked}},[e._v(" "+e._s(e.lang("form.upload.edit_button"))+" ")])],1),s("div",[s("Button",{attrs:{variant:"danger",outline:"",small:""},on:{click:e.handleRemoveClicked}},[e._v(" "+e._s(e.lang("form.upload.remove_button"))+" ")])],1)])])])])],s("Modal",{ref:"modal",attrs:{visible:e.modalVisible},on:{"update:visible":function(a){e.modalVisible=a},ok:e.handleModalOk,close:e.handleModalCancel,cancel:e.handleModalCancel,shown:e.handleModalShown},scopedSlots:e._u([{key:"title",fn:function(){return[e.node.attrs.isNew?[e._v(" "+e._s(e.lang("form.editor.dialogs.iframe.insert_title"))+" ")]:[e._v(" "+e._s(e.lang("form.editor.dialogs.iframe.update_title"))+" ")]]},proxy:!0}])},[s("textarea",{directives:[{name:"model",rawName:"v-model",value:e.html,expression:"html"}],ref:"textarea",staticClass:"form-control",class:{"is-invalid":e.invalid},attrs:{placeholder:'',rows:"6"},domProps:{value:e.html},on:{input:[function(a){a.target.composing||(e.html=a.target.value)},e.handleInput],paste:e.handleChanged,focus:function(a){return a.target.select()}}}),e.previewHtml&&!e.invalid?[s("div",{staticClass:"iframe-node__modal-renderer mt-3",domProps:{innerHTML:e._s(e.previewHtml)}})]:e._e()],2)],2)},Mu=[],ju=r(Pu,zu,Mu,!1,null,null,null,null);const Nu=ju.exports,Hs=Z.create({name:"iframe",group:"block",atom:!0,addOptions:()=>({HTMLAttributes:{class:"iframe-wrapper"}}),addAttributes(){return{src:{default:null},frameborder:{default:0},width:{default:null},height:{default:null},allow:{default:null},allowfullscreen:{default:null},isNew:{default:!1,renderHTML:()=>null}}},parseHTML(){return[{tag:"iframe"}]},renderHTML({HTMLAttributes:t}){return["div",this.options.HTMLAttributes,["iframe",t]]},addPasteRules(){return[new ja({find:/(?:^|\s)().*/g,handler:({state:t,range:e,match:s})=>{const a=s[1];setTimeout(()=>{this.editor.commands.insertContentAt(e,a)})}})]},addCommands(){return{insertIframe:()=>({commands:t,tr:e})=>t.insertContentAt(e.selection.to,{type:this.name,attrs:{isNew:!0}})}},addNodeView(){return ee(Nu)}}),Vu=te.create({name:"selected",addProseMirrorPlugins(){return[new J({props:{decorations(t){const e=t.selection,s=[];return t.doc.nodesBetween(e.from,e.to,(a,n)=>{a.isBlock&&s.push(Na.node(n,n+a.nodeSize,{class:"selected"}))}),Va.create(t.doc,s)}}})]}});function Ve(t){const e=`${t}`;return new window.DOMParser().parseFromString(e,"text/html").body}function lt(t,e){const s=At.fromSchema(e),a=Ve(t.outerHTML);return s.parseSlice(a).content}function Uu(t,e){const s=Ve(t);return qs(s,e)}function qs(t,e){return[...t.children].forEach(s=>{var n;if(s.hasAttribute("data-html-content")&&s.children.length===1){(n=lt(s.firstElementChild,e).firstChild)!=null&&n.type.name.startsWith("embed:")&&s.parentElement.replaceChild(s.firstElementChild,s);return}if(!lt(s,e).size){const i=document.createElement("div");i.setAttribute("data-html-content","true"),s.parentElement.replaceChild(i,s),i.appendChild(s)}}),t.innerHTML}const Hu={components:{NodeViewWrapper:Tt,Button:_,Modal:F},props:{node:Object,editor:Object,updateAttributes:Function,selected:Boolean,deleteNode:Function},data(){return{editContent:null,editVisible:this.node.attrs.new}},methods:{lang:o,handleEditClicked(){this.editContent=this.node.attrs.content,this.$refs.modal.show()},handleModalOk(){const t=Ve(this.editContent).innerHTML;this.updateAttributes({content:t,new:!1})},handleModalShown(t){t.target.querySelector("textarea").focus()},handleModalHidden(){this.node.attrs.content||this.deleteNode(),setTimeout(()=>{this.editor.commands.focus()})}}};var qu=function(){var e=this,s=e._self._c;return s("NodeViewWrapper",[s("div",{staticClass:"card editor__node html-node",class:{"shadow border-primary":e.selected}},[s("div",{staticClass:"card-body"},[s("div",{staticClass:"row"},[s("div",{staticClass:"col",staticStyle:{"min-width":"0"}},[s("pre",{staticClass:"mb-0"},[e._v(e._s(e.node.attrs.content))])]),s("div",{staticClass:"col-auto me-n2 my-n2"},[s("Button",{attrs:{small:"",variant:"light"},on:{click:e.handleEditClicked}},[s("i",{staticClass:"fas fa-pencil-alt fs-7"})])],1)])])]),s("Modal",{ref:"modal",attrs:{visible:e.editVisible},on:{"update:visible":function(a){e.editVisible=a},ok:e.handleModalOk,hidden:e.handleModalHidden,shown:e.handleModalShown},scopedSlots:e._u([{key:"title",fn:function(){return[e.node.attrs.new?[e._v(" "+e._s(e.lang("form.editor.dialogs.raw_html.insert_title"))+" ")]:[e._v(" "+e._s(e.lang("form.editor.dialogs.raw_html.edit_title"))+" ")]]},proxy:!0}])},[s("textarea",{directives:[{name:"model",rawName:"v-model",value:e.editContent,expression:"editContent"}],staticClass:"form-control",attrs:{rows:"6"},domProps:{value:e.editContent},on:{input:function(a){a.target.composing||(e.editContent=a.target.value)}}})])],1)},Ku=[],Gu=r(Hu,qu,Ku,!1,null,null,null,null);const Wu=Gu.exports,Qu=Z.create({name:"html-content",group:"block",onBeforeCreate(){this.editor.storage.markdown||this.editor.setOptions({content:Uu(this.editor.options.content,this.editor.schema)})},addStorage(){return{markdown:{parse:{updateDOM(t){qs(t,this.editor.schema)}}}}},addAttributes(){return{content:{default:"",parseHTML(t){return t.innerHTML.trim()}},new:{default:!1}}},renderHTML({node:t}){const e=document.createElement("div");return e.setAttribute("data-html-content","true"),e.innerHTML=t.attrs.content,e},parseHTML(){return[{tag:"[data-html-content]"}]},addCommands(){return{insertHtml:()=>({commands:t})=>t.insertContent({type:this.name,attrs:{new:!0}})}},addNodeView(){return ee(Wu)}});function ot({types:t,node:e}){return Array.isArray(t)&&t.includes(e.type)||e.type===t}const Yu=te.create({name:"trailingNode",addOptions:()=>({node:"paragraph",notAfter:["paragraph"]}),addProseMirrorPlugins(){const t=new Ua(this.name),e=Object.entries(this.editor.schema.nodes).map(([,s])=>s).filter(s=>this.options.notAfter.includes(s.name));return[new J({key:t,appendTransaction:(s,a,n)=>{const{doc:i,tr:l,schema:d}=n,u=t.getState(n),c=i.content.size,m=d.nodes[this.options.node];if(u)return l.insert(c,m.create())},state:{init:(s,a)=>{const n=a.tr.doc.lastChild;return!ot({node:n,types:e})},apply:(s,a)=>{if(!s.docChanged)return a;const n=s.doc.lastChild;return!ot({node:n,types:e})}}})]}}),Xu=te.create({name:"paste",addOptions:()=>({schema:null,inline:!1}),addProseMirrorPlugins(){const t=Ju(this.options.schema,this.editor.schema),e=At.fromSchema(t);return[new J({props:{clipboardParser:e,clipboardTextParser:(s,a)=>{if(this.options.inline){const n=document.createElement("div");return n.innerHTML=s.trim().replace(/(\r\n?|\n)/g,"
"),e.parseSlice(n,{preserveWhitespace:!0,context:a})}return null},transformPastedHTML:s=>this.options.inline?s.replace(/<\/p>\s*]*>/g,"

").replace(/]*>/g,"").replace(/<\/p>/g,""):s}})]}});function Ju(t,e){const s=new Ha(t.spec);return s.nodes=Object.fromEntries(Object.entries(e.nodes).filter(([a])=>!!t.nodes[a])),s.marks=Object.fromEntries(Object.entries(e.marks).filter(([a])=>!!t.marks[a])),s}const Zu=qa.create({name:"small",parseHTML(){return[{tag:"small"}]},renderHTML({HTMLAttributes:t}){return["small",Ka(this.options.HTMLAttributes,t),0]},addCommands(){return{toggleSmall:()=>({commands:t})=>t.toggleMark(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-s":()=>this.editor.commands.toggleSmall()}}});function eh(t){return t.map(e=>e.match(/^heading-(\d)$/)).filter(e=>!!e).map(e=>Number(e[1]))}function S(t,e){return!t||t.some(s=>s===e)}function th({fieldProps:t,uniqueIdentifier:e,fieldConfigIdentifier:s,form:a}){const n=h.observable({registeredFiles:[],created:!1,resolved:null,onResolve:null});n.resolved=new Promise(c=>n.onResolve=c);const i=c=>{this.$emit("input",{...this.value,files:c})},l=c=>Me({entityKey:a.entityKey,instanceId:a.instanceId,files:c,thumbnailWidth:xs,thumbnailHeight:Fs}),d={onBeforeCreate:()=>{i([])},onCreate:E(async()=>{if(n.registeredFiles.length>0){const c=await l(n.registeredFiles);i(c),n.onResolve()}n.created=!0,n.registeredFiles=[]})},u={fieldProps:{...t,uniqueIdentifier:e,fieldConfigIdentifier:s},state:n,registerFile:async c=>n.created?(i([...this.value.files,c]),c):(n.registeredFiles.push(c),await n.resolved,this.value.files.find(m=>W(c,m))),onSuccess:c=>{i([...this.value.files,c])},onRemove:c=>{i(this.value.files.filter(m=>!W(m,c)))},onUpdate:c=>{i(this.value.files.map(m=>W(m,c)?c:m))}};return Ne.extend(d).configure(u)}function sh(t){if(!t)return Xe;const e=eh(t);if(e.length>0)return Xe.configure({levels:e})}function ah(t){if(S(t,"link"))return Rt.configure({openOnClick:!1,HTMLAttributes:{rel:null,target:null}})}function nh(t){return Ya.configure({HTMLAttributes:{class:"editor__image"}})}function ih(t){if(S(t,"horizontal-rule"))return Xa.extend({selectable:!1})}function rh(t){if(S(t,"table"))return[Ja,Za,en,tn]}function lh(t){if(t)return Ga.configure({placeholder:t})}function oh(t){if(S(t,"iframe"))return Hs}function dh(t){if(S(t,"highlight"))return sn}function ch(t){if(S(t,"small"))return Zu}function uh(t){if(S(t,"code-block"))return an}function hh(t){if(S(t,"superscript"))return nn}function mh({toolbar:t,inline:e}){const s=Ks({toolbar:t??[],inline:e}),a=Wa(s);return Xu.configure({schema:a,inline:e})}function ph({inline:t}){return rn.extend({addKeyboardShortcuts(){return t?{Enter:()=>this.editor.commands.setHardBreak(),...this.parent()}:this.parent()}})}function fh({inline:t}){if(!t)return Yu}function _h(){return te.create({addExtensions(){return[Qa.configure()]}})}function gh(t){const e=S(t,"bullet-list"),s=S(t,"ordered-list"),a=ln.configure({blockquote:S(t,"blockquote"),bold:S(t,"bold"),bulletList:e,code:S(t,"code"),codeBlock:!1,document:!0,dropcursor:!0,gapcursor:!0,hardBreak:!1,heading:!1,history:!0,horizontalRule:!1,italic:S(t,"italic"),listItem:e||s,orderedList:s,paragraph:!0,strike:!1,text:!0});return on(a,"addExtensions",a)()}function Ks({toolbar:t,inline:e}){return[gh(t),sh(t),ah(t),nh(),ih(t),rh(t),dh(t),ch(t),oh(t),uh(t),hh(t),ph({inline:e})].flat().filter(a=>!!a)}function vh({placeholder:t,toolbar:e,inline:s}={}){return[Ks({toolbar:e,inline:s}),mh({toolbar:e,inline:s}),lh(t),fh({inline:s}),_h(),Qu,Vu].flat().filter(n=>!!n)}const Gs={injectCSS:!1,enableInputRules:!1,enablePasteRules:[Hs,Rt]},Ue={id:String,value:{type:Object,default:()=>({})},markdown:Boolean,locale:String,localized:Boolean,placeholder:String,toolbar:Array,minHeight:Number,maxHeight:Number,embeds:Object,inline:Boolean,uniqueIdentifier:String,fieldConfigIdentifier:String,showCharacterCount:Boolean,maxLength:Number},Ws={mixins:[Pe],computed:{localizedText(){var t,e,s;return this.isLocalized?((e=(t=this.value)==null?void 0:t.text)==null?void 0:e[this.locale])??null:((s=this.value)==null?void 0:s.text)??null}},methods:{localizedValue(t,e){var s;return{...this.value,text:this.isLocalized?ps({localeObject:(s=this.value)==null?void 0:s.text,locale:e,value:t}):t}}}};function bh(t,{inline:e}){return e?t.replace(/<\/?p>/g,""):t.replace(/(

\s*<\/p>)+$/,"")}function yh(t){const e=document.createElement("div");return e.innerHTML=t,Ch(e),$h(e),e.innerHTML}function Ch(t){Qs(t).forEach(e=>{var s,a,n;if((a=(s=e.previousElementSibling)==null?void 0:s.matches)!=null&&a.call(s,"div")){const i=e.previousElementSibling,l=i.childNodes[i.childNodes.length-1];(n=l==null?void 0:l.matches)!=null&&n.call(l,"br")||(e.innerHTML=`${i.innerHTML}
${e.innerHTML}`,i.remove())}})}function $h(t){Qs(t).forEach(e=>{if(wh(e),e.childNodes.length){const s=document.createElement("p");s.innerHTML=e.innerHTML,t.replaceChild(s,e)}else e.remove()})}function Qs(t){return[...t.children].filter(e=>e.matches("div")&&!e.attributes.length)}function wh(t){[...t.childNodes].reverse().slice(0,2).filter(e=>{var s;return(s=e.matches)==null?void 0:s.call(e,"br")}).forEach(e=>{e.nextSibling||e.remove()})}const Sh={props:{editor:Object,name:String,value:Object,locales:Array,locale:String,createEditor:Function},data(){return{localizedEditors:{}}},methods:{isActive(t){return this.locale===t}},created(){!this.editor&&this.locales&&(this.localizedEditors=Object.fromEntries(this.locales.map(t=>{var e,s;return[t,this.createEditor({content:((s=(e=this.value)==null?void 0:e.text)==null?void 0:s[t])??null})]})))},beforeDestroy(){Object.values(this.localizedEditors).forEach(t=>{t.destroy()})}};var kh=function(){var e=this,s=e._self._c;return s("div",[e.editor?[e._t("default",null,{editor:e.editor}),s("input",{attrs:{type:"hidden",name:e.name},domProps:{value:e.value&&e.value.text}})]:[e._l(e.locales,function(a){return[s("div",{directives:[{name:"show",rawName:"v-show",value:e.isActive(a),expression:"isActive(locale)"}],key:a},[e._t("default",null,{editor:e.localizedEditors[a],locale:a})],2)]})]],2)},xh=[],Fh=r(Sh,kh,xh,!1,null,null,null,null);const Ys=Fh.exports,Lh={mixins:[Ws],components:{SharpEditor:Us,LocalizedEditors:Ys},props:{...Ue,extensions:Array,readOnly:Boolean,uniqueIdentifier:String},data(){return{editor:null}},methods:{handleUpdate({editor:t,locale:e,error:s}){const a=ie(bh(t.getHTML(),{inline:this.inline}));this.$emit("input",this.localizedValue(a,e),{error:s})},createEditor({content:t}){return new Dt({...Gs,extensions:this.extensions,content:yh(t),editable:!this.readOnly})}},created(){this.isLocalized||(this.editor=this.createEditor({content:this.localizedText}))},beforeDestroy(){var t;(t=this.editor)==null||t.destroy()}};var Bh=function(){var e=this,s=e._self._c;return s("div",[s("LocalizedEditors",{attrs:{editor:e.editor,name:e.uniqueIdentifier,value:e.value,locale:e.locale,locales:e.locales,"create-editor":e.createEditor},scopedSlots:e._u([{key:"default",fn:function({editor:a,locale:n}){return[s("SharpEditor",e._b({attrs:{editor:a},on:{update:function(i){return e.handleUpdate({editor:a,locale:n,...i})}}},"SharpEditor",e.$props,!1))]}}])})],1)},Oh=[],Eh=r(Lh,Bh,Oh,!1,null,null,null,null);const Ih=Eh.exports,Th={mixins:[Ws],components:{SharpEditor:Us,LocalizedEditors:Ys},props:{...Ue,extensions:Array,toolbar:Array,nl2br:Boolean,tightListsOnly:Boolean,readOnly:Boolean,uniqueIdentifier:String},data(){return{editor:null}},methods:{handleUpdate({editor:t,locale:e,error:s}){const a=ie(t.storage.markdown.getMarkdown()??"");this.$emit("input",this.localizedValue(a,e),{error:s})},toolbarOptions(t){var a;const e=[],s=(a=this.toolbar)==null?void 0:a.some(n=>n==="bullet-list"||n==="ordered-list");return!this.tightListsOnly&&s&&e.push({command:()=>t.chain().toggleTight().run(),disabled:!t.can().toggleTight(),label:o("form.editor.dropdown.options.toggle_tight_list")}),e},createEditor({content:t}){return new Dt({...Gs,extensions:[...this.extensions,dn.configure({breaks:this.nl2br})],content:t,editable:!this.readOnly})}},created(){this.isLocalized||(this.editor=this.createEditor({content:this.localizedText}))},beforeDestroy(){var t;(t=this.editor)==null||t.destroy()}};var Ah=function(){var e=this,s=e._self._c;return s("div",[s("LocalizedEditors",{attrs:{editor:e.editor,name:e.uniqueIdentifier,value:e.value,locale:e.locale,locales:e.locales,"create-editor":e.createEditor},scopedSlots:e._u([{key:"default",fn:function({editor:a,locale:n}){return[s("SharpEditor",e._b({attrs:{editor:a,"toolbar-options":e.toolbarOptions(a)},on:{update:function(i){return e.handleUpdate({editor:a,locale:n,...i})}}},"SharpEditor",e.$props,!1))]}}])})],1)},Rh=[],Dh=r(Th,Ah,Rh,!1,null,null,null,null);const Ph=Dh.exports;function Xs({entityKey:t,instanceId:e,embedKey:s,embeds:a,form:n=!1}){return v.post(`/embeds/${s}/${t}/${e??""}`,{embeds:a,form:n}).then(i=>i.data.embeds)}function zh({entityKey:t,instanceId:e,embedKey:s,attributes:a}){return v.post(`/embeds/${s}/${t}${e?`/${e}`:""}/form/init`,{...a}).then(n=>n.data)}function Mh({entityKey:t,instanceId:e,embedKey:s,data:a}){return v.post(`/embeds/${s}/${t}${e?`/${e}`:""}/form`,{...a}).then(n=>n.data)}function Js(t){try{return JSON.parse(t)}catch{return t}}function jh(t){return t&&typeof t=="object"?JSON.stringify(t):t}const Nh={components:{TemplateRenderer:z},props:{data:Object,options:Object},computed:{templateData(){const{slot:t,...e}=this.data;return e},templateProps(){return this.options.attributes.filter(t=>t!=="slot")}}};var Vh=function(){var e=this,s=e._self._c;return s("TemplateRenderer",{attrs:{name:"Embed","template-data":e.templateData,"template-props":e.templateProps,template:e.options.template}},[e._t("default",function(){return[e.data.slot?[s("div",{domProps:{innerHTML:e._s(e.data.slot)}})]:e._e()]})],2)},Uh=[],Hh=r(Nh,Vh,Uh,!1,null,null,null,null);const Zs=Hh.exports,qh={components:{Dropdown:$,DropdownItem:x},props:{locale:String,locales:Array},methods:{handleChanged(t){this.$emit("change",t)},isActive(t){return this.locale===t}}};var Kh=function(){var e=this,s=e._self._c;return s("Dropdown",e._b({staticClass:"SharpForm__locale-dropdown",attrs:{"toggle-class":"d-flex align-items-center"},scopedSlots:e._u([{key:"text",fn:function(){return[s("svg",{staticClass:"d-block me-2",attrs:{width:"16",height:"16",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor"}},[s("path",{attrs:{d:"M7.75 2.75a.75.75 0 00-1.5 0v1.258a32.987 32.987 0 00-3.599.278.75.75 0 10.198 1.487A31.545 31.545 0 018.7 5.545 19.381 19.381 0 017 9.56a19.418 19.418 0 01-1.002-2.05.75.75 0 00-1.384.577 20.935 20.935 0 001.492 2.91 19.613 19.613 0 01-3.828 4.154.75.75 0 10.945 1.164A21.116 21.116 0 007 12.331c.095.132.192.262.29.391a.75.75 0 001.194-.91c-.204-.266-.4-.538-.59-.815a20.888 20.888 0 002.333-5.332c.31.031.618.068.924.108a.75.75 0 00.198-1.487 32.832 32.832 0 00-3.599-.278V2.75z"}}),s("path",{attrs:{"fill-rule":"evenodd",d:"M13 8a.75.75 0 01.671.415l4.25 8.5a.75.75 0 11-1.342.67L15.787 16h-5.573l-.793 1.585a.75.75 0 11-1.342-.67l4.25-8.5A.75.75 0 0113 8zm2.037 6.5L13 10.427 10.964 14.5h4.073z","clip-rule":"evenodd"}})]),e.locale?[s("span",{staticClass:"text-uppercase"},[e._v(e._s(e.locale))])]:[e._v("-")]]},proxy:!0}])},"Dropdown",e.$attrs,!1),[e._l(e.locales,function(a){return[s("DropdownItem",{key:a,staticClass:"text-uppercase small",attrs:{active:e.isActive(a)},on:{click:function(n){return e.handleChanged(a)}}},[e._v(" "+e._s(a)+" ")])]})],2)},Gh=[],Wh=r(qh,Kh,Gh,!1,null,null,null,null);const le=Wh.exports,Qh={components:{Button:_},props:{showSubmitButton:Boolean,showDeleteButton:Boolean,showBackButton:Boolean,create:Boolean,uploading:Boolean,loading:Boolean,breadcrumb:Array,showBreadcrumb:Boolean,hasDeleteConfirmation:Boolean},data(){return{stuck:!1}},methods:{lang:o,handleCancelClicked(){this.$emit("cancel")},handleSubmitClicked(){this.$emit("submit")},handleDeleteClicked(){this.$emit("delete")}},directives:{sticky:H}};var Yh=function(){var e=this,s=e._self._c;return s("div",{directives:[{name:"sticky",rawName:"v-sticky"}],staticClass:"position-sticky bottom-0 px-4 py-3 bg-white border-top",class:{shadow:e.stuck},staticStyle:{"z-index":"100",transition:"box-shadow .25s ease-in-out"},on:{"stuck-change":function(a){e.stuck=a.detail}}},[s("div",{staticClass:"row justify-content-end align-items-center gx-3"},[s("div",{staticClass:"col"},[e._t("left")],2),s("div",{staticClass:"col-auto"},[s("Button",{attrs:{outline:""},on:{click:e.handleCancelClicked}},[e.showBackButton?[e._v(" "+e._s(e.lang("action_bar.form.back_button"))+" ")]:[e._v(" "+e._s(e.lang("action_bar.form.cancel_button"))+" ")]],2)],1),e.showSubmitButton?[s("div",{staticClass:"col-auto"},[s("Button",{staticStyle:{"min-width":"6.5em"},attrs:{disabled:e.uploading||e.loading},on:{click:e.handleSubmitClicked}},[e.uploading?[e._v(" "+e._s(e.lang("action_bar.form.submit_button.pending.upload"))+" ")]:e.create?[e._v(" "+e._s(e.lang("action_bar.form.submit_button.create"))+" ")]:[e._v(" "+e._s(e.lang("action_bar.form.submit_button.update"))+" ")]],2)],1)]:e._e()],2)])},Xh=[],Jh=r(Qh,Yh,Xh,!1,null,null,null,null);const Zh=Jh.exports,dt=Symbol("isLocal"),em={name:"SharpForm",extends:ds,mixins:[y,Rs("fields")],components:{BottomBar:Zh,Button:_,TabbedLayout:Al,FieldsLayout:As,Grid:R,Dropdown:$,DropdownItem:x,LocaleSelect:le,GlobalMessage:ae},props:{entityKey:String,instanceId:[Number,String],independant:Boolean,ignoreAuthorizations:Boolean,noTabs:Boolean,showAlert:{type:Boolean,default:!0},form:Object},provide(){return{$form:this}},data(){return{ready:!1,fields:null,authorizations:null,breadcrumb:null,config:null,errors:{},fieldLocale:{},locales:null,loading:!1,fieldVisible:{},uploadingFields:{},curFieldsetId:0}},watch:{form(){this.independant&&this.init()}},computed:{apiPath(){let t=`form/${this.entityKey}`;return this.instanceId&&(t+=`/${this.instanceId}`),t},localized(){return Array.isArray(this.locales)&&!!this.locales.length},isSingle(){return this.config?this.config.isSingle:!1},isCreation(){return!this.isSingle&&!this.instanceId},isReadOnly(){return this.ignoreAuthorizations?!1:this.isCreation?!this.authorizations.create:!this.authorizations.update},synchronous(){return this.independant},hasErrors(){return Object.values(this.errors).some(t=>!!t&&!t[dt])},baseEntityKey(){return this.entityKey.split(":")[0]},downloadLinkBase(){return`/download/${this.entityKey}/${this.instanceId}`},transformedFields(){return ys(this.fields,this.data)},currentLocale(){var s;const t=Object.values(this.fieldLocale).map(a=>Array.isArray(a)?a.map(n=>Object.values(n)):a).flat(2),e=[...new Set(t)];return e.length?e.length===1?e[0]:null:(s=this.locales)==null?void 0:s[0]},isUploading(){return Object.values(this.uploadingFields).some(t=>!!t)},actionBarProps(){var t,e;return this.ready?{showSubmitButton:this.isCreation?!!this.authorizations.create:!!this.authorizations.update,showBackButton:this.isReadOnly,create:!!this.isCreation,uploading:this.isUploading,loading:this.loading,breadcrumb:(t=this.breadcrumb)==null?void 0:t.items,showBreadcrumb:!!((e=this.breadcrumb)!=null&&e.visible),locales:this.locales,currentLocale:this.currentLocale}:null},actionBarListeners(){return{submit:this.handleSubmitClicked,cancel:this.handleCancelClicked,"locale-change":this.handleLocaleChanged}},mergedErrorIdentifier(){return null},mergedConfigIdentifier(){return null}},methods:{async updateData(t,e,{forced:s}={}){this.data={...this.data,...s?null:vs(this.fields,t,a=>this.fieldLocalizedValue(a.key,null)),[t]:this.fieldLocalizedValue(t,e)}},updateVisibility(t,e){this.$set(this.fieldVisible,t,e)},updateLocale(t,e){this.$set(this.fieldLocale,t,e)},updateFieldError(t,e){e&&(e[dt]=!0),this.errors={...this.errors,[t]:e}},handleLocaleChanged(t){this.fieldLocale=this.defaultFieldLocaleMap({fields:this.fields,locales:this.locales},t)},mount({fields:t,layout:e,data:s,authorizations:a,locales:n,breadcrumb:i,config:l}){this.fields=t,this.data=s??{},this.layout=this.patchLayout(e),this.locales=n,this.authorizations=a??{},this.breadcrumb=i,this.config=l??{},t&&(this.fieldVisible=Object.keys(this.fields).reduce((d,u)=>(d[u]=!0,d),{}),this.fieldLocale=this.defaultFieldLocaleMap({fields:t,locales:n})),this.validate()},validate(){const t=Object.keys(this.fieldLocale),e=s=>D(s,{title:"Data error",isError:!0});t.length>0&&!this.locales.length&&e("Some fields are localized but the form hasn't any locales configured")},handleError(t){var e;return((e=t.response)==null?void 0:e.status)===422&&(this.errors=t.response.data.errors||{}),Promise.reject(t)},patchLayout(t){if(!t)return null;this.noTabs&&(t={tabs:[{columns:[{fields:t}]}]});let e=0;const s=a=>{a.legend?a.id=`${e++}#${a.legend}`:a.fields&&a.fields.forEach(n=>{n.forEach(s)})};return t.tabs.forEach(a=>a.columns.forEach(s)),t},serialize(t=this.data){return Object.fromEntries(Object.entries(t??{}).filter(([e])=>{var s;return((s=this.fields[e])==null?void 0:s.type)!=="html"}))},setLoading(t){this.$emit("loading",t),this.loading=t},get(){return this.axiosInstance.get(this.apiPath,{params:this.apiParams}).then(t=>(this.mount(t.data),this.$emit("update:form",t.data),t)).catch(t=>(this.$emit("error",t),Promise.reject(t)))},async init(){this.independant?(this.mount(this.form),this.ready=!0):this.entityKey?(await this.get(),this.ready=!0):b("no entity key provided")},redirectForResponse(t,{replace:e}={}){const s=t.data.redirectUrl;e?location.replace(s):location.href=s},redirectToParentPage(){location.href=es(this.breadcrumb.items)},async submit({postFn:t}={}){if(this.isUploading)return;this.setLoading(!0);const e=this.serialize(),a=await(()=>t?t(e):this.post(this.apiPath,e))().catch(this.handleError).finally(()=>{this.setLoading(!1)});if(this.independant)return this.$emit("submit",a),a;this.setLoading(!0),this.$store.dispatch("setLoading",!0),this.redirectForResponse(a)},handleSubmitClicked(){this.submit().catch(()=>{})},handleCancelClicked(){this.redirectToParentPage()},setUploading(t,e){this.uploadingFields={...this.uploadingFields,[t]:e}},hasUploadingFields(t){return Object.entries(this.uploadingFields).some(([e,s])=>e.startsWith(`${t}.`)&&s)}},created(){this.init()}};var tm=function(){var e=this,s=e._self._c;return s("div",{staticClass:"SharpForm"},[e._t("action-bar",null,{props:e.actionBarProps,listeners:e.actionBarListeners}),e.ready?[e.config.globalMessage?[s("GlobalMessage",{attrs:{options:e.config.globalMessage,data:e.data,fields:e.fields}})]:e._e(),e.hasErrors&&e.showAlert?[s("div",{staticClass:"alert alert-danger SharpForm__alert",attrs:{role:"alert"}},[s("div",{staticClass:"fw-bold"},[e._v(e._s(e.l("form.validation_error.title")))]),s("div",[e._v(e._s(e.l("form.validation_error.description")))])])]:e._e(),s("TabbedLayout",{ref:"tabbedLayout",attrs:{layout:e.layout,"data-popover-boundary":""},scopedSlots:e._u([{key:"default",fn:function({tab:a}){return[s("Grid",{ref:"columnsGrid",attrs:{rows:[a.columns]},scopedSlots:e._u([{key:"default",fn:function({itemLayout:n}){return[s("FieldsLayout",{ref:"fieldLayout",attrs:{layout:n.fields,visible:e.fieldVisible},scopedSlots:e._u([{key:"default",fn:function({fieldLayout:i}){return[s("FieldDisplay",{ref:"field",attrs:{"field-key":i.key,"context-fields":e.transformedFields,"context-data":e.data,"field-layout":i,locale:e.fieldLocale[i.key],"read-only":e.isReadOnly,"error-identifier":i.key,"config-identifier":i.key,root:"","update-data":e.updateData,"update-visibility":e.updateVisibility},on:{"locale-change":e.updateLocale}})]}}],null,!0)})]}}],null,!0)})]}}],null,!1,477242088)}),e.independant?e._e():[s("BottomBar",e._g(e._b({},"BottomBar",e.actionBarProps,!1),e.actionBarListeners))]]:e._e()],2)},sm=[],am=r(em,tm,sm,!1,null,null,null,null);const He=am.exports,nm={components:{Modal:F,Form:He},inject:{$form:{default:null}},props:{visible:Boolean,form:Object,post:Function},data(){return{loading:!1}},methods:{handleSubmitButtonClicked(t){t.preventDefault(),this.loading=!0,this.$refs.form.submit({postFn:this.post}).finally(()=>{this.loading=!1})},handleCancelClicked(){this.$emit("cancel")}}};var im=function(){var e=this,s=e._self._c;return s("Modal",e._g({attrs:{"modal-class":"form-modal",visible:e.visible,loading:e.loading},on:{ok:e.handleSubmitButtonClicked,close:e.handleCancelClicked,cancel:e.handleCancelClicked},scopedSlots:e._u([{key:"title",fn:function(){return[e._t("title")]},proxy:!0}],null,!0)},e.$listeners),[s("transition",[e.visible?[s("Form",{ref:"form",staticStyle:{"transition-duration":"300ms"},attrs:{"entity-key":e.$form.entityKey,"instance-id":e.$form.instanceId,form:e.form,"show-alert":!1,independant:"","ignore-authorizations":"","no-tabs":""}})]:e._e()],2)],1)},rm=[],lm=r(nm,im,rm,!1,null,null,null,null);const om=lm.exports,dm={components:{EmbedFormModal:om,NodeRenderer:je,EmbedRenderer:Zs,Button:_},inject:["$form"],props:{editor:Object,node:Object,selected:Object,extension:Object,getPos:Function,updateAttributes:Function,deleteNode:Function},data(){return{id:null,modalVisible:!1,modalForm:null}},computed:{embedData(){return{...this.node.attrs.attributes,...this.node.attrs.additionalData}},hasForm(){return this.extension.options.attributes.length>0}},methods:{lang:o,handleEditClicked(){this.showForm()},handleCancelClicked(){this.node.attrs.isNew&&(this.deleteNode(),setTimeout(()=>{this.editor.commands.focus()},0))},handleRemoveClicked(){this.deleteNode()},async showForm(){this.modalForm=await this.extension.options.resolveForm(this.embedData),this.modalVisible=!0},async postForm(t){const e=await this.extension.options.postForm(t);this.updateAttributes({attributes:e,additionalData:e,isNew:!1}),this.modalVisible=!1},async init(){if(this.node.attrs.isNew){this.hasForm?await this.showForm():(await this.$nextTick(),this.updateAttributes({isNew:!1}),this.editor.commands.focus());return}if(this.hasForm){const t=await this.extension.options.getAdditionalData(this.node.attrs.attributes);t&&this.updateAttributes({additionalData:t})}}},created(){this.init()}};var cm=function(){var e=this,s=e._self._c;return s("NodeRenderer",{staticClass:"editor__node embed-node",attrs:{node:e.node}},[e.node.attrs.isNew?e._e():[s("div",{staticClass:"card"},[s("div",{staticClass:"card-body"},[s("EmbedRenderer",{staticClass:"embed-node__template",attrs:{data:e.embedData,options:e.extension.options}}),s("div",{staticClass:"mt-3"},[s("div",{staticClass:"row row-cols-auto gx-2"},[e.hasForm?[s("div",[s("Button",{attrs:{outline:"",small:""},on:{click:e.handleEditClicked}},[e._v(" "+e._s(e.lang("form.upload.edit_button"))+" ")])],1)]:e._e(),s("div",[s("Button",{attrs:{variant:"danger",outline:"",small:""},on:{click:e.handleRemoveClicked}},[e._v(" "+e._s(e.lang("form.upload.remove_button"))+" ")])],1)],2)])],1)])],s("EmbedFormModal",{attrs:{visible:e.modalVisible,form:e.modalForm,post:e.postForm},on:{"update:visible":function(a){e.modalVisible=a},cancel:e.handleCancelClicked},scopedSlots:e._u([{key:"title",fn:function(){return[e._v(" "+e._s(e.extension.options.label)+" ")]},proxy:!0}])})],2)},um=[],hm=r(dm,cm,um,!1,null,null,null,null);const mm=hm.exports;function ct(t){return t.replace(/[A-Z]+(?![a-z])|[A-Z]/g,(e,s)=>(s?"-":"")+e.toLowerCase())}const pm=Z.create({name:"embed",group:"block",atom:!0,isolating:!0,priority:150,addOptions:()=>({label:null,tag:null,attributes:[],template:null}),addAttributes(){return{attributes:{default:{},parseHTML:t=>{const e=this.options.attributes.reduce((s,a)=>({...s,[a]:Js(t.getAttribute(ct(a)))}),{});return this.options.attributes.includes("slot")&&(e.slot=t.innerHTML),e},renderHTML:t=>this.options.attributes.filter(e=>t.attributes[e]!=null).reduce((e,s)=>({...e,[ct(s)]:jh(t.attributes[s])}),{})},additionalData:{default:null,renderHTML:()=>null},isNew:{default:!1,renderHTML:()=>null}}},parseHTML(){return[{tag:this.options.tag}]},renderHTML({node:t,HTMLAttributes:e}){const s=document.createElement(this.options.tag);return Object.entries(e).filter(([a])=>a!=="slot").forEach(([a,n])=>{s.setAttribute(a,n)}),e.slot&&(s.innerHTML=e.slot),s},addCommands(){return{insertEmbed:({embedKey:t})=>({commands:e,tr:s})=>e.insertContentAt(s.selection.to,{type:`embed:${t}`,attrs:{isNew:!0}})}},addNodeView(){return ee(mm)}});function fm({embedKey:t,embedOptions:e,form:s}){const a=h.observable({embeds:[],currentIndex:0,created:!1,resolved:null,onResolve:null});a.resolved=new Promise(d=>a.onResolve=d);const n=d=>Xs({entityKey:s.entityKey,instanceId:s.instanceId,embedKey:t,embeds:d,form:!0}),i={name:`embed:${t}`,onCreate:E(async()=>{a.currentIndex>0&&(a.embeds=await n(a.embeds),a.onResolve()),a.created=!0})},l={label:e.label,tag:e.tag,attributes:e.attributes??[],template:e.template,state:a,isReady:()=>a.created,getEmbed:d=>a.embeds[d],async getAdditionalData(d){if(a.created)return null;const u=a.currentIndex++;return a.embeds.push(d),await a.resolved,a.embeds[u]},onUpdate:(d,u)=>{a.embeds={...a.embeds,[d]:u}},onRemove:d=>{const{[d]:u,...c}=a.embeds;a.embeds=c},resolveForm(d){return zh({entityKey:s.entityKey,instanceId:s.instanceId,embedKey:t,attributes:d})},postForm(d){return Mh({entityKey:s.entityKey,instanceId:s.instanceId,embedKey:t,data:d})}};return pm.extend(i).configure(l)}const _m={components:{HtmlContentEditor:Ih,MarkdownContentEditor:Ph},inject:["$form"],props:{...Ue},computed:{extensions(){return[...vh({placeholder:this.placeholder,toolbar:this.toolbar,inline:this.inline}),...this.embedExtensions,this.uploadExtension].filter(e=>!!e)},uploadExtension(){var t;return(t=this.embeds)!=null&&t.upload?th.call(this,{fieldProps:this.embeds.upload,uniqueIdentifier:this.uniqueIdentifier,fieldConfigIdentifier:this.fieldConfigIdentifier,form:this.$form}):null},embedExtensions(){const{upload:t,...e}=this.embeds??{};return Object.entries(e).map(([s,a])=>fm({embedKey:s,embedOptions:a,form:this.$form}))}}};var gm=function(){var e=this,s=e._self._c;return s("div",[e.markdown?[s("MarkdownContentEditor",e._g(e._b({attrs:{extensions:e.extensions}},"MarkdownContentEditor",[e.$props,e.$attrs],!1),e.$listeners))]:[s("HtmlContentEditor",e._g(e._b({attrs:{extensions:e.extensions}},"HtmlContentEditor",[e.$props,e.$attrs],!1),e.$listeners))]],2)},vm=[],bm=r(_m,gm,vm,!1,null,null,null,null);const ym=bm.exports,Cm={components:{DatePicker:Is,ClearButton:se},props:{value:{default:()=>({start:null,end:null})},displayFormat:{type:String,default:"DD/MM/YYYY"},startPlaceholder:{type:String,default:()=>o("form.daterange.start_placeholder")},endPlaceholder:{type:String,default:()=>o("form.daterange.end_placeholder")},clearable:{type:Boolean,default:!0},readOnly:Boolean,mondayFirst:Boolean,small:Boolean,updateOnInput:{type:Boolean,default:!0}},computed:{hasClearButton(){var t,e;return this.clearable&&!!((t=this.value)!=null&&t.start)&&!!((e=this.value)!=null&&e.end)}},methods:{handleChanged(t){var e,s,a,n,i,l;((e=t==null?void 0:t.start)==null?void 0:e.toDateString())===((a=(s=this.oldValue)==null?void 0:s.start)==null?void 0:a.toDateString())&&((n=t==null?void 0:t.end)==null?void 0:n.toDateString())===((l=(i=this.oldValue)==null?void 0:i.end)==null?void 0:l.toDateString())||(this.$emit("input",t),this.oldValue=t)},handleClearClicked(){this.$emit("input",null)},focus(){setTimeout(()=>{this.$el.querySelector(".form-control").focus()})}}};var $m=function(){var e=this,s=e._self._c;return s("DatePicker",{staticClass:"SharpDateRange position-relative",attrs:{value:e.value,"monday-first":e.mondayFirst,"display-format":e.displayFormat,columns:e.$screens({default:1,lg:2}),"update-on-input":e.updateOnInput,"is-range":""},on:{input:e.handleChanged},scopedSlots:e._u([{key:"default",fn:function({inputValue:a,inputEvents:n}){return[s("div",{staticClass:"input-group",class:{"input-group-sm":e.small}},[e.small&&!e.value?[s("div",e._g({staticClass:"form-select form-control",attrs:{tabindex:"0"}},n.start),[s("span")])]:[s("input",e._g(e._b({staticClass:"form-control border-end-0",attrs:{placeholder:e.startPlaceholder,disabled:e.readOnly,autocomplete:"off"},domProps:{value:a.start}},"input",e.$props,!1),n.start)),s("div",{staticClass:"form-control SharpDateRange__dash px-0 border-start-0 border-end-0"},[e._v(" - ")]),s("input",e._g(e._b({staticClass:"form-control border-start-0",class:{clearable:e.hasClearButton},attrs:{placeholder:e.endPlaceholder,disabled:e.readOnly,autocomplete:"off"},domProps:{value:a.end}},"input",e.$props,!1),n.end))]],2),e.hasClearButton?[s("ClearButton",{on:{click:e.handleClearClicked}})]:e._e()]}}])})},wm=[],Sm=r(Cm,$m,wm,!1,null,null,null,null);const ea=Sm.exports,km={autocomplete:Cs,text:re,textarea:Co,editor:ym,number:Oo,upload:Xo,tags:nd,date:md,check:Ts,list:Dd,select:Ps,html:rc,geolocation:qc,daterange:ea},xm={name:"SharpField",inheritAttrs:!1,provide(){return{$field:this}},props:{fieldKey:String,fieldType:String,fieldProps:Object,fieldLayout:Object,value:[String,Number,Boolean,Object,Array,Date],locale:[Array,String],uniqueIdentifier:String,fieldConfigIdentifier:String,updateData:Function,readOnly:Boolean,root:Boolean},computed:{isCustom(){return ss(this.fieldType)},component(){return this.isCustom?as(this.fieldType):km[this.fieldType]}},render(t){if(!this.component)return this.custom||b(`Unknown field type '${this.fieldType}'`,this.fieldProps),null;let{key:e,...s}=this.fieldProps;return t(this.component,{class:"SharpField",props:{fieldKey:this.fieldKey,fieldLayout:this.fieldLayout,value:this.value,locale:this.locale,uniqueIdentifier:this.uniqueIdentifier,fieldConfigIdentifier:this.fieldConfigIdentifier,root:this.root},attrs:{id:this.$attrs.id,dynamicAttributes:s.dynamicAttributes,...s},on:{...this.$listeners,input:(a,n={})=>{if(this.fieldProps.readOnly&&!n.force){Dr(`SharpField '${this.fieldKey}', can't update because is readOnly`);return}this.updateData(this.fieldKey,a,{forced:n.force}),this.$emit("input",a,{force:n.force,error:n.error})}}})}},Fm=null,Lm=null;var Bm=r(xm,Fm,Lm,!1,null,null,null,null);const ut=Bm.exports,Om={props:{locales:{type:Array,required:!0},currentLocale:{type:String,required:!0},fieldValue:[String,Number,Boolean,Object,Array],isLocaleObject:Boolean,errors:Array},methods:{isActive(t){return this.currentLocale===t},isEmpty(t){const e=this.isLocaleObject?(this.fieldValue||{})[t]:this.fieldValue;return Array.isArray(e)?!e.length:!e},hasError(t){var e;return(e=this.errors)==null?void 0:e.includes(t)},handleButtonClicked(t){this.$emit("change",t)}}};var Em=function(){var e=this,s=e._self._c;return s("div",{staticClass:"SharpFieldLocaleSelect"},[s("div",{staticClass:"row gx-1"},[e._l(e.locales,function(a){return[s("div",{staticClass:"col-auto d-flex"},[s("button",{staticClass:"SharpFieldLocaleSelect__btn ml-2",class:{"SharpFieldLocaleSelect__btn--active":e.isActive(a),"SharpFieldLocaleSelect__btn--empty":e.isEmpty(a),"SharpFieldLocaleSelect__btn--error":e.hasError(a)},on:{click:function(n){return e.handleButtonClicked(a)}}},[e._v(" "+e._s(a)+" ")])])]})],2)])},Im=[],Tm=r(Om,Em,Im,!1,null,null,null,null);const Am=Tm.exports,Rm={name:"SharpFieldContainer",mixins:[Be,os],components:{Field:ut,FieldLocaleSelect:Am},inject:{$form:{},$tab:{default:null}},props:{...ut.props,label:String,helpMessage:String,originalValue:[String,Number,Boolean,Object,Array,Date],errorIdentifier:[String,Number],localizedErrorIdentifier:String},data(){return{state:"default",stateMessage:""}},watch:{"$form.errors"(t){this.updateError(t)},locale(){this.updateError(this.$form.errors)}},computed:{fieldId(){return`form-field_${this.mergedErrorIdentifier}`},formGroupClasses(){return[`SharpForm__form-item--type-${this.fieldType}`,{"SharpForm__form-item--danger":this.hasError,"SharpForm__form-item--success":this.state==="ok","SharpForm__form-item--has-label":this.showLabel,"SharpForm__form-item--no-label":!this.showLabel}]},extraStyle(){return this.fieldProps.extraStyle},hasError(){return this.state==="error"||this.errorsLocales.length>0},showLabel(){return!!this.label},resolvedOriginalValue(){return Zl({field:this.fieldProps,value:this.originalValue})},isLocaleObject(){return ze(this.fieldProps)||this.fieldProps.type==="editor"},mergedErrorIdentifier(){return this.getMergedIdentifier("mergedErrorIdentifier",this.errorIdentifier)},mergedLocalizedErrorIdentifier(){return this.localizedErrorIdentifier?this.getMergedIdentifier("mergedErrorIdentifier",this.localizedErrorIdentifier):null},errorsLocales(){return Object.entries(this.$form.errors).filter(([t,e])=>!!e).map(([t])=>{const e=t.match(new RegExp(`^${this.mergedErrorIdentifier}\\.([^.]+)$`));return e==null?void 0:e[1]}).filter(t=>{var e;return t&&((e=this.$form.locales)==null?void 0:e.includes(t))})}},methods:{updateError(t){const e=t[this.mergedLocalizedErrorIdentifier]??t[this.mergedErrorIdentifier];if(Array.isArray(e))this.setError(e[0]);else if(this.fieldProps.localized&&this.errorsLocales.length>0){const s=this.errorsLocales.join(", ").toUpperCase(),a=o("form.validation_error.localized").replace(":locales",s);this.setError(a)}else e==null?this.clear(!1):b(`FieldContainer : Not processable error "${this.mergedErrorIdentifier}" : `,e)},setError(t){var e;this.state="error",this.stateMessage=t,(e=this.$tab)==null||e.$emit("error",this.mergedErrorIdentifier)},setOk(){this.state="ok",this.stateMessage=""},clear(t=!0){this.state="default",this.stateMessage="",t&&(this.emitClear(this.mergedErrorIdentifier),this.mergedLocalizedErrorIdentifier&&this.emitClear(this.mergedLocalizedErrorIdentifier))},emitClear(t){var e;(e=this.$tab)==null||e.$emit("clear",t),this.$form.updateFieldError(t,null)},triggerFocus(){this.$set(this.fieldProps,"focused",!0)},handleBlur(){this.$set(this.fieldProps,"focused",!1)},handleValueChanged(t,{error:e}={}){e?this.$form.updateFieldError(this.mergedLocalizedErrorIdentifier??this.mergedErrorIdentifier,[e]):this.state==="error"&&this.clear()},handleLocaleChanged(t){this.$emit("locale-change",this.fieldKey,t)}},directives:{sticky:H}};var Dm=function(){var e=this,s=e._self._c;return s("div",{staticClass:"SharpFieldContainer SharpForm__form-item",class:e.formGroupClasses,style:e.extraStyle},[s("div",{directives:[{name:"sticky",rawName:"v-sticky",value:e.fieldType==="list",expression:"fieldType === 'list'"}],staticClass:"SharpForm__field-header"},[s("div",{staticClass:"row align-items-end"},[s("div",{staticClass:"col d-flex"},[e.showLabel?[s("label",{staticClass:"SharpForm__label form-label",attrs:{for:e.fieldId}},[e._v(" "+e._s(e.label)+" ")])]:[s("div",{staticClass:"SharpForm__label SharpForm__label--placeholder form-label"})]],2),e.fieldProps.localized?[s("div",{staticClass:"col-auto"},[s("FieldLocaleSelect",{attrs:{locales:e.$form.locales,"current-locale":e.locale,"field-value":e.resolvedOriginalValue,"is-locale-object":e.isLocaleObject,errors:e.errorsLocales},on:{change:e.handleLocaleChanged}})],1)]:e._e()],2)]),s("div",{staticClass:"SharpForm__field-content"},[s("Field",e._b({ref:"field",attrs:{id:e.fieldId,"unique-identifier":e.mergedErrorIdentifier,"field-config-identifier":e.mergedConfigIdentifier},on:{error:e.setError,ok:e.setOk,clear:e.clear,blur:e.handleBlur,"locale-change":e.handleLocaleChanged,input:e.handleValueChanged}},"Field",e.$props,!1))],1),e.stateMessage?[s("div",{staticClass:"invalid-feedback d-block"},[e._v(e._s(e.stateMessage))])]:e._e(),e.helpMessage?[s("div",{staticClass:"SharpForm__help-message form-text"},[e._v(e._s(e.helpMessage))])]:e._e()],2)},Pm=[],zm=r(Rm,Dm,Pm,!1,null,null,null,null);const Mm=zm.exports,jm={computeSelectCondition({condValues:t,fieldValue:e,isSingleSelect:s}){if(Array.isArray(t))return s?t.some(a=>a==e):t.some(a=>e.some(n=>n==a));if(t[0]==="!"){let a=t.substring(1);return s?a!=e:!e.some(n=>n==a)}return s?t==e:e.some(a=>a==t)}};function Nm(t,e,s){let a=!0,{operator:n}=s;if(n!=="or"&&n!=="and")return b(`Conditional display : unknown operator '${n}'`,s),!0;for(let i of s.fields){i.key in t||(b(`Conditional display : can't find a field with key '${s.key}' in 'fields'`,s),a=!0);let l=t[i.key],d=e[i.key];if(l.type==="autocomplete"||l.type==="select"||l.type==="tags"?a=jm.computeSelectCondition({condValues:i.values,fieldValue:l.type==="autocomplete"?d&&d.id:d,isSingleSelect:l.type==="select"&&!l.multiple||l.type==="autocomplete"}):l.type==="check"?typeof i.values!="boolean"?(b(`Conditional display : 'values' must be a boolean for a 'check' field ('${i.key}')`,s,l),a=!0):a=!!d===i.values:(b(`Conditional display : unprocessable field type '${l.type}'`,l),a=!0),n==="and"&&!a)return!1;if(n==="or"&&a)return!0}return a}function Vm(t,e,s){return s?Nm(t,e,s):!0}const Um=(t,e,s,a)=>t.localized&&e.localized&&s&&ze(e)?typeof s!="object"||cn.isArray(s)?(b(`Localized field '${e.key}' value must be a object, given :`,JSON.stringify(s)),s):s[a]:s,Hm={name:"SharpFieldDisplay",functional:!0,inject:["$form"],render(t,{props:e,injections:s,data:a}){let{fieldKey:n,contextFields:i,contextData:l,errorIdentifier:d,updateVisibility:u,readOnly:c,...m}=e,{$form:g}=s,p=i[n],C=l[n];if(!(n in i))return b(`Field display ('layout') : Can't find a field with key '${n}' in 'fields'`,i),t(Le,{props:{name:n}});let k=Vm(i,l,p.conditionalDisplay);return u&&u(n,k),k?t(Mm,{...a,attrs:{fieldKey:n,fieldProps:{...p,readOnly:c||p.readOnly},fieldType:p.type,value:Um(g,p,C,e.locale),originalValue:C,label:p.label,helpMessage:p.helpMessage,errorIdentifier:d,localizedErrorIdentifier:p.localized?`${d}.${e.locale}`:null,...m}}):null}},qm={name:"SharpActionBarForm",mixins:[y],components:{LocaleSelect:le,Breadcrumb:xe,Dropdown:$,DropdownItem:x},props:{showSubmitButton:Boolean,showBackButton:Boolean,create:Boolean,uploading:Boolean,loading:Boolean,breadcrumb:Array,showBreadcrumb:Boolean,currentLocale:String,locales:Array},methods:{handleLocaleChanged(t){this.$emit("locale-change",t)}}};var Km=function(){var e=this,s=e._self._c;return s("div",{staticClass:"action-bar mt-4 mb-3"},[s("div",{staticClass:"row align-items-center gx-3"},[s("div",{staticClass:"col"},[e.showBreadcrumb?[s("Breadcrumb",{attrs:{items:e.breadcrumb}})]:e._e()],2),e.locales&&e.locales.length?[s("div",{staticClass:"col-auto"},[s("LocaleSelect",{attrs:{outline:"",right:"",locale:e.currentLocale,locales:e.locales},on:{change:e.handleLocaleChanged}})],1)]:e._e()],2)])},Gm=[],Wm=r(qm,Km,Gm,!1,null,null,null,null);const Qm=Wm.exports,Ym={components:{Button:_,Form:He,ActionBarForm:Qm},data(){return{form:null}},computed:{entityKey(){return this.$route.params.entityKey},instanceId(){return this.$route.params.instanceId}},methods:{handleError(t){this.$emit("error",t)},handleFormUpdated(t){this.updateDocumentTitle(t)},updateDocumentTitle(t){var s,a;const e=(a=(s=t.breadcrumb)==null?void 0:s.items[t.breadcrumb.items.length-1])==null?void 0:a.documentTitleLabel;e&&(document.title=`${e}, ${document.title}`)}}};var Xm=function(){var e=this,s=e._self._c;return s("div",{staticClass:"FormPage"},[s("div",{staticClass:"container"},[s("Form",{attrs:{form:e.form,"entity-key":e.entityKey,"instance-id":e.instanceId},on:{"update:form":[function(a){e.form=a},e.handleFormUpdated],error:e.handleError},scopedSlots:e._u([{key:"action-bar",fn:function({props:a,listeners:n}){return[s("ActionBarForm",e._g(e._b({},"ActionBarForm",a,!1),n))]}}])})],1)])},Jm=[],Zm=r(Ym,Xm,Jm,!1,null,null,null,null);const ep=Zm.exports,tp=[{name:"form",path:"/(.*)?/s-form/:entityKey/:instanceId?",component:ep}];function sp(t,{router:e,store:s}){t.component("FieldDisplay",Hm),e.addRoutes(tp)}const ap={components:{Modal:F,Form:He,LoadingOverlay:ne},props:{command:Object,entityKey:String,instanceId:[Number,String],loading:Boolean},data(){return{visible:!1}},watch:{command(t){this.visible=!!(t!=null&&t.form)}},computed:{title(){var t,e;return((t=this.command)==null?void 0:t.modal_title)??((e=this.command)==null?void 0:e.label)},confirmLabel(){var t;return(t=this.command)==null?void 0:t.modal_confirm_label}},methods:{submit(...t){return this.$refs.form.submit(...t)},handleSubmitButtonClicked(t){t.preventDefault(),this.$emit("submit",this)},handleClosed(){this.$emit("close")},handleLoadingChanged(t){this.$emit("update:loading",t)}}};var np=function(){var e=this,s=e._self._c;return s("Modal",{attrs:{"modal-class":"form-modal",visible:e.visible,loading:e.loading,title:e.title,"ok-title":e.confirmLabel},on:{"update:visible":function(a){e.visible=a},ok:e.handleSubmitButtonClicked,hidden:e.handleClosed}},[s("transition",[e.visible?[s("Form",{ref:"form",staticStyle:{"transition-duration":"300ms"},attrs:{"entity-key":e.entityKey,"instance-id":e.instanceId,form:e.command.form,"show-alert":!1,independant:"","ignore-authorizations":""},on:{loading:e.handleLoadingChanged}})]:e._e()],2)],1)},ip=[],rp=r(ap,np,ip,!1,null,null,null,null);const qe=rp.exports,lp={name:"SharpCommandsDropdown",components:{Dropdown:$,DropdownItem:x,DropdownSeparator:U},props:{commands:{type:Array},small:{type:Boolean,default:!0},hasState:Boolean,selecting:Boolean},computed:{commandGroups(){return this.commands.filter(t=>t.length>0)},classes(){return{"SharpCommandsDropdown--has-state":this.hasState}}},methods:{lang:o,isDisabled(t){return this.requiresSelection(t)},requiresSelection(t){return!this.selecting&&t.instance_selection==="required"},handleCommandClicked(t){this.$emit("select",t)}},directives:{"b-tooltip":un}};var op=function(){var e=this,s=e._self._c;return s("Dropdown",e._g(e._b({staticClass:"SharpCommandsDropdown",class:e.classes,attrs:{small:e.small,right:""},scopedSlots:e._u([{key:"text",fn:function(){return[e._t("text")]},proxy:!0}],null,!0)},"Dropdown",e.$attrs,!1),e.$listeners),[e._t("prepend"),e._l(e.commandGroups,function(a,n){return[n>0?[s("DropdownSeparator")]:e._e(),e._l(a,function(i){return[s("DropdownItem",{directives:[{name:"b-tooltip",rawName:"v-b-tooltip.hover.left",value:{disabled:!e.requiresSelection(i)},expression:"{ disabled: !requiresSelection(command) }",modifiers:{hover:!0,left:!0}}],key:i.key,attrs:{disabled:e.isDisabled(i),title:e.requiresSelection(i)?e.lang("entity_list.commands.needs_selection_message"):null},on:{click:function(l){return e.handleCommandClicked(i)}}},[e._v(" "+e._s(i.label)+" "),i.description?[s("div",{staticClass:"SharpCommandsDropdown__description",class:{"opacity-75":e.isDisabled(i)}},[e._v(" "+e._s(i.description)+" ")])]:e._e()],2)]})]}),e._t("append")],2)},dp=[],cp=r(lp,op,dp,!1,null,null,null,null);const L=cp.exports,up={name:"SharpViewPanel",props:{content:String},computed:{visible(){return!!this.content}},methods:{handleBackdropClicked(){this.$emit("close")}}};var hp=function(){var e=this,s=e._self._c;return s("div",[s("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"SharpViewPanel__glasspane",on:{click:e.handleBackdropClicked}}),s("transition",{attrs:{"enter-class":"SharpViewPanel--collapsed","enter-active-class":"SharpViewPanel--expanding","enter-to-class":"SharpViewPanel--expanded","leave-class":"SharpViewPanel--expanded","leave-active-class":"SharpViewPanel--collapsing","leave-to-class":"SharpViewPanel--collapsed"}},[e.visible?[s("div",{staticClass:"SharpViewPanel"},[s("iframe",{attrs:{srcdoc:e.content,sandbox:"allow-forms allow-scripts allow-same-origin allow-popups allow-modals allow-downloads"}})])]:e._e()],2)],1)},mp=[],pp=r(up,hp,mp,!1,null,null,null,null);const Ke=pp.exports,ht="SET_COMMANDS",fp={namespaced:!0,state:{commands:null},mutations:{[ht](t,e){t.commands=e}},getters:{forType(t){return e=>t.commands?t.commands[e]:null}},actions:{update({commit:t},{commands:e}){t(ht,e)}}};function _p(t,{store:e,router:s}){}function gp({dashboardKey:t,filters:e}){return v.get(`dashboard/${t}`,{params:{...e}}).then(s=>s.data)}function vp({dashboardKey:t,commandKey:e,query:s,data:a}){return v.post(`dashboard/${t}/command/${e}`,{query:s,...a},{responseType:"blob"})}function bp({dashboardKey:t,commandKey:e,query:s}){return v.get(`dashboard/${t}/command/${e}/form`,{params:{...s}}).then(a=>a.data)}function yp(){return v.get("filters").then(t=>t.data)}function Cp({filterKey:t,value:e}){return v.post(`filters/${t}`,{value:e})}const ta="filter_",mt=new RegExp(`^${ta}`);function sa(t){return`${ta}${t}`}function $p(t,e=s=>s){return Object.entries(t).reduce((s,[a,n])=>({...s,[sa(a)]:e(n,a)}),{})}function wp(t){return Object.entries(t||{}).filter(([e])=>mt.test(e)).reduce((e,[s,a])=>({...e,[s.replace(mt,"")]:a}),{})}const pt="SET_FILTERS",ft="SET_VALUES",oe={namespaced:!0,state:()=>({filters:null,values:{}}),mutations:{[pt](t,e){t.filters=e},[ft](t,e){t.values=e}},getters:{value(t){return e=>t.values[e]},rootFilters(t){var e;return((e=t.filters)==null?void 0:e._root)??[]},values(t){return t.values},isValuated(t,e){return s=>!Pt(e.getQueryParams(Object.fromEntries(s.map(a=>{var n;return[a.key,(n=t.values)==null?void 0:n[a.key]]}))),e.getQueryParams(e.defaultValues(s)))},filterQueryKey(){return t=>sa(t)},getQueryParams(t,e){return s=>{const a=Object.values(t.filters??{}).flat();return $p(s,(n,i)=>e.serializeValue({filter:a.find(l=>l.key===i),value:n}))}},getValuesFromQuery(){return t=>wp(t)},resolveFilterValue(){return({filter:t,value:e})=>e==null?t==null?void 0:t.default:t.multiple&&!Array.isArray(e)?[e]:t.type==="daterange"?Ar(e):t.type==="check"?e==="1":e},serializeValue(){return({filter:t,value:e})=>t?t.multiple&&!(e!=null&&e.length)?null:t.type==="daterange"?Rr(e):t.type==="check"?e?"1":null:e:e},nextValues(t){return({filter:e,value:s})=>e.master?{...Object.fromEntries(Object.entries(t.values).map(([a,n])=>[a,null])),[e.key]:s}:{...t.values,[e.key]:s}},nextQuery(t,e){return({filter:s,value:a})=>e.getQueryParams(e.nextValues({filter:s,value:a}))},defaultValues(){return t=>Object.fromEntries(t.map(e=>[e.key,e.default]))},defaultQuery(t,e){return s=>e.getQueryParams(e.defaultValues(s))}},actions:{update({state:t,commit:e,dispatch:s,getters:a},{filters:n,values:i}){e(pt,n),e(ft,{...Object.fromEntries(Object.values(n??{}).flat().map(l=>[l.key,a.resolveFilterValue({filter:l,value:i==null?void 0:i[l.key]})]))})}}},Sp={namespaced:!0,modules:{filters:oe},actions:{async get({dispatch:t}){const e=await yp();t("filters/update",{filters:e.filters})},post({},{filter:t,value:e}){return Cp({filterKey:t.key,value:e})}}},kp={name:"SharpFilterControl",props:{label:String},methods:{handleLabelClicked(){this.$emit("label-click")},handleClicked(){this.$emit("click")}}};var xp=function(){var e=this,s=e._self._c;return s("div",{staticClass:"input-group input-group-sm flex-nowrap SharpFilterControl",on:{click:e.handleClicked}},[e.label?[s("div",{staticClass:"input-group-text bg-white border-end-0",on:{click:e.handleLabelClicked}},[e._v(" "+e._s(e.label)+" ")])]:e._e(),e._t("default")],2)},Fp=[],Lp=r(kp,xp,Fp,!1,null,null,null,null);const aa=Lp.exports,Bp={name:"SharpFilterDateRange",components:{DateRange:ea,FilterControl:aa},props:{value:{required:!0},required:Boolean,displayFormat:String,mondayFirst:Boolean,disabled:Boolean,label:String},methods:{handleClicked(){this.$refs.range.focus()},handleInput(t){this.$emit("input",t)}}};var Op=function(){var e=this,s=e._self._c;return s("div",{staticClass:"SharpFilterDateRange"},[s("FilterControl",{attrs:{label:e.label},on:{"label-click":e.handleClicked}},[s("DateRange",{ref:"range",staticClass:"SharpFilterDateRange__field",attrs:{value:e.value,"display-format":e.displayFormat,"monday-first":e.mondayFirst,clearable:!e.required,"read-only":e.disabled,"update-on-input":!1,small:""},on:{input:e.handleInput}})],1)],1)},Ep=[],Ip=r(Bp,Op,Ep,!1,null,null,null,null);const Tp=Ip.exports,Ap={name:"SharpFilterSelect",mixins:[y],components:{Select:Ps,Autocomplete:Cs,FilterControl:aa},props:{label:String,values:{type:Array,required:!0},value:{type:[String,Number,Array]},multiple:Boolean,required:Boolean,searchable:Boolean,searchKeys:Array,template:String,disabled:Boolean,global:Boolean},data(){return{opened:!1,debug:!1}},computed:{optionById(){return this.values.reduce((t,e)=>({...t,[e.id]:e}),{})},empty(){return this.value==null||this.multiple&&!this.value.length},autocompleteValue(){return this.multiple?(this.value||[]).map(t=>this.optionById[t]):this.optionById[this.value]}},methods:{handleSelect(t){this.$emit("input",t)},handleAutocompleteInput(t){this.$emit("input",this.multiple?t.map(e=>e.id):(t||{}).id)},handleClicked(){this.opened?this.close():this.open()},open(){this.opened=!0,this.$emit("open"),this.$nextTick(this.showDropdown)},close(){this.debug||(this.opened=!1,this.$emit("close"),this.$nextTick(this.blur))},showDropdown(){let{autocomplete:{$refs:{multiselect:t}}}=this.$refs;t.activate(),this.debug&&(this.unwatch&&this.unwatch(),this.unwatch=t.$watch("isOpen",function(e){e||(this.isOpen=!0)},{sync:!0}))},blur(){this.$refs.select.blur()}}};var Rp=function(){var e=this,s=e._self._c;return s("div",{staticClass:"SharpFilterSelect",class:{"SharpFilterSelect--open":e.opened,"SharpFilterSelect--empty":e.empty,"SharpFilterSelect--multiple":e.multiple,"SharpFilterSelect--searchable":e.searchable,"SharpFilterSelect--underlined":!e.global}},[s("Autocomplete",{ref:"autocomplete",staticClass:"SharpFilterSelect__select",staticStyle:{"max-width":"0"},attrs:{value:e.autocompleteValue,"local-values":e.values,"search-keys":e.searchKeys,"list-item-template":e.template,placeholder:e.l("entity_list.filter.search_placeholder"),multiple:e.multiple,"hide-selected":e.multiple,"allow-empty":!e.required,"preserve-search":!1,"show-pointer":!1,searchable:e.searchable,"read-only":e.disabled,nowrap:"","no-result-item":"",mode:"local"},on:{"multiselect-input":e.handleAutocompleteInput,close:e.close}}),s("FilterControl",{attrs:{label:e.label},on:{click:e.handleClicked}},[s("Select",{ref:"select",staticClass:"SharpFilterSelect__select form-select text-wrap",attrs:{value:e.value,options:e.values,multiple:e.multiple,clearable:!e.required,"read-only":e.disabled,inline:!1,placeholder:" "},on:{input:e.handleSelect}})],1)],1)},Dp=[],Pp=r(Ap,Rp,Dp,!1,null,null,null,null);const na=Pp.exports,zp={props:{filterKey:String,label:String,value:Boolean,disabled:Boolean},computed:{id(){return`filter-${this.filterKey}`}},methods:{handleChanged(t){this.$emit("input",t.target.checked)}}};var Mp=function(){var e=this,s=e._self._c;return s("div",{staticClass:"SharpFilterCheck form-check mt-1 mx-2"},[s("input",{staticClass:"form-check-input",attrs:{id:e.id,type:"checkbox",name:e.filterKey,disabled:e.disabled},domProps:{checked:e.value},on:{change:e.handleChanged}}),s("label",{staticClass:"ui-font fs-8",attrs:{for:e.id}},[e._v(" "+e._s(e.label)+" ")])])},jp=[],Np=r(zp,Mp,jp,!1,null,null,null,null);const Vp=Np.exports;function Up(t){if(t==="select")return na;if(t==="daterange")return Tp;if(t==="check")return Vp}const Hp={name:"SharpFilter",props:{filter:{type:Object,required:!0},value:[Object,Array,String,Number],disabled:Boolean},computed:{filterComponent(){return Up(this.filter.type)}},methods:{handleInput(t){this.$emit("input",t)}}};var qp=function(){var e=this,s=e._self._c;return s(e.filterComponent,e._b({tag:"component",attrs:{"filter-key":e.filter.key,value:e.value,disabled:e.disabled},on:{input:e.handleInput}},"component",e.filter,!1))},Kp=[],Gp=r(Hp,qp,Kp,!1,null,null,null,null);const de=Gp.exports,Wp={components:{FilterSelect:na,Dropdown:$},computed:{...A("global-filters",{rootFilters:"filters/rootFilters",filterValue:"filters/value"})},data(){return{open:!1}},methods:{handleFilterChanged(t,e){this.$store.dispatch("global-filters/post",{filter:t,value:e}).then(()=>{this.$store.dispatch("setLoading",!0),location.href=Oe})},handleOpened(){this.open=!0},handleClosed(){this.open=!1},async init(){await this.$store.dispatch("global-filters/get")}},created(){this.init()}};var Qp=function(){var e=this,s=e._self._c;return s("div",{staticClass:"SharpGlobalFilters"},[e.open?[s("div",{staticClass:"position-absolute inset-0",staticStyle:{"z-index":"1"}})]:e._e(),e._l(e.rootFilters,function(a){return[s("FilterSelect",{key:a.key,staticStyle:{"z-index":"2"},attrs:{label:null,values:a.values,value:e.filterValue(a.key),multiple:a.multiple,required:a.required,template:a.template,"search-keys":a.searchKeys,searchable:a.searchable,global:""},on:{input:function(n){return e.handleFilterChanged(a,n)},open:function(n){return e.handleOpened(a)},close:function(n){return e.handleClosed(a)}}})]})],2)},Yp=[],Xp=r(Wp,Qp,Yp,!1,null,null,null,null);const Jp=Xp.exports;function Zp(t,{store:e}){e.registerModule("global-filters",Sp),t.component("sharp-global-filters",Jp)}const _t="UPDATE",ef={namespaced:!0,modules:{filters:oe,commands:fp},state:{dashboardKey:null,data:null,widgets:null,fields:null,config:null,layout:null},mutations:{[_t](t,{data:e,layout:s,widgets:a,config:n,fields:i}){t.data=e,t.widgets=a,t.layout=s,t.config=n,t.fields=i},setDashboardKey(t,e){t.dashboardKey=e}},actions:{update({commit:t,dispatch:e},{data:s,widgets:a,layout:n,config:i,fields:l,filtersValues:d}){return t(_t,{data:s,widgets:a,layout:n,config:i,fields:l}),Promise.all([e("filters/update",{filters:i.filters,values:d}),e("commands/update",{commands:i.commands})])},async get({state:t,dispatch:e,getters:s},{filtersValues:a}){const n=await gp({dashboardKey:t.dashboardKey,filters:s["filters/getQueryParams"](a)});await e("update",{...n,filtersValues:a})},postCommand({state:t},{command:e,query:s,data:a}){return vp({dashboardKey:t.dashboardKey,commandKey:e.key,query:s,data:a})},getCommandForm({state:t},{command:e,query:s}){return bp({dashboardKey:t.dashboardKey,commandKey:e.key,query:s})}}},tf={name:"SharpWidgetPanel",inheritAttrs:!1,components:{TemplateRenderer:z},props:{value:Object,title:String,template:String,link:String},methods:{lang:o}};var sf=function(){var e=this,s=e._self._c;return s("div",{staticClass:"SharpWidgetPanel"},[e.title?[s("h2",{staticClass:"SharpWidget__title mb-2"},[e._v(" "+e._s(e.title)+" ")])]:e._e(),s("TemplateRenderer",{attrs:{name:"WidgetPanel",template:e.template,"template-data":e.value.data}}),e.link?[s("a",{staticClass:"stretched-link",attrs:{href:e.link}},[s("span",{staticClass:"visually-hidden"},[e._v(" "+e._s(e.lang("dashboard.widget.link_label"))+" ")])])]:e._e()],2)},af=[],nf=r(tf,sf,af,!1,null,null,null,null);const rf=nf.exports,lf={name:"SharpWidgetOrderedList",components:{DataList:qt,DataListRow:Fe},props:{value:Object,title:String,html:Boolean},computed:{items(){return this.value.data},columns(){return[{key:"label",size:12,sizeXS:12,html:this.html}]}},methods:{hasCount(t){return typeof t.count=="number"||!!t.count}}};var of=function(){var e=this,s=e._self._c;return s("div",{staticClass:"SharpWidgetOrderedList w-100"},[s("h2",{staticClass:"SharpWidget__title mb-3 px-3"},[e._v(" "+e._s(e.title)+" ")]),s("DataList",{staticClass:"SharpWidgetOrderedList__list",attrs:{items:e.items,columns:e.columns,"hide-header":""},scopedSlots:e._u([{key:"item",fn:function({item:a}){return[s("DataListRow",{attrs:{url:a.url,columns:e.columns,row:a},scopedSlots:e._u([e.hasCount(a)?{key:"append",fn:function(){return[s("span",{staticClass:"SharpTag SharpTag--default"},[e._v(e._s(a.count))])]},proxy:!0}:null],null,!0)})]}}])})],1)},df=[],cf=r(lf,of,df,!1,null,null,null,null);const uf=cf.exports,hf={props:{title:String,link:String,value:Object},methods:{lang:o}};var mf=function(){var e=this,s=e._self._c;return s("div",[e.title?[s("h2",{staticClass:"SharpWidget__title mb-2"},[e._v(" "+e._s(e.title)+" ")])]:e._e(),s("div",{staticClass:"d-flex align-items-center"},[s("p",{staticClass:"display-5 fw-bold mb-0",style:{color:e.value.data.color}},[e._v(" "+e._s(e.value.data.figure)+" "),e.value.data.unit?[s("span",{staticClass:"fs-5 fw-normal"},[e._v(e._s(e.value.data.unit))])]:e._e()],2),e.value.data.evolution?[s("div",{staticClass:"d-flex align-items-center ms-3",style:{color:e.value.data.evolution.increase?"#198754":"#dc3545"}},[e.value.data.evolution.increase?[s("svg",{attrs:{width:"20",height:"20",viewBox:"0 0 20 20",fill:"currentColor"}},[s("path",{attrs:{"fill-rule":"evenodd",d:"M10 17a.75.75 0 01-.75-.75V5.612L5.29 9.77a.75.75 0 01-1.08-1.04l5.25-5.5a.75.75 0 011.08 0l5.25 5.5a.75.75 0 11-1.08 1.04l-3.96-4.158V16.25A.75.75 0 0110 17z","clip-rule":"evenodd"}})])]:[s("svg",{attrs:{width:"20",height:"20",viewBox:"0 0 20 20",fill:"currentColor"}},[s("path",{attrs:{"fill-rule":"evenodd",d:"M10 3a.75.75 0 01.75.75v10.638l3.96-4.158a.75.75 0 111.08 1.04l-5.25 5.5a.75.75 0 01-1.08 0l-5.25-5.5a.75.75 0 111.08-1.04l3.96 4.158V3.75A.75.75 0 0110 3z","clip-rule":"evenodd"}})])],s("span",{staticClass:"ms-1"},[e._v(" "+e._s(e.value.data.evolution.value)+" ")])],2)]:e._e()],2),e.link?[s("div",{staticClass:"text-start mt-2"},[s("a",{attrs:{href:e.link}},[e._v(" "+e._s(e.lang("dashboard.widget.link_label"))+" ")])])]:e._e()],2)},pf=[],ff=r(hf,mf,pf,!1,null,null,null,null);const _f=ff.exports;function Ge(){return{chart:{animations:{enabled:!1},toolbar:{show:!1,tools:{pan:!1,zoom:!0,download:!1}},locales:[hn,mn,pn,fn,_n],defaultLocale:document.documentElement.lang},legend:{showForSingleSeries:!0},tooltip:{y:{title:{formatter:(t,{seriesIndex:e})=>t!==`series-${e+1}`?`${t}:`:""}}}}}function ia(t){var e;return!!(((e=t.legend)==null?void 0:e.show)??!0)}function We(t){const e=document.createElement("canvas").getContext("2d");return t.map(s=>(e.fillStyle=s,e.fillStyle))}const gf={components:{ApexChart:$e},props:{chartData:Object,options:Object},computed:{hasLegends(){return ia(this.chartOptions)},chartOptions(){return we({},Ge(),{colors:this.chartData.colors,labels:this.chartData.labels,legend:{position:"bottom"},stroke:{width:4},dataLabels:{enabled:!1}},this.options)}}};var vf=function(){var e=this,s=e._self._c;return s("div",{staticClass:"mt-2",class:{"mb-2":e.hasLegends}},[s("ApexChart",{attrs:{type:"area",series:e.chartData.series,options:e.chartOptions,height:e.options.chart.height}})],1)},bf=[],yf=r(gf,vf,bf,!1,null,null,null,null);const Cf=yf.exports;function $f(t){const e=(t==null?void 0:t.datasets)??[],s=(t==null?void 0:t.labels)??[];return{series:e.map(a=>({data:a.data,name:a.label})),colors:We(e.map(a=>a.color)),labels:s}}const wf={components:{ApexChart:$e},props:{chartData:Object,options:Object},computed:{hasLegends(){return ia(this.chartOptions)},chartOptions(){return we({},Ge(),{legend:{position:"bottom"},labels:this.chartData.labels,colors:this.chartData.colors,grid:{padding:{right:12}}},this.options)}}};var Sf=function(){var e=this,s=e._self._c;return s("div",{class:{"mb-2":e.hasLegends}},[s("ApexChart",{attrs:{type:"bar",series:e.chartData.series,options:e.chartOptions,height:e.options.chart.height}})],1)},kf=[],xf=r(wf,Sf,kf,!1,null,null,null,null);const Ff=xf.exports;function Lf(t){const e=(t==null?void 0:t.datasets)??[],s=(t==null?void 0:t.labels)??[];return{series:e.map(a=>({data:a.data,name:a.label})),colors:We(e.map(a=>a.color)),labels:s}}const Bf={components:{ApexChart:$e},props:{chartData:Object,options:Object},computed:{chartOptions(){return we({},Ge(),{colors:this.chartData.colors,labels:this.chartData.labels,legend:{position:"right"}},this.options)}}};var Of=function(){var e=this,s=e._self._c;return s("div",[s("ApexChart",{attrs:{type:"pie",series:e.chartData.series,options:e.chartOptions,height:e.options.chart.height}})],1)},Ef=[],If=r(Bf,Of,Ef,!1,null,null,null,null);const Tf=If.exports;function Af(t){const e=((t==null?void 0:t.datasets)??[]).filter(s=>{var a;return((a=s.data)==null?void 0:a.length)>0});return{series:e.map(s=>s.data[0]),colors:We(e.map(s=>s.color)),labels:e.map(s=>s.label??"")}}function Rf(t){if(t==="line")return Cf;if(t==="bar")return Ff;if(t==="pie")return Tf}function Df(t,e){if(t==="line")return $f(e);if(t==="bar")return Lf(e);if(t==="pie")return Af(e)}const Pf={name:"SharpWidgetChart",props:{display:String,title:String,value:Object,ratioX:Number,ratioY:Number,height:Number,minimal:Boolean,showLegend:{type:Boolean,default:!0},dateLabels:Boolean,options:Object},data(){return{zoomed:!1}},computed:{classes(){return[`SharpWidgetChart--${this.display}`,{"SharpWidgetChart--aspect-ratio":!this.height}]},style(){return{"--ratio-x":this.ratioX,"--ratio-y":this.ratioY}},chartComp(){return Rf(this.display)},chartData(){return Df(this.display,this.value)},chartOptions(){var t,e,s;return{chart:{toolbar:{show:this.zoomed},height:this.height??"100%",width:"100%",sparkline:{enabled:this.minimal},parentHeightOffset:0,events:{zoomed:()=>{this.zoomed=!0}}},xaxis:{type:!((t=this.options)!=null&&t.horizontal)&&this.dateLabels?"datetime":"category"},plotOptions:{bar:{horizontal:!!((e=this.options)!=null&&e.horizontal)}},legend:{show:this.showLegend&&!this.minimal},stroke:{curve:((s=this.options)==null?void 0:s.curved)??!0?"smooth":"straight"}}}}};var zf=function(){var e=this,s=e._self._c;return s("div",[e.title?[s("h2",{staticClass:"SharpWidget__title mb-2 mt-3 px-3"},[e._v(" "+e._s(e.title)+" ")])]:e._e(),s(e.chartComp,{tag:"component",staticClass:"SharpWidgetChart",class:e.classes,style:e.style,attrs:{"chart-data":e.chartData,options:e.chartOptions}})],2)},Mf=[],jf=r(Pf,zf,Mf,!1,null,null,null,null);const Nf=jf.exports;function Vf(t){if(t==="graph")return Nf;if(t==="panel")return rf;if(t==="list")return uf;if(t==="figure")return _f}const Uf={name:"SharpWidget",props:{widgetType:String,widgetProps:Object,value:Object},computed:{classes(){return{"SharpWidget--chart":this.widgetType==="graph","SharpWidget--panel":this.widgetType==="panel","SharpWidget--link":this.widgetProps.link}},widgetComp(){return Vf(this.widgetType,this.widgetProps.display)}}};var Hf=function(){var e=this,s=e._self._c;return s("div",{staticClass:"SharpWidget card",class:e.classes,attrs:{href:e.widgetProps.link}},[s("div",{staticClass:"card-body"},[s(e.widgetComp,e._b({tag:"component",attrs:{value:e.value}},"component",e.widgetProps,!1))],1)])},qf=[],Kf=r(Uf,Hf,qf,!1,null,null,null,null);const ra=Kf.exports,Gf={name:"SharpActionBarDashboard",mixins:[y],components:{SharpFilter:de,CommandsDropdown:L},props:{commands:Array,filters:Array,showReset:Boolean},computed:{...A("dashboard",{filterValue:"filters/value"})}};var Wf=function(){var e=this,s=e._self._c;return s("div",{staticClass:"my-4"},[s("div",{staticClass:"row gx-3"},[s("div",{staticClass:"col"},[e.filters.length>0?[s("div",{staticClass:"row gx-2"},[e._l(e.filters,function(a){return[s("div",{staticClass:"col-auto"},[s("SharpFilter",{key:a.id,attrs:{filter:a,value:e.filterValue(a.key)},on:{input:function(n){return e.$emit("filter-change",a,n)}}})],1)]}),e.showReset?[s("div",{staticClass:"col-auto d-flex"},[s("button",{staticClass:"btn btn-sm btn-link d-inline-flex align-items-center fs-8",on:{click:function(a){return e.$emit("filters-reset",e.filters)}}},[e._v(" "+e._s(e.l("filters.reset_all"))+" ")])])]:e._e()],2)]:e._e()],2),e.commands.length?[s("div",{staticClass:"col-auto"},[s("CommandsDropdown",{attrs:{commands:e.commands},on:{select:function(a){return e.$emit("command",a)}},scopedSlots:e._u([{key:"text",fn:function(){return[e._v(" "+e._s(e.l("dashboard.commands.dashboard.label"))+" ")]},proxy:!0}],null,!1,2583331100)})],1)]:e._e()],2)])},Qf=[],Yf=r(Gf,Wf,Qf,!1,null,null,null,null);const Xf=Yf.exports,Jf={components:{CommandsDropdown:L,Widget:ra,Grid:R,SectionTitle:ms,SharpFilter:de},props:{section:Object,commands:Array,filters:Array,showReset:Boolean},computed:{...A("dashboard",{filterValue:"filters/value"}),hasCommands(){var t;return(t=this.commands)==null?void 0:t.flat().length}},methods:{lang:o}};var Zf=function(){var e=this,s=e._self._c;return s("div",{staticClass:"section"},[s("div",{staticClass:"row align-items-center"},[s("div",{staticClass:"col"},[s("SectionTitle",{attrs:{section:e.section}})],1),e.hasCommands||e.filters.length?[s("div",{staticClass:"col-auto align-self-end mb-2",class:{"w-100":e.filters.length}},[s("div",{staticClass:"row justify-content-end"},[e.filters.length?[s("div",{staticClass:"col"},[s("div",{staticClass:"row row-cols-auto gx-2"},[e._l(e.filters,function(a){return[s("SharpFilter",{key:a.id,attrs:{filter:a,value:e.filterValue(a.key)},on:{input:function(n){return e.$emit("filter-change",a,n)}}})]}),e.showReset?[s("div",{staticClass:"d-flex"},[s("button",{staticClass:"btn btn-sm d-inline-flex align-items-center btn-link",on:{click:function(a){return e.$emit("filters-reset",e.filters)}}},[e._v(" "+e._s(e.lang("filters.reset_all"))+" ")])])]:e._e()],2)])]:e._e(),e.hasCommands?[s("div",{staticClass:"col-auto"},[s("CommandsDropdown",{attrs:{commands:e.commands},on:{select:function(a){return e.$emit("command",a)}},scopedSlots:e._u([{key:"text",fn:function(){return[e._v(" "+e._s(e.lang("dashboard.commands.dashboard.label"))+" ")]},proxy:!0}],null,!1,3675307572)})],1)]:e._e()],2)])]:e._e()],2),s("Grid",{attrs:{rows:e.section.rows,"row-class":"g-3"},scopedSlots:e._u([{key:"default",fn:function({itemLayout:a}){return[e._t("default",null,{widgetLayout:a})]}}],null,!0)})],1)},e_=[],t_=r(Jf,Zf,e_,!1,null,null,null,null);const s_=t_.exports,a_={name:"SharpDashboardPage",mixins:[Ae],components:{Section:s_,Grid:R,Widget:ra,ActionBarDashboard:Xf,GlobalMessage:ae,CommandFormModal:qe,CommandViewPanel:Ke},data(){return{ready:!1}},watch:{$route:"init"},computed:{...gn("dashboard",{data:t=>t.data,widgets:t=>t.widgets,layout:t=>t.layout,config:t=>t.config,fields:t=>t.fields}),...A("dashboard",{rootFilters:"filters/rootFilters",filtersValues:"filters/values",getFiltersQueryParams:"filters/getQueryParams",getFiltersValuesFromQuery:"filters/getValuesFromQuery",filterNextQuery:"filters/nextQuery",filterDefaultQuery:"filters/defaultQuery",filterIsValuated:"filters/isValuated",commandsForType:"commands/forType"}),dashboardKey(){return this.$route.params.dashboardKey},commands(){return this.commandsForType("dashboard")||[]},commandsQuery(){return{...this.getFiltersQueryParams(this.filtersValues),...this.$route.query}}},methods:{sectionFilters(t){var e;return((e=this.config.filters)==null?void 0:e[t.key])??[]},handleCommandRequested(t){const e=this.commandsQuery;this.sendCommand(t,{postCommand:s=>this.$store.dispatch("dashboard/postCommand",{command:t,query:e,data:s}),getForm:s=>this.$store.dispatch("dashboard/getCommandForm",{command:t,query:{...e,...s}})})},handleFilterChanged(t,e){this.$router.push({query:{...this.$route.query,...this.filterNextQuery({filter:t,value:e})}})},handleFiltersReset(t){this.$router.push({query:{...this.$route.query,...this.filterDefaultQuery(t)}})},async init(){this.$store.commit("dashboard/setDashboardKey",this.dashboardKey),await Y(this.$store.dispatch("dashboard/get",{filtersValues:this.getFiltersValuesFromQuery(this.$route.query)}).catch(t=>(this.$emit("error",t),Promise.reject(t)))),this.ready=!0}},created(){this.init()}};var n_=function(){var e=this,s=e._self._c;return s("div",{staticClass:"SharpDashboardPage",attrs:{"data-popover-boundary":""}},[e.ready?[s("div",{staticClass:"container"},[s("ActionBarDashboard",{attrs:{commands:e.commands,filters:e.rootFilters,"show-reset":e.filterIsValuated(e.rootFilters)},on:{command:e.handleCommandRequested,"filter-change":e.handleFilterChanged,"filters-reset":e.handleFiltersReset}}),e.config.globalMessage?[s("GlobalMessage",{attrs:{options:e.config.globalMessage,data:e.data,fields:e.fields}})]:e._e(),s("div",{staticClass:"mb-n4.5"},[e._l(e.layout.sections,function(a){return[s("Section",{staticClass:"mb-4.5",attrs:{section:a,commands:e.commandsForType(a.key),filters:e.sectionFilters(a),"show-reset":e.filterIsValuated(e.sectionFilters(a))},on:{command:e.handleCommandRequested,"filter-change":e.handleFilterChanged,"filters-reset":e.handleFiltersReset},scopedSlots:e._u([{key:"default",fn:function({widgetLayout:n}){return[s("Widget",{attrs:{"widget-type":e.widgets[n.key].type,"widget-props":e.widgets[n.key],value:e.data[n.key]}})]}}],null,!0)})]})],2)],2)]:e._e(),s("CommandFormModal",e._g(e._b({attrs:{command:e.currentCommand,"entity-key":e.dashboardKey}},"CommandFormModal",e.commandFormProps,!1),e.commandFormListeners)),s("CommandViewPanel",{attrs:{content:e.commandViewContent},on:{close:e.handleCommandViewPanelClosed}})],2)},i_=[],r_=r(a_,n_,i_,!1,null,null,null,null);const l_=r_.exports,o_=[{name:"dashboard",path:"/s-dashboard/:dashboardKey",component:l_}];function d_(t,{router:e,store:s}){s.registerModule("dashboard",ef),e.addRoutes(o_)}function c_({entityKey:t,instanceId:e}){return v.delete(`list/${t}/${e??""}`).then(s=>s.data)}function u_({entityKey:t,instances:e}){return v.post(`list/${t}/reorder`,{instances:e})}const gt="SET_ENTITY_KEY",vt="SET_QUERY",la={namespaced:!0,modules:{filters:oe},state(){return{entityKey:null,query:{}}},mutations:{[gt](t,e){t.entityKey=e},[vt](t,e){t.query=e}},getters:{query(t){return t.query}},actions:{update({dispatch:t},{data:e,layout:s,config:a,filtersValues:n}){return Promise.all([t("filters/update",{filters:a.filters,values:n})])},reorder({state:t},{instances:e}){return u_({entityKey:t.entityKey,instances:e})},setEntityKey({commit:t},e){t(gt,e)},setQuery({commit:t},e){t(vt,e)}}},h_={components:{Dropdown:$,DropdownItem:x,DropdownSeparator:U,CommandsDropdown:L,StateIcon:De,ModalSelect:Re,Button:_,Tooltip:Hl},props:{config:Object,hasState:Boolean,state:[String,Number],stateDisabled:Boolean,stateOptions:Object,hasCommands:Boolean,commands:Array,selecting:Boolean,canDelete:Boolean},data(){return{stateModalVisible:!1}},computed:{hasActionsButton(){return this.hasCommands||this.hasState||this.canDelete}},methods:{l:o,handleStateChanged(t){this.$emit("state-change",t)},handleCommandRequested(t){this.$emit("command",t)},handleDeleteClicked(){this.$emit("delete")},async handleStateDropdownClicked(){await this.$nextTick(),this.$refs.stateDropdown.show()}}};var m_=function(){var e=this,s=e._self._c;return s("div",{staticClass:"SharpEntityList__actions"},[s("div",{staticClass:"row align-items-center justify-content-end flex-nowrap gx-1"},[e.hasState?[s("div",{staticClass:"col-auto"},[s("Dropdown",{ref:"stateDropdown",attrs:{"toggle-class":"btn--opacity-1 btn--outline-hover",small:"","show-caret":!1,outline:"",right:"",disabled:e.stateDisabled,title:e.stateOptions?e.stateOptions.label:e.state},scopedSlots:e._u([{key:"text",fn:function(){return[s("StateIcon",{attrs:{color:e.stateOptions?e.stateOptions.color:"#fff"}})]},proxy:!0}],null,!1,1560251243)},[e._l(e.config.state.values,function(a){return[s("DropdownItem",{key:a.value,attrs:{active:e.state===a.value},on:{click:function(n){return e.handleStateChanged(a.value)}}},[s("StateIcon",{staticClass:"me-1",staticStyle:{"vertical-align":"-.125em"},attrs:{color:a.color}}),s("span",{staticClass:"text-truncate"},[e._v(e._s(a.label))])],1)]})],2)],1)]:e._e(),e.hasActionsButton?[s("div",{staticClass:"col-auto"},[s("CommandsDropdown",{staticClass:"SharpEntityList__commands-dropdown",attrs:{outline:"",commands:e.commands,"has-state":e.hasState,"toggle-class":["p-1 commands-toggle",{"opacity-50":e.selecting}],"show-caret":!1},on:{select:e.handleCommandRequested},scopedSlots:e._u([{key:"text",fn:function(){return[s("svg",{staticClass:"d-block",attrs:{width:"22",height:"22",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor"}},[s("path",{attrs:{d:"M10 3a1.5 1.5 0 110 3 1.5 1.5 0 010-3zM10 8.5a1.5 1.5 0 110 3 1.5 1.5 0 010-3zM11.5 15.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"}})])]},proxy:!0},e.hasState?{key:"prepend",fn:function(){return[s("DropdownItem",{attrs:{disabled:e.stateDisabled},on:{click:function(a){return a.preventDefault(),e.handleStateDropdownClicked.apply(null,arguments)}}},[s("div",{staticClass:"row align-items-center gx-2 flex-nowrap"},[s("div",{staticClass:"col-auto"},[s("StateIcon",{attrs:{color:e.stateOptions?e.stateOptions.color:"#fff"}})],1),s("div",{staticClass:"col"},[s("div",{staticClass:"row gx-2"},[e.stateDisabled?e._e():[s("div",{staticClass:"col-auto"},[e._v(" "+e._s(e.l("modals.entity_state.edit.title"))+" : ")])],s("div",{staticClass:"col-auto"},[e._v(" "+e._s(e.stateOptions?e.stateOptions.label:e.state)+" ")])],2)])])]),s("DropdownSeparator")]},proxy:!0}:null,e.canDelete?{key:"append",fn:function(){return[e.hasCommands?[s("DropdownSeparator")]:e._e(),s("DropdownItem",{attrs:{"link-class":"text-danger"},on:{click:e.handleDeleteClicked}},[e._v(" "+e._s(e.l("action_bar.form.delete_button"))+" ")])]},proxy:!0}:null],null,!0)})],1)]:e._e()],2)])},p_=[],f_=r(h_,m_,p_,!1,null,null,null,null);const __=f_.exports,g_={name:"SharpEntityList",mixins:[ds,y,Ae],components:{Search:hs,SharpFilter:de,EntityActions:__,DataList:qt,DataListRow:Fe,StateIcon:De,CommandsDropdown:L,Button:_,Modal:F,ModalSelect:Re,CommandFormModal:qe,CommandViewPanel:Ke,GlobalMessage:ae,DropdownItem:x,DropdownSeparator:U,Loading:I,LoadingOverlay:ne},props:{entityKey:String,module:String,inline:Boolean,showCreateButton:{type:Boolean,default:!0},showReorderButton:{type:Boolean,default:!0},showSearchField:{type:Boolean,default:!0},showEntityState:{type:Boolean,default:!0},hiddenCommands:Object,filters:Array,visible:{type:Boolean,default:!0},focusedItem:Number},data(){return{ready:!1,loading:!1,page:0,search:"",sortedBy:null,sortDir:null,sortDirs:{},reordering:!1,reorderedItems:null,selecting:!1,selectedItems:[],deletingItem:null,containers:null,layout:null,data:null,fields:null,config:null,authorizations:null,forms:null,breadcrumb:null,currentCommandInstanceId:null}},watch:{query(t,e){Pt(t,e)||this.init()},visible(t){t&&!this.ready&&this.init()}},computed:{classes(){return{"SharpEntityList--has-state-only":this.hasStateOnly}},rootFilters(){return this.storeGetter("filters/rootFilters")},resolvedFilters(){return this.filters??this.rootFilters},isFiltersValuated(){return this.storeGetter("filters/isValuated")(this.resolvedFilters)||this.search},filtersValues(){return this.storeGetter("filters/values")},filterNextQuery(){return this.storeGetter("filters/nextQuery")},filterDefaultQuery(){return this.storeGetter("filters/defaultQuery")(this.resolvedFilters)},getFiltersValuesFromQuery(){return this.storeGetter("filters/getValuesFromQuery")},query(){return this.storeGetter("query")},commandsQuery(){return{...this.storeGetter("filters/getQueryParams")(this.filtersValues),...this.query}},hasMultiforms(){return!!this.forms},hasShowPage(){return!!this.config.hasShowPage},apiParams(){return this.query},apiPath(){return`list/${this.entityKey}`},actionBarProps(){var t,e;return this.ready?{ready:!0,count:this.totalCount,forms:this.multiforms,commands:this.currentEntityCommands,dropdownCommands:this.dropdownCommands,primaryCommand:this.primaryCommand,reordering:this.reordering,selecting:this.selecting,canCreate:this.canCreate,canReorder:this.canReorder,canSearch:this.canSearch,canSelect:this.canSelect,breadcrumb:(t=this.breadcrumb)==null?void 0:t.items,showBreadcrumb:!!((e=this.breadcrumb)!=null&&e.visible),selectedCount:this.selectedItems.length}:{ready:!1}},actionBarListeners(){return{command:this.handleEntityCommandRequested,"search-submit":this.handleSearchSubmitted,"filter-change":this.handleFilterChanged,"reorder-click":this.handleReorderButtonClicked,"reorder-submit":this.handleReorderSubmitted,"select-click":this.handleSelectButtonClicked,"select-cancel":this.handleSelectCancelled,create:this.handleCreateButtonClicked}},allowedEntityCommands(){return(this.config.commands.entity||[]).map(t=>t.filter(e=>this.isEntityCommandAllowed(e)))},currentEntityCommands(){return this.selecting?this.allowedEntityCommands.map(t=>t.filter(e=>e.instance_selection)):this.allowedEntityCommands},dropdownCommands(){return this.currentEntityCommands.map(t=>t.filter(e=>!e.primary))},primaryCommand(){return this.currentEntityCommands.flat().find(t=>t.primary)},multiforms(){return this.forms?Object.values(this.forms):null},canCreate(){return this.showCreateButton&&!!this.authorizations.create},canReorder(){return this.showReorderButton&&this.config.reorderable&&this.authorizations.update&&this.items.length>1},canSearch(){return this.showSearchField&&!!this.config.searchable},canSelect(){return this.allowedEntityCommands.flat().some(t=>t.instance_selection)},items(){var t;return((t=this.data)==null?void 0:t.list.items)??[]},columns(){return this.layout.map(t=>({...t,...this.containers[t.key]}))},paginated(){return!!this.config.paginated},totalCount(){var t;return((t=this.data)==null?void 0:t.list.totalCount)??this.items.length},pageSize(){var t;return(t=this.data)==null?void 0:t.list.pageSize},hasActionsColumn(){return this.reordering?!1:this.items.some(t=>this.instanceHasState(t)||this.instanceHasCommands(t)||this.instanceCanDelete(t))},hasStateOnly(){return this.items.some(t=>!this.instanceHasCommands(t)&&this.instanceHasState(t)&&!this.instanceHasStateAuthorization(t))}},methods:{storeGetter(t){return this.$store.getters[`${this.module}/${t}`]},storeDispatch(t,e){return this.$store.dispatch(`${this.module}/${t}`,e)},handleSearchSubmitted(t){this.search=t,this.storeDispatch("setQuery",{...this.query,search:t,page:1})},handleFilterChanged(t,e){this.storeDispatch("setQuery",{...this.query,...this.filterNextQuery({filter:t,value:e}),page:1})},handleResetAllClicked(){this.storeDispatch("setQuery",{...this.query,...this.filterDefaultQuery,search:null,page:1})},handleReorderButtonClicked(){this.reordering=!this.reordering,this.reorderedItems=this.reordering?[...this.items]:null,this.$emit("reordering",this.reordering)},handleReorderSubmitted(){return this.storeDispatch("reorder",{instances:this.reorderedItems.map(t=>this.instanceId(t))}).then(()=>{this.data.list.items=[...this.reorderedItems],this.reorderedItems=null,this.reordering=!1,this.$emit("reordering",!1)})},handleCreateButtonClicked(t){const e=t?this.formUrl({formKey:t.key}):this.formUrl();location.href=e},handleSelectButtonClicked(){this.selecting=!0},handleSelectCancelled(){this.stopSelecting()},stopSelecting(){this.selecting=!1,this.selectedItems=[]},instanceId(t){const e=this.config.instanceIdAttribute;return e?t[e]:t.id},instanceState(t){if(!this.instanceHasState(t))return null;const e=this.config.state.attribute;return e?t[e]:t.state},instanceHasState(t){return!!this.config.state&&this.showEntityState},instanceHasCommands(t){return this.instanceCommands(t).flat().length>0},instanceHasStateAuthorization(t){if(!this.instanceHasState(t))return!1;const{authorization:e}=this.config.state,s=this.instanceId(t);return Array.isArray(e)?e.includes(s):!!e},instanceCommands(t){return(this.config.commands.instance||[]).reduce((e,s)=>[...e,s.filter(a=>this.isInstanceCommandAllowed(t,a))],[])},instanceStateOptions(t){if(!this.config.state)return null;const e=this.instanceState(t);return this.config.state.values.find(s=>s.value===e)},instanceForm(t){const e=this.instanceId(t);return this.multiforms.find(s=>s.instances.includes(e))},instanceUrl(t){const e=this.instanceId(t);if(!this.instanceHasViewAuthorization(t))return null;if(this.hasShowPage)return this.showUrl({instanceId:e});if(this.hasMultiforms){const s=this.instanceForm(t)||{};return this.formUrl({formKey:s.key,instanceId:e})}return this.formUrl({instanceId:e})},instanceHasViewAuthorization(t){const e=this.instanceId(t),s=this.authorizations.view;return Array.isArray(s)?s.includes(e):!!s},instanceIsFocused(t){const e=this.instanceId(t);return this.focusedItem&&this.focusedItem===e},instanceCanDelete(t){var a;const e=this.instanceId(t),s=Array.isArray(this.authorizations.delete)?(a=this.authorizations.delete)==null?void 0:a.includes(e):!!this.authorizations.delete;return!this.config.deleteHidden&&s},setState(t,e){const s=this.instanceId(t);return this.axiosInstance.post(`${this.apiPath}/state/${s}`,{attribute:this.config.state.attribute,value:e}).then(a=>{const{data:n}=a;this.handleCommandActionRequested(n.action,n)}).catch(a=>{var i,l;const n=(i=a.response)==null?void 0:i.data;((l=a.response)==null?void 0:l.status)===422&&D(n.message,{title:o("modals.state.422.title"),isError:!0})})},handleInstanceStateChanged(t,e){this.setState(t,e)},handleSortChanged({prop:t,dir:e}){this.storeDispatch("setQuery",{...this.query,page:1,sort:t,dir:e})},handleReorderedItemsChanged(t){this.reorderedItems=t},handlePageChanged(t){this.storeDispatch("setQuery",{...this.query,page:t})},async handleInstanceDeleteClicked(t){const e=this.instanceId(t);this.deletingItem=t;try{await Yt(this.config.deleteConfirmationText)&&(await c_({entityKey:this.entityKey,instanceId:e}),this.init())}finally{this.deletingItem=null}},formUrl({formKey:t,instanceId:e}={}){return ls({entityKey:t?`${this.entityKey}:${t}`:this.entityKey,instanceId:e},{append:!0})},showUrl({instanceId:t}={}){return qr({entityKey:this.entityKey,instanceId:t},{append:!0})},tryParseNumber(t){if(Array.isArray(t))return t.map(this.tryParseNumber);let e=Number(t);return isNaN(Number(e))?t:e},filterValueOrDefault(t,e){return t!=null&&t!==""?this.tryParseNumber(t):e.default||(e.multiple?[]:null)},showLoading(){this.inline||this.$store.dispatch("setLoading",!0)},hideLoading(){this.inline||this.$store.dispatch("setLoading",!1)},initCommands(){this.addCommandActionHandlers({refresh:this.handleRefreshCommand})},handleInstanceCommandRequested(t,e){const s=this.instanceId(t);this.handleCommandRequested(e,{instanceId:s})},handleEntityCommandRequested(t){const e=this.selecting?this.selectedItems:null;this.handleCommandRequested(t,{selectedInstanceIds:e})},async handleCommandRequested(t,{instanceId:e,selectedInstanceIds:s}={}){const a=this.commandsQuery,n=this.commandEndpoint(t.key,e);this.currentCommandInstanceId=e,await this.sendCommand(t,{postCommand:i=>v.post(n,{query:{...a,ids:s},...i},{responseType:"blob"}),getForm:i=>v.get(`${n}/form`,{params:{...a,...i,ids:s}}).then(l=>l.data)}),this.stopSelecting()},handleRefreshCommand(t){const e=(s,a)=>s.find(n=>this.instanceId(a)===this.instanceId(n));this.data.list.items=this.items.map(s=>e(t.items,s)||s)},commandEndpoint(t,e){return`${this.apiPath}/command/${t}${e?`/${e}`:""}`},isEntityCommandAllowed(t){const e=this.hiddenCommands?this.hiddenCommands.entity:null;return!!t.authorization&&!(e||[]).includes(t.key)},isInstanceCommandAllowed(t,e){const s=this.instanceId(t),a=this.hiddenCommands?this.hiddenCommands.instance:null;return(Array.isArray(e.authorization)?e.authorization.includes(s):!!e.authorization)&&!(a||[]).includes(e.key)},mount({containers:t,layout:e,data:s,fields:a,config:n,authorizations:i,forms:l,breadcrumb:d}){this.containers=t,this.layout=e,this.data=s??{},this.fields=a??{},this.config={...n,commands:(n==null?void 0:n.commands)??{},filters:(n==null?void 0:n.filters)??[]},this.authorizations=i,this.forms=l,this.breadcrumb=d,this.page=this.data.list.page,!this.sortDir&&(this.sortDir=this.config.defaultSortDir),!this.sortedBy&&(this.sortedBy=this.config.defaultSort)},bindParams(t){let{search:e,page:s,sort:a,dir:n}=t;this.search=e,s&&(this.page=Number(s)),a&&(this.sortedBy=a),n&&(this.sortDir=n)},async init(){this.visible&&(this.loading=!0,await this.storeDispatch("setEntityKey",this.entityKey),await this.get().catch(t=>(this.$emit("error",t),Promise.reject(t))),this.bindParams(this.query),await this.storeDispatch("update",{config:this.config,filtersValues:this.getFiltersValuesFromQuery(this.query)}),this.$emit("change",{data:this.data,layout:this.layout,config:this.config,containers:this.containers,authorizations:this.authorizations,forms:this.forms}),this.ready=!0,this.loading=!1)}},beforeMount(){this.init(),this.initCommands()}};var v_=function(){var e=this,s=e._self._c;return s("div",{staticClass:"SharpEntityList",class:e.classes},[e._t("action-bar",null,{props:e.actionBarProps,listeners:e.actionBarListeners}),e.ready?[s("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}]},[e.config.globalMessage?[s("GlobalMessage",{attrs:{options:e.config.globalMessage,data:e.data,fields:e.fields}})]:e._e(),s("DataList",{attrs:{items:e.items,columns:e.columns,page:e.page,paginated:e.paginated,"total-count":e.totalCount,"page-size":e.pageSize,reordering:e.reordering,sort:e.sortedBy,dir:e.sortDir},on:{change:e.handleReorderedItemsChanged,"sort-change":e.handleSortChanged,"page-change":e.handlePageChanged},scopedSlots:e._u([{key:"empty",fn:function(){return[e._v(" "+e._s(e.l("entity_list.empty_text"))+" ")]},proxy:!0},e.canSearch||e.resolvedFilters&&e.resolvedFilters.length?{key:"prepend",fn:function(){return[s("div",{staticClass:"p-3"},[s("div",{staticClass:"row gy-3 gx-4"},[e.canSearch?[s("div",{staticClass:"col-md-auto"},[s("Search",{staticClass:"h-100 mw-100",staticStyle:{"--width":"150px","--focused-width":"250px"},attrs:{value:e.search,placeholder:e.l("action_bar.list.search.placeholder"),disabled:e.reordering},on:{submit:e.handleSearchSubmitted}})],1)]:e._e(),e.resolvedFilters.length?[s("div",{staticClass:"col-md"},[s("div",{staticClass:"row gx-2 gy-2"},[e._l(e.resolvedFilters,function(a){return[s("div",{staticClass:"col-auto"},[s("SharpFilter",{key:a.id,attrs:{filter:a,value:e.filtersValues[a.key],disabled:e.reordering},on:{input:function(n){return e.handleFilterChanged(a,n)}}})],1)]}),e.isFiltersValuated?[s("div",{staticClass:"col-auto d-flex"},[s("button",{staticClass:"btn btn-link d-inline-flex align-items-center btn-sm fs-8",on:{click:e.handleResetAllClicked}},[e._v(" "+e._s(e.l("filters.reset_all"))+" ")])])]:e._e()],2)])]:e._e()],2)])]},proxy:!0}:null,{key:"item",fn:function({item:a}){return[s("DataListRow",{attrs:{url:e.instanceUrl(a),columns:e.columns,highlight:e.instanceIsFocused(a)||e.selecting&&e.selectedItems.includes(e.instanceId(a)),selecting:e.selecting,deleting:e.deletingItem?e.instanceId(a)===e.instanceId(e.deletingItem):!1,row:a},scopedSlots:e._u([e.selecting?{key:"prepend",fn:function(){return[s("input",{directives:[{name:"model",rawName:"v-model",value:e.selectedItems,expression:"selectedItems"}],staticClass:"form-check-input d-block mt-0 me-4",attrs:{id:`check-${e.entityKey}-${e.instanceId(a)}`,type:"checkbox",name:e.entityKey},domProps:{value:e.instanceId(a),checked:Array.isArray(e.selectedItems)?e._i(e.selectedItems,e.instanceId(a))>-1:e.selectedItems},on:{change:function(n){var i=e.selectedItems,l=n.target,d=!!l.checked;if(Array.isArray(i)){var u=e.instanceId(a),c=e._i(i,u);l.checked?c<0&&(e.selectedItems=i.concat([u])):c>-1&&(e.selectedItems=i.slice(0,c).concat(i.slice(c+1)))}else e.selectedItems=d}}}),s("label",{staticClass:"d-block position-absolute start-0 top-0 w-100 h-100",staticStyle:{"z-index":"3"},attrs:{for:`check-${e.entityKey}-${e.instanceId(a)}`}},[s("span",{staticClass:"visually-hidden"},[e._v("Select")])])]},proxy:!0}:null,e.hasActionsColumn?{key:"append",fn:function(n){return[s("EntityActions",{attrs:{config:e.config,"has-state":e.instanceHasState(a),state:e.instanceState(a),"state-options":e.instanceStateOptions(a),"state-disabled":!e.instanceHasStateAuthorization(a),"has-commands":e.instanceHasCommands(a),commands:e.instanceCommands(a),"can-delete":e.instanceCanDelete(a),selecting:e.selecting},on:{command:function(i){return e.handleInstanceCommandRequested(a,i)},"state-change":function(i){return e.handleInstanceStateChanged(a,i)},delete:function(i){return e.handleInstanceDeleteClicked(a)}}})]}}:null],null,!0)})]}},{key:"append-body",fn:function(){return[e.inline&&e.loading?[s("LoadingOverlay",{attrs:{small:"",absolute:"",fade:""}})]:e._e()]},proxy:!0}],null,!0)})],2)]:e.visible&&e.inline?[s("Loading",{attrs:{small:"",fade:""}})]:e._e(),s("CommandFormModal",e._g(e._b({attrs:{command:e.currentCommand,"entity-key":e.entityKey,"instance-id":e.currentCommandInstanceId}},"CommandFormModal",e.commandFormProps,!1),e.commandFormListeners)),s("CommandViewPanel",{attrs:{content:e.commandViewContent},on:{close:e.handleCommandViewPanelClosed}})],2)},b_=[],y_=r(g_,v_,b_,!1,null,null,null,null);const oa=y_.exports,C_={components:{Dropdown:$,DropdownItem:x},props:{forms:Array},computed:{hasIcon(){var t;return(t=this.forms)==null?void 0:t.some(e=>e.icon)},visibleForms(){var t;return(t=this.forms)==null?void 0:t.filter(e=>!!e.label||e.icon)}},methods:{l:o,handleSelected(t){this.$emit("select",t)}}};var $_=function(){var e=this,s=e._self._c;return s("Dropdown",e._b({attrs:{text:e.l("action_bar.list.forms_dropdown")}},"Dropdown",e.$attrs,!1),[e._l(e.visibleForms,function(a){return[s("DropdownItem",{key:a.key,on:{click:function(n){return e.handleSelected(a)}}},[s("div",{staticClass:"row gx-2 flex-nowrap"},[e.hasIcon?[s("div",{staticClass:"col-auto"},[s("div",{staticClass:"fa-fw"},[s("i",{staticClass:"fa",class:a.icon})])])]:e._e(),s("div",{staticClass:"col"},[e._v(" "+e._s(a.label)+" ")])],2)])]})],2)},w_=[],S_=r(C_,$_,w_,!1,null,null,null,null);const da=S_.exports,k_={props:{count:Number,search:String},methods:{lang:o},computed:{searchLabel(){return o("action_bar.list.search.title").replace(":search",this.search)}}};var x_=function(){var e=this,s=e._self._c;return s("div",{staticClass:"SharpEntityListTitle"},[s("div",{staticClass:"row align-items-center gx-2 h-100"},[e.$slots.default?[s("div",{staticClass:"col-auto"},[e._t("default")],2)]:e._e(),e.count?[s("div",{staticClass:"col-auto"},[s("div",{staticClass:"SharpEntityListTitle__info"},[s("div",{staticClass:"row",staticStyle:{"--bs-gutter-x":"inherit"}},[e.$slots.default?[s("div",{staticClass:"col-auto"},[e._v(" • ")])]:e._e(),s("div",{staticClass:"col"},[s("span",{staticClass:"text-nowrap"},[e._v(e._s(e.count)+" "+e._s(e.lang("action_bar.list.items_count")))])])],2)])])]:e._e(),e.search?[s("div",{staticClass:"col-auto"},[s("div",{staticClass:"SharpEntityListTitle__info"},[s("div",{staticClass:"row",staticStyle:{"--bs-gutter-x":"inherit"}},[s("div",{staticClass:"col-auto"},[e._v(" • ")]),s("div",{staticClass:"col"},[s("span",{staticClass:"text-nowrap"},[e._v(e._s(e.searchLabel))])])])])])]:e._e()],2)])},F_=[],L_=r(k_,x_,F_,!1,null,null,null,null);const ca=L_.exports,B_={name:"SharpActionBarList",mixins:[y],components:{CommandsDropdown:L,EntityListTitle:ca,MultiformDropdown:da,Dropdown:$,DropdownItem:x,SharpFilter:de,Search:hs,Button:_,Breadcrumb:xe},props:{count:Number,filters:Array,filtersValues:Object,forms:Array,primaryCommand:Object,dropdownCommands:Array,canCreate:Boolean,canReorder:Boolean,canSelect:Boolean,reordering:Boolean,selecting:Boolean,selectedCount:Number,breadcrumb:Array,showBreadcrumb:Boolean},data(){return{stuck:!1}},computed:{hasForms(){return this.forms&&this.forms.length>0}},methods:{handleFilterChanged(t,e){this.$emit("filter-change",t,e)},handleReorderButtonClicked(){this.$emit("reorder-click"),document.activeElement.blur()},handleReorderSubmitButtonClicked(){this.$emit("reorder-submit")},handleCreateButtonClicked(){this.$emit("create")},handleCreateFormSelected(t){this.$emit("create",t)},handleCommandSelected(t){this.$emit("command",t)},handleSelectButtonClicked(){this.$emit("select-click")},handleSelectCancelled(){this.$emit("select-cancel")}},directives:{sticky:H}};var O_=function(){var e=this,s=e._self._c;return s("div",{directives:[{name:"sticky",rawName:"v-sticky"}],staticClass:"action-bar mt-4 mb-3 position-sticky ShowEntityListField__action-bar",on:{"stuck-change":function(a){e.stuck=a.detail}}},[s("div",{staticClass:"row align-items-center"},[s("div",{staticClass:"col position-relative"},[s("EntityListTitle",{attrs:{count:e.count}},[s("Breadcrumb",{attrs:{items:e.breadcrumb}})],1)],1),s("div",{staticClass:"col-auto position-relative"},[s("div",{staticClass:"row justify-content-end flex-nowrap gx-3"},[e.canReorder&&!e.selecting?[e.reordering?[s("div",{staticClass:"col-auto"},[s("Button",{attrs:{outline:""},on:{click:e.handleReorderButtonClicked}},[e._v(" "+e._s(e.l("action_bar.list.reorder_button.cancel"))+" ")])],1),s("div",{staticClass:"col-auto"},[s("Button",{on:{click:e.handleReorderSubmitButtonClicked}},[e._v(" "+e._s(e.l("action_bar.list.reorder_button.finish"))+" ")])],1)]:[s("div",{staticClass:"col-auto"},[s("Button",{attrs:{outline:""},on:{click:e.handleReorderButtonClicked}},[e._v(" "+e._s(e.l("action_bar.list.reorder_button"))+" ")])],1)]]:e._e(),e.canSelect&&!e.reordering?[e.selecting?[s("div",{staticClass:"col-auto"},[s("Button",{key:"cancel",attrs:{outline:""},on:{click:e.handleSelectCancelled}},[e._v(" "+e._s(e.l("action_bar.list.reorder_button.cancel"))+" ")])],1)]:[s("div",{staticClass:"col-auto"},[s("Button",{key:"select",attrs:{outline:""},on:{click:e.handleSelectButtonClicked}},[e._v(" "+e._s(e.l("action_bar.list.select_button"))+" ")])],1)]]:e._e(),e.dropdownCommands&&e.dropdownCommands.flat().length&&!e.reordering?[s("div",{staticClass:"col-auto"},[s("CommandsDropdown",{staticClass:"bg-white",attrs:{small:!1,outline:!e.selecting,commands:e.dropdownCommands,disabled:e.reordering,selecting:e.selecting},on:{select:e.handleCommandSelected},scopedSlots:e._u([{key:"text",fn:function(){return[e._v(" "+e._s(e.l("entity_list.commands.entity.label"))+" "),e.selecting?[e._v(" ("+e._s(e.selectedCount)+" selected) ")]:e._e()]},proxy:!0}],null,!1,3264030395)})],1)]:e._e(),e.primaryCommand&&!e.reordering&&!e.selecting?[s("div",{staticClass:"col-auto"},[s("Button",{on:{click:function(a){return e.handleCommandSelected(e.primaryCommand)}}},[e._v(" "+e._s(e.primaryCommand.label)+" ")])],1)]:e._e(),e.canCreate&&!e.reordering&&!e.selecting?[s("div",{staticClass:"col-auto"},[e.hasForms?[s("MultiformDropdown",{attrs:{forms:e.forms,right:""},on:{select:e.handleCreateFormSelected}})]:[s("Button",{attrs:{disabled:e.reordering||e.selecting},on:{click:e.handleCreateButtonClicked}},[e._v(" "+e._s(e.l("action_bar.list.create_button"))+" ")])]],2)]:e._e()],2)])])])},E_=[],I_=r(B_,O_,E_,!1,null,null,null,null);const T_=I_.exports,A_={name:"SharpEntityListPage",components:{EntityList:oa,ActionBarList:T_},data(){return{ready:!1}},watch:{query:"handleQueryChanged","$route.query":"init"},computed:{...A("entity-list",["query"]),entityKey(){return this.$route.params.entityKey}},methods:{handleQueryChanged(t){const e=this.$router.resolve({query:t}).route;this.$route.fullPath!==e.fullPath&&this.$router.push({query:{...t}})},handleError(t){this.$emit("error",t)},async init(){await this.$store.dispatch("entity-list/setQuery",{...this.$route.query}),this.ready=!0}},created(){this.init()}};var R_=function(){var e=this,s=e._self._c;return s("div",{staticClass:"SharpEntityListPage",attrs:{"data-popover-boundary":""}},[s("div",{staticClass:"container"},[e.ready?[s("EntityList",{attrs:{"entity-key":e.entityKey,module:"entity-list"},on:{error:e.handleError},scopedSlots:e._u([{key:"action-bar",fn:function({props:a,listeners:n}){return[s("ActionBarList",e._g(e._b({},"ActionBarList",a,!1),n))]}}],null,!1,4144326494)})]:e._e()],2)])},D_=[],P_=r(A_,R_,D_,!1,null,null,null,null);const z_=P_.exports,M_=[{name:"entity-list",path:"/s-list/:entityKey",component:z_}];function j_(t,{router:e,store:s}){s.registerModule("entity-list",la),e.addRoutes(M_)}function N_({entityKey:t,instanceId:e}){return v.get(`show/${t}/${e||""}`).then(s=>s.data)}function V_({entityKey:t,instanceId:e}){return v.delete(`show/${t}/${e||""}`).then(s=>s.data)}function U_({entityKey:t,instanceId:e,commandKey:s,data:a}){return v.post(`show/${t}/command/${s}/${e||""}`,{...a},{responseType:"blob"})}function H_({entityKey:t,instanceId:e,commandKey:s,query:a}){return v.get(`show/${t}/command/${s}${e?`/${e}`:""}/form`,{params:{...a}}).then(n=>n.data)}function q_({entityKey:t,instanceId:e,value:s}){return v.post(`show/${t}/state/${e||""}`,{value:s}).then(a=>a.data)}const bt="SET_ENTITY_KEY",yt="SET_INSTANCE_ID",Ct="SET_SHOW_VIEW",K_={namespaced:!0,modules:{filters:oe,"entity-lists":{namespaced:!0}},state:{entityKey:null,instanceId:null,show:null},mutations:{[Ct](t,e){t.show=e},[bt](t,e){t.entityKey=e},[yt](t,e){t.instanceId=e}},getters:{entityKey(t){return t.entityKey},instanceId(t){return t.instanceId},config(t){return t.show.config},fields(t){return t.show.fields},layout(t){return t.show.layout},data(t){return t.show.data},locales(t){var e;return(e=t.show)==null?void 0:e.locales},breadcrumb(t){return t.show.breadcrumb},authorizations(t){return t.show.authorizations},canEdit(t,e){return e.authorizations.update},canChangeState(t,e){return!!e.config.state&&e.config.state.authorization},authorizedCommands(t,e){return((e.config.commands||{}).instance||[]).map(a=>a.filter(n=>n.authorization))},instanceState(t,e){return e.config.state?e.data[e.config.state.attribute]:null},instanceStateOptions(t,e){var s;return(s=e.config.state)==null?void 0:s.values.find(a=>a.value===e.instanceState)},stateValues(t,e){var s;return(s=e.config.state)==null?void 0:s.values}},actions:{async get({state:t,commit:e}){const s=await N_({entityKey:t.entityKey,instanceId:t.instanceId});return e(Ct,s),s},delete({state:t}){return V_({entityKey:t.entityKey,instanceId:t.instanceId})},postCommand({state:t},{command:e,data:s}){return U_({entityKey:t.entityKey,instanceId:t.instanceId,commandKey:e.key,data:s})},getCommandForm({state:t},{command:e,query:s}){return H_({entityKey:t.entityKey,instanceId:t.instanceId,commandKey:e.key,query:s})},postState({state:t,getters:e},s){return q_({entityKey:t.entityKey,instanceId:t.instanceId,attribute:e.config.state.attribute,value:s})},setEntityKey({commit:t},e){t(bt,e)},setInstanceId({commit:t},e){t(yt,e)}}},G_={mixins:[y],components:{DropdownSeparator:U,LocaleSelect:le,Breadcrumb:xe,CommandsDropdown:L,Dropdown:$,DropdownItem:x,StateIcon:De,Button:_,ModalSelect:Re},props:{commands:Array,formUrl:String,backUrl:String,canEdit:Boolean,editDisabled:Boolean,canChangeState:Boolean,showBackButton:Boolean,state:[String,Number],stateOptions:Object,stateValues:Array,breadcrumb:Array,showBreadcrumb:Boolean,currentLocale:String,locales:Array,canDelete:Boolean},data(){return{showTitle:!1}},computed:{hasCommands(){var t;return((t=this.commands)==null?void 0:t.flat().length)>0},hasState(){return!!this.state},title(){var t;return this.breadcrumb&&this.showBreadcrumb?(t=this.breadcrumb[this.breadcrumb.length-1])==null?void 0:t.name:null}},methods:{handleEditButtonClicked(){this.$emit("edit")},handleCommandSelected(t){this.$emit("command",t)},handleStateChanged(t){this.$emit("state-change",t)},handleDeleteClicked(){this.$emit("delete")},handleScroll(){this.showTitle=document.querySelector(".ShowPage__content").getBoundingClientRect().top<0},handleLocaleChanged(t){this.$emit("locale-change",t)}}};var W_=function(){var e=this,s=e._self._c;return s("div",{staticClass:"action-bar mt-4 mb-3"},[s("div",{staticClass:"row align-items-center gx-3"},[s("div",{staticClass:"col"},[e.showBreadcrumb?[s("Breadcrumb",{attrs:{items:e.breadcrumb}})]:e._e()],2),e.locales&&e.locales.length?[s("div",{staticClass:"col-auto"},[s("LocaleSelect",{attrs:{outline:"",right:"",locale:e.currentLocale,locales:e.locales},on:{change:e.handleLocaleChanged}})],1)]:e._e(),e.hasState?[s("div",{staticClass:"col-auto"},[s("Dropdown",{attrs:{"toggle-class":{"bg-white":!e.canChangeState},"show-caret":e.canChangeState,outline:"",right:"",disabled:!e.canChangeState},scopedSlots:e._u([{key:"text",fn:function(){return[s("StateIcon",{staticClass:"me-1",staticStyle:{"vertical-align":"-.125em"},attrs:{color:e.stateOptions?e.stateOptions.color:"#fff"}}),s("span",{staticClass:"text-truncate"},[e._v(e._s(e.stateOptions?e.stateOptions.label:e.state))])]},proxy:!0}],null,!1,2123308645)},[e._l(e.stateValues,function(a){return[s("DropdownItem",{key:a.value,attrs:{active:e.state===a.value},nativeOn:{mouseup:function(n){return n.preventDefault(),e.handleStateChanged(a.value)}}},[s("StateIcon",{staticClass:"me-1",staticStyle:{"vertical-align":"-.125em"},attrs:{color:a.color}}),s("span",{staticClass:"text-truncate"},[e._v(e._s(a.label))])],1)]})],2)],1)]:e._e(),e.hasCommands||e.canDelete?[s("div",{staticClass:"col-auto"},[s("CommandsDropdown",{attrs:{outline:"",small:!1,commands:e.commands},on:{select:e.handleCommandSelected},scopedSlots:e._u([{key:"text",fn:function(){return[e._v(" "+e._s(e.l("entity_list.commands.instance.label"))+" ")]},proxy:!0},e.canDelete?{key:"append",fn:function(){return[e.hasCommands?[s("DropdownSeparator")]:e._e(),s("DropdownItem",{attrs:{"link-class":"text-danger"},on:{click:e.handleDeleteClicked}},[e._v(" "+e._s(e.l("action_bar.form.delete_button"))+" ")])]},proxy:!0}:null],null,!0)})],1)]:e._e(),e.canEdit?[s("div",{staticClass:"col-auto"},[s("Button",{attrs:{href:e.formUrl,disabled:e.editDisabled}},[e._v(" "+e._s(e.l("action_bar.show.edit_button"))+" ")])],1)]:e._e()],2)])},Q_=[],Y_=r(G_,W_,Q_,!1,null,null,null,null);const X_=Y_.exports,J_={mixins:[y],components:{CommandsDropdown:L,MultiformDropdown:da,Button:_},props:{ready:Boolean,count:Number,hasSearchQuery:Boolean,primaryCommand:Object,dropdownCommands:Array,forms:Array,canCreate:Boolean,canReorder:Boolean,canSelect:Boolean,reordering:Boolean,selecting:Boolean,selectedCount:Number,collapsed:Boolean,hasActiveQuery:Boolean,sticky:Boolean},data(){return{stuck:!1}},computed:{hasForms(){return this.forms&&this.forms.length>0},hasLeftControls(){return!1},hasRightControls(){return this.canReorder||this.canCreate||!!this.primaryCommand||this.hasDropdownCommands},hasOuterTitle(){return this.$slots.default&&(!this.ready||this.hasLeftControls)},hasDropdownCommands(){var t;return((t=this.dropdownCommands)==null?void 0:t.flat().length)>0},barVisible(){return this.collapsed?!this.hasLeftControls:!0}},methods:{handleFilterChanged(t,e){this.$emit("filter-change",t,e)},handleReorderButtonClicked(){this.$emit("reorder-click"),document.activeElement.blur()},handleReorderSubmitButtonClicked(){this.$emit("reorder-submit")},handleCommandSelected(t){this.$emit("command",t)},handleCreateButtonClicked(){this.$emit("create")},handleCreateFormSelected(t){this.$emit("create",t)},handleSelectButtonClicked(){this.$emit("select-click")},handleSelectCancelled(){this.$emit("select-cancel")}},directives:{sticky:H}};var Z_=function(){var e=this,s=e._self._c;return s("div",{directives:[{name:"sticky",rawName:"v-sticky",value:e.sticky,expression:"sticky"}],staticClass:"action-bar",class:{"position-sticky":e.sticky},on:{"stuck-change":function(a){e.stuck=a.detail}}},[s("div",{staticClass:"position-relative"},[e.hasOuterTitle?[s("div",{staticClass:"mb-2"},[e._t("default")],2)]:e._e(),e.ready&&e.barVisible?[s("div",{staticClass:"row align-items-end align-content-end",attrs:{"data-sticky-anchor":""}},[s("div",{staticClass:"col-sm align-self-end"},[e._t("default")],2),e.hasRightControls&&!e.collapsed?[s("div",{staticClass:"col-sm-auto mb-2"},[s("div",{staticClass:"row flex-nowrap justify-content-end g-2 gx-md-3"},[e.canReorder?[s("div",{staticClass:"col-auto"},[e.reordering?[s("div",{staticClass:"row gx-3"},[s("div",{staticClass:"col-auto"},[s("Button",{attrs:{outline:"",small:""},on:{click:e.handleReorderButtonClicked}},[e._v(" "+e._s(e.l("action_bar.list.reorder_button.cancel"))+" ")])],1),s("div",{staticClass:"col-auto"},[s("Button",{attrs:{variant:"primary",small:""},on:{click:e.handleReorderSubmitButtonClicked}},[e._v(" "+e._s(e.l("action_bar.list.reorder_button.finish"))+" ")])],1)])]:[s("Button",{attrs:{outline:"",small:""},on:{click:e.handleReorderButtonClicked}},[e._v(" "+e._s(e.l("action_bar.list.reorder_button"))+" ")])]],2)]:e._e(),e.canSelect&&!e.reordering?[e.selecting?[s("div",{staticClass:"col-auto"},[s("Button",{key:"cancel",attrs:{small:"",outline:""},on:{click:e.handleSelectCancelled}},[e._v(" "+e._s(e.l("action_bar.list.reorder_button.cancel"))+" ")])],1)]:[s("div",{staticClass:"col-auto"},[s("Button",{key:"select",attrs:{small:"",outline:""},on:{click:e.handleSelectButtonClicked}},[e._v(" "+e._s(e.l("action_bar.list.select_button"))+" ")])],1)]]:e._e(),e.hasDropdownCommands&&!e.reordering?[s("div",{staticClass:"col-auto"},[s("CommandsDropdown",{staticClass:"bg-white",attrs:{small:"",outline:!e.selecting,commands:e.dropdownCommands,disabled:e.reordering,selecting:e.selecting},on:{select:e.handleCommandSelected},scopedSlots:e._u([{key:"text",fn:function(){return[e._v(" "+e._s(e.l("entity_list.commands.entity.label"))+" "),e.selecting?[e._v(" ("+e._s(e.selectedCount)+" selected) ")]:e._e()]},proxy:!0}],null,!1,3264030395)})],1)]:e._e(),e.primaryCommand&&!e.reordering?[s("div",{staticClass:"col-auto"},[s("Button",{attrs:{variant:"primary",small:""},on:{click:function(a){return e.handleCommandSelected(e.primaryCommand)}}},[e._v(" "+e._s(e.primaryCommand.label)+" ")])],1)]:e._e(),e.canCreate&&!e.reordering?[s("div",{staticClass:"col-auto"},[s("div",{staticClass:"action-bar__element"},[e.hasForms?[s("MultiformDropdown",{attrs:{forms:e.forms,variant:"primary",right:"",small:""},on:{select:e.handleCreateFormSelected}})]:[s("Button",{attrs:{variant:"primary",small:""},on:{click:e.handleCreateButtonClicked}},[e._v(" "+e._s(e.l("action_bar.list.create_button"))+" ")])]],2)])]:e._e()],2)])]:e._e()],2)]:e._e()],2)])},eg=[],tg=r(J_,Z_,eg,!1,null,null,null,null);const sg=tg.exports,ag={props:{label:String}};var ng=function(){var e=this,s=e._self._c;return s("div",[e.label?[s("div",{staticClass:"show-field__label form-label"},[e._v(e._s(e.label))])]:e._e(),s("div",{staticClass:"show-field__content"},[e._t("default")],2)],2)},ig=[],rg=r(ag,ng,ig,!1,null,null,null,null);const q=rg.exports;function K(t,e,{lazy:s}={}){t.$watch(e,a=>{t.$emit("visible-change",a)},{immediate:!s})}const lg={mixins:[y],components:{EntityListTitle:ca,EntityList:oa,CommandsDropdown:L,ActionBar:sg,FieldLayout:q},props:{fieldKey:String,entityListKey:String,showCreateButton:Boolean,showReorderButton:Boolean,showSearchField:Boolean,showEntityState:Boolean,showCount:Boolean,hiddenFilters:Object,hiddenCommands:Object,label:String,emptyVisible:Boolean,collapsable:Boolean},data(){return{list:null,collapsed:this.collapsable&&!this.getFocusedItem(),focusedItem:this.getFocusedItem(),sticky:!1}},computed:{classes(){return{"ShowEntityListField--collapsed":this.collapsed}},storeModule(){return`show/entity-lists/${this.fieldKey}`},query(){return this.storeGetter("query")},filters(){return this.storeGetter("filters/rootFilters")},getFiltersQueryParams(){return this.storeGetter("filters/getQueryParams")},filtersValues(){return this.storeGetter("filters/values")},isVisible(){var t;if(this.hasCollapse||this.emptyVisible)return!0;if(this.list){const{data:e,authorizations:s}=this.list;return!!(((t=e.list.items)==null?void 0:t.length)>0||this.showCreateButton&&s.create||this.hasActiveQuery)}},visibleFilters(){return this.hiddenFilters?this.filters.filter(t=>!(t.key in this.hiddenFilters)):this.filters},hasActiveQuery(){const t=this.visibleFilters.some(e=>this.filtersValues[e.key]!=null);return!!this.query.search||t},hasCollapse(){return this.collapsable}},methods:{hasCommands(t){return t&&t.some(e=>e&&e.length>0)},storeGetter(t){return this.$store.getters[`${this.storeModule}/${t}`]},async handleChanged(t){this.list=t,await this.$nextTick(),this.layout()},handleDetailsToggle(t){this.collapsed=!t.target.open},getFocusedItem(){const t=Hr();if(t!=null&&t.name&&jr(t.params.entityKey,this.entityListKey)&&t.params.instanceId&&t.path.length>this.$route.path.length)return Number(t.params.instanceId)},layout(){this.sticky=this.$el.offsetHeight>window.innerHeight-al()}},created(){const t=this.storeModule.split("/");this.$store.hasModule(t)||this.$store.registerModule(t,la),this.hiddenFilters&&this.$store.dispatch(`${this.storeModule}/setQuery`,this.getFiltersQueryParams(this.hiddenFilters)),K(this,()=>this.isVisible,{lazy:!0})},mounted(){if(this.focusedItem){const t=this.$el.getBoundingClientRect();window.scrollBy(0,t.top-100)}window.addEventListener("resize",()=>this.layout())}};var og=function(){var e=this,s=e._self._c;return s("FieldLayout",{staticClass:"ShowEntityListField",class:e.classes},[s("EntityList",{attrs:{"entity-key":e.entityListKey,module:e.storeModule,"show-create-button":e.showCreateButton,"show-reorder-button":e.showReorderButton,"show-search-field":e.showSearchField,"show-entity-state":e.showEntityState,"hidden-commands":e.hiddenCommands,filters:e.visibleFilters,visible:!e.collapsed,"focused-item":e.focusedItem,inline:""},on:{change:e.handleChanged,reordering:function(a){return e.$emit("reordering",a)}},scopedSlots:e._u([{key:"action-bar",fn:function({props:a,listeners:n}){return[s("ActionBar",e._g(e._b({staticClass:"ShowEntityListField__action-bar",attrs:{collapsed:e.collapsed,"has-active-query":e.hasActiveQuery,sticky:e.sticky}},"ActionBar",a,!1),n),[e.hasCollapse?[s("div",{staticClass:"section__header section__header--collapsable position-relative"},[s("div",{staticClass:"row align-items-center gx-0 h-100"},[s("div",{staticClass:"col-auto"},[s("details",{attrs:{open:!e.collapsed},on:{toggle:e.handleDetailsToggle}},[s("summary",{staticClass:"stretched-link"},[s("span",{staticClass:"visually-hidden"},[e._v(e._s(e.label))])])])]),s("div",{staticClass:"col"},[s("EntityListTitle",{attrs:{count:e.showCount?a.count:null}},[s("h2",{staticClass:"ShowEntityListField__label section__title mb-0"},[e._v(" "+e._s(e.label)+" ")])])],1)])])]:[s("div",{staticClass:"section__header d-grid"},[s("EntityListTitle",{attrs:{count:e.showCount?a.count:null}},[s("h2",{staticClass:"ShowEntityListField__label section__title mb-0"},[e._v(" "+e._s(e.label)+" ")])])],1)]],2)]}}])})],1)},dg=[],cg=r(lg,og,dg,!1,null,null,null,null);const ug=cg.exports;function $t(t){const e=document.createElement("div");return e.innerHTML=t,e.textContent}function hg(t,e){const s=[...t.matchAll(/\S+\s*/g)];return s.length>e?s.slice(0,e).map(a=>a[0]).join(""):t}function mg(t){var e;return{name:`Embed_${t.tag}`,template:` - - - - - - `,components:{EmbedRenderer:Zs},inject:["state"],props:{...(e=t.attributes)==null?void 0:e.filter(s=>s!=="slot").reduce((s,a)=>({...s,[a]:null}),{})},data(){return{index:0}},computed:{embedOptions(){return t},embedData(){var a;const s=this.state.embeds[t.key][this.index];return{...(a=t.attributes)==null?void 0:a.reduce((n,i)=>({...n,[i]:Js(this.$props[i])}),{}),...s}}},created(){this.index=this.state.embeds[t.key].length,this.state.embeds[t.key].push(this.embedData),is(this.embedOptions.tag)}}}const pg={components:{Button:_,FieldLayout:q},props:{value:Object,label:String,collapsed:{type:Boolean,default:!0},root:{type:Boolean,default:!0}},data(){return{thumbnailWidth:0}},computed:{...A("show",["entityKey","instanceId"]),classes(){return{"ShowFileField--has-label":!!this.label,"ShowFileField--has-placeholder":!this.hasThumbnail,"ShowFileField--root":this.root}},thumbnailColClasses(){return{"ShowFileField__thumbnail-col--collapsed":!this.hasThumbnail&&this.collapsed}},downloadUrl(){var t,e;return ws({entityKey:this.entityKey,instanceId:this.instanceId,disk:(t=this.value)==null?void 0:t.disk,path:(e=this.value)==null?void 0:e.path})},fileName(){var t;return((t=this.value)==null?void 0:t.name)??""},hasThumbnail(){return!!this.thumbnailUrl},thumbnailUrl(){var t;return(t=this.value)==null?void 0:t.thumbnail},thumbnailStyle(){return{"max-height":this.thumbnailWidth?`${this.thumbnailWidth}px`:null}},sizeLabel(){var t;return(t=this.value)!=null&&t.size?Te(this.value.size):null},iconClass(){const t=this.fileName.split(".").pop(),e=vn(t);return e==="fa-file-csv"?`fas ${e}`:`far ${e}`},isVisible(){return!!this.value}},methods:{lang:o,async layout(){this.$refs.thumbnail&&(this.thumbnailWidth=this.$refs.thumbnail.parentElement.offsetWidth)},handleThumbnailLoaded(){this.layout()}},created(){K(this,()=>this.isVisible)},mounted(){this.layout(),this.handleResize=E(this.layout,150),window.addEventListener("resize",this.handleResize)},beforeDestroy(){window.removeEventListener("resize",this.handleResize)}};var fg=function(){var e=this,s=e._self._c;return s("FieldLayout",{staticClass:"ShowFileField",class:e.classes,attrs:{label:e.label}},[s("div",{staticClass:"row mx-n2"},[s("div",{staticClass:"col-3 px-2 align-self-center ShowFileField__thumbnail-col",class:e.thumbnailColClasses},[e.hasThumbnail?[s("div",{staticClass:"ShowFileField__thumbnail-container"},[s("img",{ref:"thumbnail",staticClass:"ShowFileField__thumbnail",style:e.thumbnailStyle,attrs:{src:e.thumbnailUrl,alt:""},on:{load:e.handleThumbnailLoaded}})])]:[s("div",{staticClass:"ShowFileField__placeholder text-center"},[s("i",{class:e.iconClass})])]],2),s("div",{staticClass:"col px-2",staticStyle:{"min-width":"0"}},[s("div",{staticClass:"ShowFileField__name text-truncate mb-2"},[e._v(" "+e._s(e.fileName)+" ")]),s("div",{staticClass:"ShowFileField__info"},[s("div",{staticClass:"row mx-n2 h-100"},[e.sizeLabel?[s("div",{staticClass:"col-auto px-2"},[s("div",{staticClass:"ShowFileField__size text-muted"},[e._v(" "+e._s(e.sizeLabel)+" ")])])]:e._e(),s("div",{staticClass:"col-auto px-2"},[s("div",{staticClass:"text-muted"},[s("i",{staticClass:"fa fas fa-download"}),s("a",{staticStyle:{color:"inherit"},attrs:{href:e.downloadUrl,download:e.fileName}},[e._v(" "+e._s(e.lang("show.file.download"))+" ")])])])],2)])])])])},_g=[],gg=r(pg,fg,_g,!1,null,null,null,null);const ua=gg.exports,vg={components:{ShowFile:ua},inject:["state"],props:{name:String,path:String,disk:String,filterCrop:String,filterRotate:String},computed:{value(){const t={name:this.name,path:this.path,disk:this.disk},e=this.state.files.find(s=>W(s,t));return{...t,...e}},filters(){const t={crop:Ss(this.filterCrop),rotate:ks(this.filterRotate)};return Object.values(t).every(e=>e==null)?null:t}},created(){this.state.files.push({name:this.name,path:this.path,disk:this.disk,filters:this.filters})}};var bg=function(){var e=this,s=e._self._c;return s("ShowFile",{staticClass:"embed",attrs:{value:e.value,root:!1}})},yg=[],Cg=r(vg,bg,yg,!1,null,null,null,null);const wt=Cg.exports,$g={props:{content:String}};var wg=function(){var e=this,s=e._self._c;return s("div",{staticClass:"card mb-3 html-content overflow-auto",attrs:{"data-html-content":"true"}},[s("div",{staticClass:"card-body"},[s("pre",{staticClass:"overflow-visible mb-0"},[e._v(e._s(e.content))])])])},Sg=[],kg=r($g,wg,Sg,!1,null,null,null,null);const xg=kg.exports,Fg={props:{content:String,embeds:Object},provide(){return{state:this.state}},data(){return{state:{files:[],embeds:{}}}},watch:{content:"handleContentChanged"},computed:{component(){return{template:`

${this.formattedContent}
`,components:{"x-sharp-file":wt,"x-sharp-image":wt,"html-content":xg,...Object.values(this.embeds??{}).reduce((t,e)=>({...t,[e.tag]:mg(e)}),{})}}},formattedContent(){const t=document.createElement("template");return t.innerHTML=this.content,t.content.querySelectorAll("[data-html-content]").forEach(e=>{const s=document.createElement("html-content");s.setAttribute("content",e.innerHTML.trim()),t.content.insertBefore(s,e),t.content.removeChild(e)}),t.innerHTML}},methods:{async init(){const t=this.$store.getters["show/entityKey"],e=this.$store.getters["show/instanceId"],s=this.state.files;s.length>0&&(this.state.files=await Me({entityKey:t,instanceId:e,files:s,thumbnailWidth:xs,thumbnailHeight:Fs})),Object.entries(this.state.embeds).filter(([a,n])=>n.length>0).forEach(async([a,n])=>{const i=await Xs({entityKey:t,instanceId:e,embedKey:a,embeds:n});this.state.embeds={...this.state.embeds,[a]:i}})},initState(){this.state.files=[],this.state.embeds=Object.fromEntries(Object.entries(this.embeds??{}).map(([t])=>[t,[]]))},async handleContentChanged(){this.initState(),await this.$nextTick(),await this.init()}},created(){this.initState()},mounted(){this.init()}};var Lg=function(){var e=this,s=e._self._c;return s(e.component,{tag:"component"})},Bg=[],Og=r(Fg,Lg,Bg,!1,null,null,null,null);const Eg=Og.exports,Ig={mixins:[y],components:{FieldLayout:q,TextRenderer:Eg},props:{value:[Object,String],collapseToWordCount:Number,label:String,emptyVisible:Boolean,html:Boolean,localized:Boolean,locale:String,embeds:Object},data(){return{expanded:!1}},computed:{classes(){return{"ShowTextField--html":this.html}},resolvedValue(){var t;return this.localized?(t=this.value)==null?void 0:t[this.locale]:this.value},currentContent(){return this.resolvedValue?this.hasCollapsed&&!this.expanded?this.collapsedContent:this.html?this.resolvedValue:$t(this.resolvedValue).trim():null},hasCollapsed(){return!!this.collapsedContent},collapsedContent(){if(!this.collapseToWordCount||!this.value)return null;const t=this.resolvedValue.trim(),e=$t(t),s=this.html?t:e,a=hg(e,this.collapseToWordCount);return a.lengththis.isVisible)}};var Tg=function(){var e=this,s=e._self._c;return s("FieldLayout",{staticClass:"ShowTextField",class:e.classes,attrs:{label:e.label}},[e.html?[s("TextRenderer",{staticClass:"ShowTextField__content",attrs:{content:e.currentContent,embeds:e.embeds}})]:[s("div",{staticClass:"ShowTextField__content"},[e._v(e._s(e.currentContent))])],e.hasCollapsed?[s("div",{staticClass:"mt-2"},[s("a",{staticClass:"ShowTextField__more",attrs:{href:"#"},on:{click:function(a){return a.preventDefault(),e.handleToggleClicked.apply(null,arguments)}}},[e.expanded?[e._v(" - "+e._s(e.l("show.text.show_less"))+" ")]:[e._v(" + "+e._s(e.l("show.text.show_more"))+" ")]],2)])]:e._e()],2)},Ag=[],Rg=r(Ig,Tg,Ag,!1,null,null,null,null);const Dg=Rg.exports,Pg={components:{FieldLayout:q},props:{value:String,label:String},computed:{isVisible(){return!!this.value}},created(){K(this,()=>this.isVisible)}};var zg=function(){var e=this,s=e._self._c;return s("FieldLayout",{staticClass:"ShowPictureField"},[s("div",{staticClass:"text-center"},[s("img",{staticClass:"ShowPictureField__thumbnail",attrs:{src:e.value,alt:""}})])])},Mg=[],jg=r(Pg,zg,Mg,!1,null,null,null,null);const Ng=jg.exports,Vg={components:{Grid:R,UnknownField:Le,FieldLayout:q},props:{value:Array,itemFields:{type:Object,required:!0},layout:Object,label:String,emptyVisible:Boolean},computed:{isEmpty(){return!this.value||this.value.length===0},isVisible(){return!this.isEmpty||this.emptyVisible},classes(){return{"ShowListField--empty":this.isEmpty}},fileFieldsCollapsed(){return this.allValuesOfType("file").every(e=>e&&!e.thumbnail)}},methods:{lang:o,fieldOptions(t){const e=this.itemFields?{...this.itemFields[t.key]}:null;return e||console.error(`Show list field: unknown field "${t.key}"`),e.type==="file"&&(e.collapsed=this.fileFieldsCollapsed),e},fieldValue(t,e){return t?t[e.key]:null},allValuesOfType(t){return(this.value||[]).reduce((e,s)=>[...e,...Object.entries(s).filter(([a])=>{const n=this.itemFields[a];return n&&n.type===t}).map(([a,n])=>n)],[])}},created(){K(this,()=>this.isVisible)}};var Ug=function(){var e=this,s=e._self._c;return s("FieldLayout",{staticClass:"ShowListField",class:e.classes,attrs:{label:e.label}},[s("div",{staticClass:"ShowListField__content"},[e.isEmpty?[s("em",{staticClass:"ShowListField__empty text-muted"},[e._v(e._s(e.lang("show.list.empty")))])]:[s("div",{staticClass:"ShowListField__list"},[e._l(e.value,function(a){return[s("div",{staticClass:"ShowListField__item"},[s("Grid",{staticClass:"ShowListField__fields-grid",attrs:{rows:e.layout.item},scopedSlots:e._u([{key:"default",fn:function({itemLayout:n}){return[e.fieldOptions(n)?[s("ShowField",{attrs:{options:e.fieldOptions(n),value:e.fieldValue(a,n),"config-identifier":n.key,root:!1}})]:[s("UnknownField",{attrs:{name:n.key}})]]}}],null,!0)})],1)]})],2)]],2)])},Hg=[],qg=r(Vg,Ug,Hg,!1,null,null,null,null);const Kg=qg.exports,Gg={entityList:ug,text:Dg,picture:Ng,file:ua,list:Kg};function Wg(t){return ss(t)?as(t):Gg[t]}const Qg={mixins:[os],props:{value:{},options:Object,layout:Object,locale:String,locales:Array,collapsable:Boolean,root:{type:Boolean,default:!0}},data(){return{visible:!0}},computed:{component(){return this.options?Wg(this.options.type):null},props(){return{...this.options}},classes(){return[`show-field--${this.options.type}`]},isVisible(){return!!this.component&&this.visible}},methods:{handleVisiblityChanged(t){this.visible=t,this.$emit("visible-change",t)}}};var Yg=function(){var e=this,s=e._self._c;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.isVisible,expression:"isVisible"}],staticClass:"show-field",class:e.classes},[s(e.component,e._g(e._b({tag:"component",attrs:{"field-key":e.options.key,"field-config-identifier":e.mergedConfigIdentifier,value:e.value,layout:e.layout,collapsable:e.collapsable,root:e.root,locale:e.locale,locales:e.locales},on:{"visible-change":e.handleVisiblityChanged}},"component",e.props,!1),e.$listeners))],1)},Xg=[],Jg=r(Qg,Yg,Xg,!1,null,null,null,null);const ha=Jg.exports,Zg={components:{Grid:R,CommandsDropdown:L,SectionTitle:ms},props:{section:Object,fieldsRowClass:Function,collapsable:Boolean,layout:{type:String,validator:t=>["card","contents"].includes(t),default:"card"},commands:Array},data(){return{collapsed:this.collapsable}},computed:{classes(){return[`ShowSection--layout-${this.layout}`]},hasCollapse(){return this.collapsable},hasCommands(){var t;return((t=this.commands)==null?void 0:t.flat().length)>0},wrapperElement(){return this.hasCollapse?"details":"div"}},methods:{lang:o,handleCommandSelected(t){this.$emit("command",t)}}};var ev=function(){var e=this,s=e._self._c;return s("div",{staticClass:"ShowSection",class:e.classes},[s("div",{staticClass:"row"},[e.hasCollapse||e.section.title?[s("div",{staticClass:"col"},[s("SectionTitle",{attrs:{section:e.section,collapsable:e.hasCollapse,collapsed:e.collapsed},on:{toggle:function(a){e.collapsed=!a}}})],1)]:e._e(),e.hasCommands&&!e.collapsed?[s("div",{staticClass:"col-auto align-self-end mb-2"},[s("CommandsDropdown",{attrs:{outline:"",commands:e.commands},on:{select:e.handleCommandSelected},scopedSlots:e._u([{key:"text",fn:function(){return[e._v(" "+e._s(e.lang("entity_list.commands.instance.label"))+" ")]},proxy:!0}],null,!1,511806523)})],1)]:e._e()],2),e.collapsed?e._e():[s("div",{staticClass:"ShowSection__content"},[s("Grid",{staticClass:"ShowSection__grid",attrs:{rows:[e.section.columns],"col-class":()=>"ShowSection__col"},scopedSlots:e._u([{key:"default",fn:function({itemLayout:a}){return[s("Grid",{staticClass:"ShowPage__fields-grid",attrs:{rows:a.fields,"row-class":e.fieldsRowClass},scopedSlots:e._u([{key:"default",fn:function({itemLayout:n}){return[e._t("default",null,{fieldLayout:n})]}}],null,!0)})]}}],null,!1,3782670149)})],1)]],2)},tv=[],sv=r(Zg,ev,tv,!1,null,null,null,null);const av=sv.exports,nv={mixins:[Ae],components:{Section:av,ActionBarShow:X_,Grid:R,ShowField:ha,UnknownField:Le,CommandFormModal:qe,CommandViewPanel:Ke,GlobalMessage:ae,LocaleSelect:le},data(){return{ready:!1,fieldsVisible:null,locale:null,refreshKey:0,reorderingLists:{}}},computed:{...A("show",["entityKey","instanceId","fields","layout","data","config","locales","breadcrumb","authorizations","instanceState","instanceStateOptions","canEdit","authorizedCommands","stateValues","canChangeState"]),classes(){return{"ShowPage--localized":this.localized,"ShowPage--title":this.title}},formUrl(){const t=this.config.multiformAttribute?this.data[this.config.multiformAttribute]:null,e=t?`${this.entityKey}:${t}`:this.entityKey;return ls({entityKey:e,instanceId:this.instanceId},{append:!0})},backUrl(){return es(this.breadcrumb.items)},showBackButton(){return!!this.backUrl},breadcrumbItems(){return this.breadcrumb.items},localized(){var t;return((t=this.locales)==null?void 0:t.length)>0},isSingle(){return!!this.config.isSingle},canDelete(){var t;return((t=this.authorizations)==null?void 0:t.delete)&&!this.isSingle},title(){var t,e;return!this.ready||!this.config.titleAttribute?null:(t=this.fields[this.config.titleAttribute])!=null&&t.localized?(e=this.data[this.config.titleAttribute])==null?void 0:e[this.locale]:this.data[this.config.titleAttribute]},isReordering(){return Object.values(this.reorderingLists).some(t=>t)}},methods:{fieldOptions(t){var s;const e=(s=this.fields)==null?void 0:s[t.key];return e||console.error(`Show page: unknown field "${t.key}"`),e},fieldValue(t){var e;return(e=this.data)==null?void 0:e[t.key]},isFieldVisible(t){var e;return((e=this.fieldsVisible)==null?void 0:e[t.key])!==!1},isSectionCollapsable(t){return t.collapsable&&!this.sectionHasField(t,"entityList")},sectionLayout(t){return this.sectionHasField(t,"entityList")?"contents":"card"},sectionCommands(t){return t.key?(this.config.commands[t.key]??[]).map(e=>e.filter(s=>s.authorization)):null},fieldsRowClass(t){return["ShowPage__fields-row",...t.map(s=>`ShowPage__fields-row--${this.fieldOptions(s).type}`)]},sectionFields(t){return t.columns.reduce((e,s)=>[...e,...s.fields.flat()],[])},isSectionVisible(t){var s;return this.sectionFields(t).some(a=>this.isFieldVisible(a))||((s=this.sectionCommands(t))==null?void 0:s.flat().length)},sectionHasField(t,e){return this.sectionFields(t).some(a=>{const n=this.fieldOptions(a);return n&&n.type===e})},handleFieldVisibilityChanged(t,e){this.fieldsVisible={...this.fieldsVisible,[t]:e}},handleLocaleChanged(t){this.locale=t},handleReordering(t,e){this.reorderingLists={[t]:e}},handleCommandRequested(t){this.sendCommand(t,{postCommand:e=>this.$store.dispatch("show/postCommand",{command:t,data:e}),getForm:e=>this.$store.dispatch("show/getCommandForm",{command:t,query:{...e}})})},handleStateChanged(t){return this.$store.dispatch("show/postState",t).then(e=>{this.handleCommandActionRequested(e.action,e)}).catch(e=>{var a,n;const s=(a=e.response)==null?void 0:a.data;((n=e.response)==null?void 0:n.status)===422&&D(s.message,{title:o("modals.state.422.title"),isError:!0})})},async handleDeleteClicked(){await Yt(this.config.deleteConfirmationText)&&(await this.$store.dispatch("show/delete"),location.replace(this.backUrl??"/"))},handleRefreshCommand(){this.init()},initCommands(){this.addCommandActionHandlers({refresh:this.handleRefreshCommand})},updateDocumentTitle(t){var s,a;const e=(a=(s=t.breadcrumb)==null?void 0:s.items[t.breadcrumb.items.length-1])==null?void 0:a.documentTitleLabel;e&&(document.title=`${e}, ${document.title}`)},async init(){var e;await this.$store.dispatch("show/setEntityKey",this.$route.params.entityKey),await this.$store.dispatch("show/setInstanceId",this.$route.params.instanceId);const t=await Y(this.$store.dispatch("show/get").catch(s=>(this.$emit("error",s),Promise.reject(s))));ns(t.notifications),this.updateDocumentTitle(t),this.localized&&(this.locale=(e=this.locales)==null?void 0:e[0]),this.ready=!0,this.refreshKey++}},beforeMount(){this.init(),this.initCommands()}};var iv=function(){var e=this,s=e._self._c;return s("div",{staticClass:"ShowPage",class:e.classes},[s("div",{staticClass:"container"},[e.ready?[s("ActionBarShow",{attrs:{commands:e.authorizedCommands,state:e.instanceState,"state-options":e.instanceStateOptions,"state-values":e.stateValues,"form-url":e.formUrl,"back-url":e.backUrl,"can-edit":e.canEdit,"can-change-state":e.canChangeState,"show-back-button":e.showBackButton,breadcrumb:e.breadcrumbItems,"show-breadcrumb":e.breadcrumb.visible,"edit-disabled":e.isReordering,locales:e.locales,"current-locale":e.locale,"can-delete":e.canDelete},on:{command:e.handleCommandRequested,"state-change":e.handleStateChanged,"locale-change":e.handleLocaleChanged,delete:e.handleDeleteClicked}}),e.config.globalMessage?[s("GlobalMessage",{attrs:{options:e.config.globalMessage,data:e.data,fields:e.fields}})]:e._e(),s("div",{staticClass:"ShowPage__content"},[e.title||e.localized?[s("div",{class:e.title?"mb-3":"mb-4"},[s("div",{staticClass:"row align-items-center gx-3 gx-md-4"},[e.localized?void 0:e._e(),e.title?[s("div",{staticClass:"col",staticStyle:{"min-width":"0"}},[s("h1",{staticClass:"mb-0 text-truncate h2",attrs:{"data-top-bar-title":""},domProps:{innerHTML:e._s(e.title)}})])]:e._e()],2)])]:e._e(),e._l(e.layout.sections,function(a){return[s("Section",{directives:[{name:"show",rawName:"v-show",value:e.isSectionVisible(a),expression:"isSectionVisible(section)"}],staticClass:"ShowPage__section",attrs:{section:a,layout:e.sectionLayout(a),"fields-row-class":e.fieldsRowClass,collapsable:e.isSectionCollapsable(a),commands:e.sectionCommands(a)},on:{command:e.handleCommandRequested},scopedSlots:e._u([{key:"default",fn:function({fieldLayout:n}){return[e.fieldOptions(n)?[s("ShowField",{key:e.refreshKey,attrs:{options:e.fieldOptions(n),value:e.fieldValue(n),locale:e.locale,locales:e.locales,"config-identifier":n.key,layout:n,collapsable:a.collapsable},on:{"visible-change":function(i){return e.handleFieldVisibilityChanged(n.key,i)},reordering:function(i){return e.handleReordering(n.key,i)}}})]:[s("UnknownField",{attrs:{name:n.key}})]]}}],null,!0)})]})],2)]:[s("ActionBarShow")]],2),s("CommandFormModal",e._g(e._b({attrs:{command:e.currentCommand,"entity-key":e.entityKey,"instance-id":e.instanceId}},"CommandFormModal",e.commandFormProps,!1),e.commandFormListeners)),s("CommandViewPanel",{attrs:{content:e.commandViewContent},on:{close:e.handleCommandViewPanelClosed}})],1)},rv=[],lv=r(nv,iv,rv,!1,null,null,null,null);const ov=lv.exports,dv=[{name:"show",path:"/(.*)?/s-show/:entityKey/:instanceId?",component:ov}];function cv(t,{router:e,store:s}){e.addRoutes(dv),s.registerModule("show",K_),t.component("ShowField",ha)}function uv({query:t}){return v.get("/search",{params:{q:t}}).then(e=>e.data)}const hv={components:{Modal:F,Loading:I},props:{placeholder:String},data(){return{query:"",resultSets:null,loading:!1,modalVisible:!1}},computed:{visibleResultSets(){return(this.resultSets??[]).filter(t=>{var e,s;return((e=t.results)==null?void 0:e.length)||t.showWhenEmpty||((s=t.validationErrors)==null?void 0:s.length)})}},methods:{lang:o,async getResults(t){if(!(t!=null&&t.length))return;const e=setTimeout(()=>{this.loading=!0},200);try{this.resultSets=await uv({query:t})}finally{clearTimeout(e),this.loading=!1}},open(){this.modalVisible=!0,this.query="",this.resultSets=null},handleInput(){this.debouncedGetResults(this.query)},highlight(t){var e;return(e=this.query)!=null&&e.length?t.replace(new RegExp(this.query,"gi"),s=>`${s}`):t},handleWindowKeydown(t){var s;const e=t.target.isContentEditable||/^(?:input|textarea|select)$/i.test(t.target.tagName);(((s=t.key)==null?void 0:s.toLowerCase())==="k"&&(t.metaKey||t.ctrlKey)||!e&&t.key==="/")&&(t.preventDefault(),this.open())}},created(){this.debouncedGetResults=E(this.getResults,200)},mounted(){window.addEventListener("keydown",this.handleWindowKeydown)},destroyed(){window.removeEventListener("keydown",this.handleWindowKeydown)}};var mv=function(){var e=this,s=e._self._c;return s("div",[s("button",{staticClass:"btn d-inline-flex btn-sm btn-outline-light border-0",on:{click:e.open}},[s("svg",{attrs:{width:"20",height:"20",viewBox:"0 0 20 20",fill:"currentColor"}},[s("path",{attrs:{"fill-rule":"evenodd",d:"M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z","clip-rule":"evenodd"}})])]),s("Modal",{attrs:{visible:e.modalVisible,"no-close-on-backdrop":!1,"no-enforce-focus":!1,"hide-footer":"","body-class":"pb-5"},on:{"update:visible":function(a){e.modalVisible=a},shown:function(a){return e.$refs.input.focus()}},scopedSlots:e._u([{key:"title",fn:function(){return[e._v(" "+e._s(e.lang("action_bar.list.search.placeholder"))+" ")]},proxy:!0}])},[s("div",{staticClass:"position-relative"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.query,expression:"query"}],ref:"input",staticClass:"form-control pe-4.5",attrs:{type:"text",placeholder:e.placeholder},domProps:{value:e.query},on:{input:[function(a){a.target.composing||(e.query=a.target.value)},e.handleInput]}}),e.loading?[s("Loading",{staticClass:"position-absolute top-50 translate-middle-y",staticStyle:{right:".5rem"},attrs:{small:""}})]:e._e()],2),e.visibleResultSets.length&&e.query?[s("div",{staticClass:"mt-4.5 mb-n4.5"},[e._l(e.visibleResultSets,function(a){return[s("section",{staticClass:"mb-4.5"},[a.label?[s("h6",{staticClass:"d-flex mb-3"},[a.icon?[s("i",{staticClass:"fa fa-fw me-2",class:a.icon})]:e._e(),e._v(" "+e._s(a.label)+" ")],2)]:e._e(),(a.validationErrors||[]).length?[s("div",{staticClass:"text-danger fs-7"},[e._l(a.validationErrors,function(n){return[s("div",[e._v(e._s(n))])]})],2)]:e._e(),(a.results||[]).length?[s("div",{staticClass:"list-group"},[e._l(a.results,function(n){return[s("a",{staticClass:"list-group-item fs-7 list-group-item-action",attrs:{href:n.link}},[s("div",{domProps:{innerHTML:e._s(e.highlight(n.label))}}),n.detail?[s("div",{staticClass:"fs-8 text-muted",domProps:{innerHTML:e._s(e.highlight(n.detail))}})]:e._e()],2)]})],2)]:(a.validationErrors||[]).length?e._e():[s("div",{staticClass:"text-muted fs-7"},[e._v(" "+e._s(a.emptyStateLabel||e.lang("entity_list.empty_text"))+" ")])]],2)]})],2)]:e._e()],2)],1)},pv=[],fv=r(hv,mv,pv,!1,null,null,null,null);const _v=fv.exports;function gv(t){t.component("sharp-global-search",_v)}const vv={name:"SharpActionView",components:{Modal:F,LoadingOverlay:ne,TopBar:Ml},provide(){return{axiosInstance:Zt()}},data(){return{showErrorPage:!1,errorPageData:null}},computed:{dialogs(){return this.$store.state.dialogs},isLoading(){return this.$store.getters.isLoading}},methods:{handlePageError(t){const{response:{status:e,data:s},config:{method:a}}=t;(a==="get"&&e===404||e===403)&&(this.showErrorPage=!0,this.errorPageData={status:e,message:s.message})}}};var bv=function(){var e=this,s=e._self._c;return s("div",{staticClass:"SharpActionView"},[s("TopBar",{scopedSlots:e._u([{key:"right",fn:function(){return[s("div",{staticClass:"row align-items-center gx-4"},[e.$slots.search?[s("div",{staticClass:"col-auto"},[e._t("search")],2)]:e._e(),s("div",{staticClass:"col-auto"},[e._t("user-dropdown")],2)],2)]},proxy:!0}],null,!0)}),e.showErrorPage?[s("div",{staticClass:"container"},[s("h1",[e._v("Error "+e._s(e.errorPageData.status))]),s("p",[e._v(e._s(e.errorPageData.message))])])]:[s("router-view",{on:{error:e.handlePageError}}),s("notifications",{staticStyle:{top:"6rem",right:"1rem"},attrs:{position:"top right","animation-name":"slideRight",reverse:""},scopedSlots:e._u([{key:"body",fn:function({item:a,close:n}){return[s("div",{staticClass:"toast show mb-3",class:`border-${a.type}`,attrs:{role:"alert","aria-live":"assertive","aria-atomic":"true","data-test":"notification"}},[s("div",{staticClass:"toast-header"},[s("strong",{staticClass:"me-auto"},[e._v(e._s(a.title))]),s("button",{staticClass:"btn-close",attrs:{type:"button","data-test":"close-notification","aria-label":"Close"},on:{click:n}})]),a.text?[s("div",{staticClass:"toast-body",domProps:{innerHTML:e._s(a.text)}})]:e._e()],2)]}}])}),e._l(e.dialogs,function(a){return[s("Modal",e._b({key:a.id,on:{ok:a.okCallback,hidden:a.hiddenCallback}},"Modal",a.props,!1),[s("div",{domProps:{innerHTML:e._s(a.text)}})])]})],s("LoadingOverlay",{staticClass:"SharpActionView__loading",attrs:{visible:e.isLoading,fade:""}})],2)},yv=[],Cv=r(vv,bv,yv,!1,null,null,null,null);const $v=Cv.exports,wv={name:"SharpLeftNav",mixins:[Gr("lg")],components:{Loading:I},props:{currentEntity:Object,title:String,collapseable:{type:Boolean,default:!0},hidden:Boolean},data(){return{ready:!1,collapsed:!1,state:"expanded"}},watch:{collapsed:{handler(t){document.body.classList.toggle("leftNav--collapsed",this.collapsed),this.state=t?"collapsing":"expanding",setTimeout(this.updateState,250)}}},computed:{currentIcon(){var t;return(t=this.currentEntity)==null?void 0:t.icon},classes(){return[`SharpLeftNav--${this.state}`,{"SharpLeftNav--collapseable":this.collapseable,"SharpLeftNav--hidden":this.hidden}]}},methods:{updateState(){this.state=this.collapsed?"collapsed":"expanded"},handleClicked(){this.collapsed&&(this.collapsed=!1)},async init(){this.$store.dispatch("setCurrentEntity",this.currentEntity),this.ready=!0}},created(){this.collapsed=this.isViewportSmall&&!this.hidden,this.updateState(),this.init(),this.hidden&&document.body.classList.add("leftNav--hidden")}};var Sv=function(){var e=this,s=e._self._c;return s("nav",{staticClass:"SharpLeftNav",class:e.classes,attrs:{role:"navigation","aria-label":"Menu Sharp"},on:{click:e.handleClicked}},[s("div",{staticClass:"SharpLeftNav__top-icon"},[s("i",{staticClass:"fa",class:e.currentIcon})]),s("div",{staticClass:"flex-grow-0"},[s("div",{staticClass:"SharpLeftNav__title-container position-relative"},[e._t("title",function(){return[s("h2",{staticClass:"SharpLeftNav__title mb-0"},[e._v(e._s(e.title))])]})],2)]),e.hidden?e._e():[s("div",{staticClass:"flex-grow-1 position-relative",staticStyle:{"min-height":"0"}},[s("div",{staticClass:"SharpLeftNav__content d-flex flex-column"},[s("div",{staticClass:"SharpLeftNav__inner flex-grow-1 pb-5",staticStyle:{"min-height":"0"}},[e._t("default")],2),s("a",{staticClass:"SharpLeftNav__collapse-button btn btn-text",attrs:{href:"#"},on:{click:function(a){a.preventDefault(),a.stopPropagation(),e.collapsed=!e.collapsed}}},[s("svg",{staticClass:"SharpLeftNav__collapse-arrow",staticStyle:{fill:"currentColor"},attrs:{width:"8",height:"12",viewBox:"0 0 8 12","fill-rule":"evenodd"}},[s("path",{attrs:{d:"M7.5 10.6L2.8 6l4.7-4.6L6.1 0 0 6l6.1 6z"}})])])])])]],2)},kv=[],xv=r(wv,Sv,kv,!1,null,null,null,null);const Fv=xv.exports;h.use(yn);h.use(Nn,{installComponents:!1});h.use(Ft);h.use(xt);const B=V(),O=T();h.use(_p,{store:O,router:B});h.use(d_,{store:O,router:B});h.use(j_,{store:O,router:B});h.use(Zp,{store:O,router:B});h.use(sp,{store:O,router:B});h.use(cv,{store:O,router:B});h.use(ql,{store:O,router:B});h.use(gv,{store:O,router:B});h.component("sharp-action-view",$v);h.component("sharp-left-nav",Fv);h.component("sharp-nav-section",ci);h.component("sharp-nav-item",ii);new h({el:"#sharp-app",store:O,router:B}); diff --git a/resources/assets/dist/assets/sharp-bff8c9cb.css b/resources/assets/dist/assets/sharp-bff8c9cb.css deleted file mode 100644 index 93b3e4d46..000000000 --- a/resources/assets/dist/assets/sharp-bff8c9cb.css +++ /dev/null @@ -1 +0,0 @@ -.vue-map-container{position:relative}.vue-map-container .vue-map{left:0;right:0;top:0;bottom:0;position:absolute}.vue-map-hidden{display:none}.unknown-field[data-v-494eccfb]{font-family:Courier New,Courier,monospace;background:rgba(255,0,0,.25);border:1px solid #f00;padding:.5em 1em;font-weight:700} diff --git a/resources/assets/dist/assets/vendor-0e44235e.js b/resources/assets/dist/assets/vendor-0e44235e.js deleted file mode 100644 index 028779873..000000000 --- a/resources/assets/dist/assets/vendor-0e44235e.js +++ /dev/null @@ -1,1097 +0,0 @@ -var Dn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function ti(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var rv=function(t){return t&&t.Math==Math&&t},wr=rv(typeof globalThis=="object"&&globalThis)||rv(typeof window=="object"&&window)||rv(typeof self=="object"&&self)||rv(typeof Dn=="object"&&Dn)||function(){return this}()||Function("return this")(),Oy={},Zn=function(t){try{return!!t()}catch{return!0}},tW=Zn,ya=!tW(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7}),rW=Zn,Ty=!rW(function(){var t=(function(){}).bind();return typeof t!="function"||t.hasOwnProperty("prototype")}),nW=Ty,nv=Function.prototype.call,xa=nW?nv.bind(nv):function(){return nv.apply(nv,arguments)},om={},C4={}.propertyIsEnumerable,A4=Object.getOwnPropertyDescriptor,iW=A4&&!C4.call({1:2},1);om.f=iW?function(e){var r=A4(this,e);return!!r&&r.enumerable}:C4;var Md=function(t,e){return{enumerable:!(t&1),configurable:!(t&2),writable:!(t&4),value:e}},O4=Ty,T4=Function.prototype,aW=T4.bind,hS=T4.call,oW=O4&&aW.bind(hS,hS),wn=O4?function(t){return t&&oW(t)}:function(t){return t&&function(){return hS.apply(t,arguments)}},E4=wn,sW=E4({}.toString),lW=E4("".slice),su=function(t){return lW(sW(t),8,-1)},cW=wr,uW=wn,fW=Zn,hW=su,cw=cW.Object,dW=uW("".split),rA=fW(function(){return!cw("z").propertyIsEnumerable(0)})?function(t){return hW(t)=="String"?dW(t,""):cw(t)}:cw,pW=wr,gW=pW.TypeError,sm=function(t){if(t==null)throw gW("Can't call method on "+t);return t},mW=rA,vW=sm,lu=function(t){return mW(vW(t))},ci=function(t){return typeof t=="function"},bW=ci,Wa=function(t){return typeof t=="object"?t!==null:bW(t)},uw=wr,yW=ci,xW=function(t){return yW(t)?t:void 0},cu=function(t,e){return arguments.length<2?xW(uw[t]):uw[t]&&uw[t][e]},wW=wn,Dd=wW({}.isPrototypeOf),_W=cu,kW=_W("navigator","userAgent")||"",P4=wr,fw=kW,VE=P4.process,UE=P4.Deno,qE=VE&&VE.versions||UE&&UE.version,GE=qE&&qE.v8,Qo,W0;GE&&(Qo=GE.split("."),W0=Qo[0]>0&&Qo[0]<4?1:+(Qo[0]+Qo[1]));!W0&&fw&&(Qo=fw.match(/Edge\/(\d+)/),(!Qo||Qo[1]>=74)&&(Qo=fw.match(/Chrome\/(\d+)/),Qo&&(W0=+Qo[1])));var nA=W0,XE=nA,SW=Zn,iA=!!Object.getOwnPropertySymbols&&!SW(function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&XE&&XE<41}),CW=iA,M4=CW&&!Symbol.sham&&typeof Symbol.iterator=="symbol",AW=wr,OW=cu,TW=ci,EW=Dd,PW=M4,MW=AW.Object,aA=PW?function(t){return typeof t=="symbol"}:function(t){var e=OW("Symbol");return TW(e)&&EW(e.prototype,MW(t))},DW=wr,LW=DW.String,Ey=function(t){try{return LW(t)}catch{return"Object"}},IW=wr,$W=ci,RW=Ey,NW=IW.TypeError,oA=function(t){if($W(t))return t;throw NW(RW(t)+" is not a function")},FW=oA,Py=function(t,e){var r=t[e];return r==null?void 0:FW(r)},zW=wr,hw=xa,dw=ci,pw=Wa,jW=zW.TypeError,BW=function(t,e){var r,n;if(e==="string"&&dw(r=t.toString)&&!pw(n=hw(r,t))||dw(r=t.valueOf)&&!pw(n=hw(r,t))||e!=="string"&&dw(r=t.toString)&&!pw(n=hw(r,t)))return n;throw jW("Can't convert object to primitive value")},D4={exports:{}},L4=!1,ZE=wr,HW=Object.defineProperty,sA=function(t,e){try{HW(ZE,t,{value:e,configurable:!0,writable:!0})}catch{ZE[t]=e}return e},YW=wr,WW=sA,KE="__core-js_shared__",VW=YW[KE]||WW(KE,{}),lA=VW,JE=lA;(D4.exports=function(t,e){return JE[t]||(JE[t]=e!==void 0?e:{})})("versions",[]).push({version:"3.21.1",mode:"global",copyright:"© 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.21.1/LICENSE",source:"https://github.com/zloirock/core-js"});var My=D4.exports,UW=wr,qW=sm,GW=UW.Object,uu=function(t){return GW(qW(t))},XW=wn,ZW=uu,KW=XW({}.hasOwnProperty),wa=Object.hasOwn||function(e,r){return KW(ZW(e),r)},JW=wn,QW=0,eV=Math.random(),tV=JW(1 .toString),Dy=function(t){return"Symbol("+(t===void 0?"":t)+")_"+tV(++QW+eV,36)},rV=wr,nV=My,QE=wa,iV=Dy,eP=iA,I4=M4,gh=nV("wks"),of=rV.Symbol,tP=of&&of.for,aV=I4?of:of&&of.withoutSetter||iV,Kn=function(t){if(!QE(gh,t)||!(eP||typeof gh[t]=="string")){var e="Symbol."+t;eP&&QE(of,t)?gh[t]=of[t]:I4&&tP?gh[t]=tP(e):gh[t]=aV(e)}return gh[t]},oV=wr,sV=xa,rP=Wa,nP=aA,lV=Py,cV=BW,uV=Kn,fV=oV.TypeError,hV=uV("toPrimitive"),dV=function(t,e){if(!rP(t)||nP(t))return t;var r=lV(t,hV),n;if(r){if(e===void 0&&(e="default"),n=sV(r,t,e),!rP(n)||nP(n))return n;throw fV("Can't convert object to primitive value")}return e===void 0&&(e="number"),cV(t,e)},pV=dV,gV=aA,Ly=function(t){var e=pV(t,"string");return gV(e)?e:e+""},mV=wr,iP=Wa,dS=mV.document,vV=iP(dS)&&iP(dS.createElement),cA=function(t){return vV?dS.createElement(t):{}},bV=ya,yV=Zn,xV=cA,$4=!bV&&!yV(function(){return Object.defineProperty(xV("div"),"a",{get:function(){return 7}}).a!=7}),wV=ya,_V=xa,kV=om,SV=Md,CV=lu,AV=Ly,OV=wa,TV=$4,aP=Object.getOwnPropertyDescriptor;Oy.f=wV?aP:function(e,r){if(e=CV(e),r=AV(r),TV)try{return aP(e,r)}catch{}if(OV(e,r))return SV(!_V(kV.f,e,r),e[r])};var Va={},EV=ya,PV=Zn,R4=EV&&PV(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!=42}),N4=wr,MV=Wa,DV=N4.String,LV=N4.TypeError,_a=function(t){if(MV(t))return t;throw LV(DV(t)+" is not an object")},IV=wr,$V=ya,RV=$4,NV=R4,iv=_a,oP=Ly,FV=IV.TypeError,gw=Object.defineProperty,zV=Object.getOwnPropertyDescriptor,mw="enumerable",vw="configurable",bw="writable";Va.f=$V?NV?function(e,r,n){if(iv(e),r=oP(r),iv(n),typeof e=="function"&&r==="prototype"&&"value"in n&&bw in n&&!n[bw]){var i=zV(e,r);i&&i[bw]&&(e[r]=n.value,n={configurable:vw in n?n[vw]:i[vw],enumerable:mw in n?n[mw]:i[mw],writable:!1})}return gw(e,r,n)}:gw:function(e,r,n){if(iv(e),r=oP(r),iv(n),RV)try{return gw(e,r,n)}catch{}if("get"in n||"set"in n)throw FV("Accessors not supported");return"value"in n&&(e[r]=n.value),e};var jV=ya,BV=Va,HV=Md,lm=jV?function(t,e,r){return BV.f(t,e,HV(1,r))}:function(t,e,r){return t[e]=r,t},F4={exports:{}},YV=wn,WV=ci,pS=lA,VV=YV(Function.toString);WV(pS.inspectSource)||(pS.inspectSource=function(t){return VV(t)});var uA=pS.inspectSource,UV=wr,qV=ci,GV=uA,sP=UV.WeakMap,XV=qV(sP)&&/native code/.test(GV(sP)),ZV=My,KV=Dy,lP=ZV("keys"),Iy=function(t){return lP[t]||(lP[t]=KV(t))},cm={},JV=XV,z4=wr,yw=wn,QV=Wa,eU=lm,xw=wa,ww=lA,tU=Iy,rU=cm,cP="Object already initialized",gS=z4.TypeError,nU=z4.WeakMap,V0,kg,U0,iU=function(t){return U0(t)?kg(t):V0(t,{})},aU=function(t){return function(e){var r;if(!QV(e)||(r=kg(e)).type!==t)throw gS("Incompatible receiver, "+t+" required");return r}};if(JV||ww.state){var Pu=ww.state||(ww.state=new nU),oU=yw(Pu.get),uP=yw(Pu.has),sU=yw(Pu.set);V0=function(t,e){if(uP(Pu,t))throw new gS(cP);return e.facade=t,sU(Pu,t,e),e},kg=function(t){return oU(Pu,t)||{}},U0=function(t){return uP(Pu,t)}}else{var mh=tU("state");rU[mh]=!0,V0=function(t,e){if(xw(t,mh))throw new gS(cP);return e.facade=t,eU(t,mh,e),e},kg=function(t){return xw(t,mh)?t[mh]:{}},U0=function(t){return xw(t,mh)}}var Gl={set:V0,get:kg,has:U0,enforce:iU,getterFor:aU},mS=ya,lU=wa,j4=Function.prototype,cU=mS&&Object.getOwnPropertyDescriptor,fA=lU(j4,"name"),uU=fA&&(function(){}).name==="something",fU=fA&&(!mS||mS&&cU(j4,"name").configurable),B4={EXISTS:fA,PROPER:uU,CONFIGURABLE:fU},hU=wr,fP=ci,dU=wa,hP=lm,pU=sA,gU=uA,H4=Gl,mU=B4.CONFIGURABLE,vU=H4.get,bU=H4.enforce,yU=String(String).split("String");(F4.exports=function(t,e,r,n){var i=n?!!n.unsafe:!1,a=n?!!n.enumerable:!1,o=n?!!n.noTargetGet:!1,s=n&&n.name!==void 0?n.name:e,l;if(fP(r)&&(String(s).slice(0,7)==="Symbol("&&(s="["+String(s).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!dU(r,"name")||mU&&r.name!==s)&&hP(r,"name",s),l=bU(r),l.source||(l.source=yU.join(typeof s=="string"?s:""))),t===hU){a?t[e]=r:pU(e,r);return}else i?!o&&t[e]&&(a=!0):delete t[e];a?t[e]=r:hP(t,e,r)})(Function.prototype,"toString",function(){return fP(this)&&vU(this).source||gU(this)});var tl=F4.exports,um={},xU=Math.ceil,wU=Math.floor,$y=function(t){var e=+t;return e!==e||e===0?0:(e>0?wU:xU)(e)},_U=$y,kU=Math.max,SU=Math.min,Y4=function(t,e){var r=_U(t);return r<0?kU(r+e,0):SU(r,e)},CU=$y,AU=Math.min,W4=function(t){return t>0?AU(CU(t),9007199254740991):0},OU=W4,fu=function(t){return OU(t.length)},TU=lu,EU=Y4,PU=fu,dP=function(t){return function(e,r,n){var i=TU(e),a=PU(i),o=EU(n,a),s;if(t&&r!=r){for(;a>o;)if(s=i[o++],s!=s)return!0}else for(;a>o;o++)if((t||o in i)&&i[o]===r)return t||o||0;return!t&&-1}},V4={includes:dP(!0),indexOf:dP(!1)},MU=wn,_w=wa,DU=lu,LU=V4.indexOf,IU=cm,pP=MU([].push),U4=function(t,e){var r=DU(t),n=0,i=[],a;for(a in r)!_w(IU,a)&&_w(r,a)&&pP(i,a);for(;e.length>n;)_w(r,a=e[n++])&&(~LU(i,a)||pP(i,a));return i},hA=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],$U=U4,RU=hA,NU=RU.concat("length","prototype");um.f=Object.getOwnPropertyNames||function(e){return $U(e,NU)};var Ry={};Ry.f=Object.getOwnPropertySymbols;var FU=cu,zU=wn,jU=um,BU=Ry,HU=_a,YU=zU([].concat),WU=FU("Reflect","ownKeys")||function(e){var r=jU.f(HU(e)),n=BU.f;return n?YU(r,n(e)):r},gP=wa,VU=WU,UU=Oy,qU=Va,q4=function(t,e,r){for(var n=VU(e),i=qU.f,a=UU.f,o=0;oo;)fq.f(e,s=i[o++],n[s]);return e};var gq=cu,mq=gq("document","documentElement"),vq=_a,bq=Ny,mP=hA,yq=cm,xq=mq,wq=cA,_q=Iy,vP=">",bP="<",vS="prototype",bS="script",X4=_q("IE_PROTO"),Sw=function(){},Z4=function(t){return bP+bS+vP+t+bP+"/"+bS+vP},yP=function(t){t.write(Z4("")),t.close();var e=t.parentWindow.Object;return t=null,e},kq=function(){var t=wq("iframe"),e="java"+bS+":",r;return t.style.display="none",xq.appendChild(t),t.src=String(e),r=t.contentWindow.document,r.open(),r.write(Z4("document.F=Object")),r.close(),r.F},av,r0=function(){try{av=new ActiveXObject("htmlfile")}catch{}r0=typeof document<"u"?document.domain&&av?yP(av):kq():yP(av);for(var t=mP.length;t--;)delete r0[vS][mP[t]];return r0()};yq[X4]=!0;var Ld=Object.create||function(e,r){var n;return e!==null?(Sw[vS]=vq(e),n=new Sw,Sw[vS]=null,n[X4]=e):n=r0(),r===void 0?n:bq.f(n,r)},Sq=Kn,Cq=Ld,Aq=Va,yS=Sq("unscopables"),xS=Array.prototype;xS[yS]==null&&Aq.f(xS,yS,{configurable:!0,value:Cq(null)});var dA=function(t){xS[yS][t]=!0},Oq=Fi,Tq=V4.includes,Eq=dA;Oq({target:"Array",proto:!0},{includes:function(e){return Tq(this,e,arguments.length>1?arguments[1]:void 0)}});Eq("includes");var Pq=wr,Mq=wn,zy=function(t,e){return Mq(Pq[t].prototype[e])},Dq=zy;Dq("Array","includes");var Lq=su,jy=Array.isArray||function(e){return Lq(e)=="Array"},xP=wn,Iq=oA,$q=Ty,Rq=xP(xP.bind),Hf=function(t,e){return Iq(t),e===void 0?t:$q?Rq(t,e):function(){return t.apply(e,arguments)}},Nq=wr,Fq=jy,zq=fu,jq=Hf,Bq=Nq.TypeError,K4=function(t,e,r,n,i,a,o,s){for(var l=i,f=0,d=o?jq(o,s):!1,g,b;f0&&Fq(g))b=zq(g),l=K4(t,e,g,b,l,a-1)-1;else{if(l>=9007199254740991)throw Bq("Exceed the acceptable array length");t[l]=g}l++}f++}return l},Hq=K4,Yq=Kn,Wq=Yq("toStringTag"),J4={};J4[Wq]="z";var pA=String(J4)==="[object z]",Vq=wr,Uq=pA,qq=ci,n0=su,Gq=Kn,Xq=Gq("toStringTag"),Zq=Vq.Object,Kq=n0(function(){return arguments}())=="Arguments",Jq=function(t,e){try{return t[e]}catch{}},hm=Uq?n0:function(t){var e,r,n;return t===void 0?"Undefined":t===null?"Null":typeof(r=Jq(e=Zq(t),Xq))=="string"?r:Kq?n0(e):(n=n0(e))=="Object"&&qq(e.callee)?"Arguments":n},Qq=wn,eG=Zn,Q4=ci,tG=hm,rG=cu,nG=uA,e6=function(){},iG=[],t6=rG("Reflect","construct"),gA=/^\s*(?:class|function)\b/,aG=Qq(gA.exec),oG=!gA.exec(e6),Sp=function(e){if(!Q4(e))return!1;try{return t6(e6,iG,e),!0}catch{return!1}},r6=function(e){if(!Q4(e))return!1;switch(tG(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return oG||!!aG(gA,nG(e))}catch{return!0}};r6.sham=!0;var mA=!t6||eG(function(){var t;return Sp(Sp.call)||!Sp(Object)||!Sp(function(){t=!0})||t})?r6:Sp,sG=wr,wP=jy,lG=mA,cG=Wa,uG=Kn,fG=uG("species"),_P=sG.Array,hG=function(t){var e;return wP(t)&&(e=t.constructor,lG(e)&&(e===_P||wP(e.prototype))?e=void 0:cG(e)&&(e=e[fG],e===null&&(e=void 0))),e===void 0?_P:e},dG=hG,vA=function(t,e){return new(dG(t))(e===0?0:e)},pG=Fi,gG=Hq,mG=uu,vG=fu,bG=$y,yG=vA;pG({target:"Array",proto:!0},{flat:function(){var e=arguments.length?arguments[0]:void 0,r=mG(this),n=vG(r),i=yG(r,0);return i.length=gG(i,r,r,n,0,e===void 0?1:bG(e)),i}});var xG=dA;xG("flat");var wG=zy;wG("Array","flat");var _G=Wa,kG=su,SG=Kn,CG=SG("match"),n6=function(t){var e;return _G(t)&&((e=t[CG])!==void 0?!!e:kG(t)=="RegExp")},AG=wr,OG=n6,TG=AG.TypeError,EG=function(t){if(OG(t))throw TG("The method doesn't accept regular expressions");return t},PG=wr,MG=hm,DG=PG.String,Xl=function(t){if(MG(t)==="Symbol")throw TypeError("Cannot convert a Symbol value to a string");return DG(t)},LG=Kn,IG=LG("match"),$G=function(t){var e=/./;try{"/./"[t](e)}catch{try{return e[IG]=!1,"/./"[t](e)}catch{}}return!1},RG=Fi,NG=wn,FG=EG,zG=sm,kP=Xl,jG=$G,BG=NG("".indexOf);RG({target:"String",proto:!0,forced:!jG("includes")},{includes:function(e){return!!~BG(kP(zG(this)),kP(FG(e)),arguments.length>1?arguments[1]:void 0)}});var HG=zy;HG("String","includes");var YG=Zn,WG=!YG(function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}),VG=wr,UG=wa,qG=ci,GG=uu,XG=Iy,ZG=WG,SP=XG("IE_PROTO"),wS=VG.Object,KG=wS.prototype,i6=ZG?wS.getPrototypeOf:function(t){var e=GG(t);if(UG(e,SP))return e[SP];var r=e.constructor;return qG(r)&&e instanceof r?r.prototype:e instanceof wS?KG:null},JG=Zn,QG=ci,CP=i6,eX=tl,tX=Kn,_S=tX("iterator"),a6=!1,_f,Cw,Aw;[].keys&&(Aw=[].keys(),"next"in Aw?(Cw=CP(CP(Aw)),Cw!==Object.prototype&&(_f=Cw)):a6=!0);var rX=_f==null||JG(function(){var t={};return _f[_S].call(t)!==t});rX&&(_f={});QG(_f[_S])||eX(_f,_S,function(){return this});var o6={IteratorPrototype:_f,BUGGY_SAFARI_ITERATORS:a6},nX=Va.f,iX=wa,aX=Kn,AP=aX("toStringTag"),Zl=function(t,e,r){t&&!r&&(t=t.prototype),t&&!iX(t,AP)&&nX(t,AP,{configurable:!0,value:e})},dm={},oX=o6.IteratorPrototype,sX=Ld,lX=Md,cX=Zl,uX=dm,fX=function(){return this},bA=function(t,e,r,n){var i=e+" Iterator";return t.prototype=sX(oX,{next:lX(+!n,r)}),cX(t,i,!1),uX[i]=fX,t},hX=_a,s6=function(){var t=hX(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e},dX=wr,pX=mA,gX=Ey,mX=dX.TypeError,vX=function(t){if(pX(t))return t;throw mX(gX(t)+" is not a constructor")},OP=_a,bX=vX,yX=Kn,xX=yX("species"),wX=function(t,e){var r=OP(t).constructor,n;return r===void 0||(n=OP(r)[xX])==null?e:bX(n)},yA=wn,_X=$y,kX=Xl,SX=sm,CX=yA("".charAt),TP=yA("".charCodeAt),AX=yA("".slice),EP=function(t){return function(e,r){var n=kX(SX(e)),i=_X(r),a=n.length,o,s;return i<0||i>=a?t?"":void 0:(o=TP(n,i),o<55296||o>56319||i+1===a||(s=TP(n,i+1))<56320||s>57343?t?CX(n,i):o:t?AX(n,i,i+2):(o-55296<<10)+(s-56320)+65536)}},xA={codeAt:EP(!1),charAt:EP(!0)},OX=xA.charAt,TX=function(t,e,r){return e+(r?OX(t,e).length:1)},wA=Zn,EX=wr,_A=EX.RegExp,kA=wA(function(){var t=_A("a","y");return t.lastIndex=2,t.exec("abcd")!=null}),PX=kA||wA(function(){return!_A("a","y").sticky}),MX=kA||wA(function(){var t=_A("^r","gy");return t.lastIndex=2,t.exec("str")!=null}),DX={BROKEN_CARET:MX,MISSED_STICKY:PX,UNSUPPORTED_Y:kA},LX=Zn,IX=wr,$X=IX.RegExp,RX=LX(function(){var t=$X(".","s");return!(t.dotAll&&t.exec(` -`)&&t.flags==="s")}),NX=Zn,FX=wr,zX=FX.RegExp,jX=NX(function(){var t=zX("(?b)","g");return t.exec("b").groups.a!=="b"||"b".replace(t,"$c")!=="bc"}),zh=xa,By=wn,BX=Xl,HX=s6,YX=DX,WX=My,VX=Ld,UX=Gl.get,qX=RX,GX=jX,XX=WX("native-string-replace",String.prototype.replace),q0=RegExp.prototype.exec,kS=q0,ZX=By("".charAt),KX=By("".indexOf),JX=By("".replace),Ow=By("".slice),SS=function(){var t=/a/,e=/b*/g;return zh(q0,t,"a"),zh(q0,e,"a"),t.lastIndex!==0||e.lastIndex!==0}(),l6=YX.BROKEN_CARET,CS=/()??/.exec("")[1]!==void 0,QX=SS||CS||l6||qX||GX;QX&&(kS=function(e){var r=this,n=UX(r),i=BX(e),a=n.raw,o,s,l,f,d,g,b;if(a)return a.lastIndex=r.lastIndex,o=zh(kS,a,i),r.lastIndex=a.lastIndex,o;var y=n.groups,k=l6&&r.sticky,C=zh(HX,r),A=r.source,P=0,M=i;if(k&&(C=JX(C,"y",""),KX(C,"g")===-1&&(C+="g"),M=Ow(i,r.lastIndex),r.lastIndex>0&&(!r.multiline||r.multiline&&ZX(i,r.lastIndex-1)!==` -`)&&(A="(?: "+A+")",M=" "+M,P++),s=new RegExp("^(?:"+A+")",C)),CS&&(s=new RegExp("^"+A+"$(?!\\s)",C)),SS&&(l=r.lastIndex),f=zh(q0,k?s:r,M),k?f?(f.input=Ow(f.input,P),f[0]=Ow(f[0],P),f.index=r.lastIndex,r.lastIndex+=f[0].length):r.lastIndex=0:SS&&f&&(r.lastIndex=r.global?f.index+f[0].length:l),CS&&f&&f.length>1&&zh(XX,f[0],s,function(){for(d=1;da;)s=n[a++],(!RZ||jZ(r,s))&&BZ(o,t?[s,r[s]]:r[s]);return o}},v6={entries:LP(!0),values:LP(!1)},HZ=Fi,YZ=v6.entries;HZ({target:"Object",stat:!0},{entries:function(e){return YZ(e)}});var WZ=wr,Yf=WZ,VZ=Yf;VZ.Object.entries;var b6=wr,UZ=ci,qZ=b6.String,GZ=b6.TypeError,XZ=function(t){if(typeof t=="object"||UZ(t))return t;throw GZ("Can't set "+qZ(t)+" as a prototype")},ZZ=wn,KZ=_a,JZ=XZ,y6=Object.setPrototypeOf||("__proto__"in{}?function(){var t=!1,e={},r;try{r=ZZ(Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set),r(e,[]),t=e instanceof Array}catch{}return function(i,a){return KZ(i),JZ(a),t?r(i,a):i.__proto__=a,i}}():void 0),QZ=Fi,eK=xa,x6=B4,tK=ci,rK=bA,IP=i6,$P=y6,nK=Zl,iK=lm,Ew=tl,aK=Kn,oK=dm,w6=o6,sK=x6.PROPER,lK=x6.CONFIGURABLE,RP=w6.IteratorPrototype,ov=w6.BUGGY_SAFARI_ITERATORS,Cp=aK("iterator"),NP="keys",Ap="values",FP="entries",cK=function(){return this},CA=function(t,e,r,n,i,a,o){rK(r,e,n);var s=function(P){if(P===i&&b)return b;if(!ov&&P in d)return d[P];switch(P){case NP:return function(){return new r(this,P)};case Ap:return function(){return new r(this,P)};case FP:return function(){return new r(this,P)}}return function(){return new r(this)}},l=e+" Iterator",f=!1,d=t.prototype,g=d[Cp]||d["@@iterator"]||i&&d[i],b=!ov&&g||s(i),y=e=="Array"&&d.entries||g,k,C,A;if(y&&(k=IP(y.call(new t)),k!==Object.prototype&&k.next&&(IP(k)!==RP&&($P?$P(k,RP):tK(k[Cp])||Ew(k,Cp,cK)),nK(k,l,!0))),sK&&i==Ap&&g&&g.name!==Ap&&(lK?iK(d,"name",Ap):(f=!0,b=function(){return eK(g,this)})),i)if(C={values:s(Ap),keys:a?b:s(NP),entries:s(FP)},o)for(A in C)(ov||f||!(A in d))&&Ew(d,A,C[A]);else QZ({target:e,proto:!0,forced:ov||f},C);return d[Cp]!==b&&Ew(d,Cp,b,{name:i}),oK[e]=b,C},uK=lu,AA=dA,zP=dm,_6=Gl,fK=Va.f,hK=CA,dK=ya,k6="Array Iterator",pK=_6.set,gK=_6.getterFor(k6),mK=hK(Array,"Array",function(t,e){pK(this,{type:k6,target:uK(t),index:0,kind:e})},function(){var t=gK(this),e=t.target,r=t.kind,n=t.index++;return!e||n>=e.length?(t.target=void 0,{value:void 0,done:!0}):r=="keys"?{value:n,done:!1}:r=="values"?{value:e[n],done:!1}:{value:[n,e[n]],done:!1}},"values"),jP=zP.Arguments=zP.Array;AA("keys");AA("values");AA("entries");if(dK&&jP.name!=="values")try{fK(jP,"name",{value:"values"})}catch{}var vK=Kn,bK=dm,yK=vK("iterator"),xK=Array.prototype,S6=function(t){return t!==void 0&&(bK.Array===t||xK[yK]===t)},wK=hm,BP=Py,_K=dm,kK=Kn,SK=kK("iterator"),Hy=function(t){if(t!=null)return BP(t,SK)||BP(t,"@@iterator")||_K[wK(t)]},CK=wr,AK=xa,OK=oA,TK=_a,EK=Ey,PK=Hy,MK=CK.TypeError,OA=function(t,e){var r=arguments.length<2?PK(t):e;if(OK(r))return TK(AK(r,t));throw MK(EK(t)+" is not iterable")},DK=xa,HP=_a,LK=Py,C6=function(t,e,r){var n,i;HP(t);try{if(n=LK(t,"return"),!n){if(e==="throw")throw r;return r}n=DK(n,t)}catch(a){i=!0,n=a}if(e==="throw")throw r;if(i)throw n;return HP(n),r},IK=wr,$K=Hf,RK=xa,NK=_a,FK=Ey,zK=S6,jK=fu,YP=Dd,BK=OA,HK=Hy,WP=C6,YK=IK.TypeError,i0=function(t,e){this.stopped=t,this.result=e},VP=i0.prototype,TA=function(t,e,r){var n=r&&r.that,i=!!(r&&r.AS_ENTRIES),a=!!(r&&r.IS_ITERATOR),o=!!(r&&r.INTERRUPTED),s=$K(e,n),l,f,d,g,b,y,k,C=function(P){return l&&WP(l,"normal",P),new i0(!0,P)},A=function(P){return i?(NK(P),o?s(P[0],P[1],C):s(P[0],P[1])):o?s(P,C):s(P)};if(a)l=t;else{if(f=HK(t),!f)throw YK(FK(t)+" is not iterable");if(zK(f)){for(d=0,g=jK(t);g>d;d++)if(b=A(t[d]),b&&YP(VP,b))return b;return new i0(!1)}l=BK(t,f)}for(y=l.next;!(k=RK(y,l)).done;){try{b=A(k.value)}catch(P){WP(l,"throw",P)}if(typeof b=="object"&&b&&YP(VP,b))return b}return new i0(!1)},WK=Ly,VK=Va,UK=Md,Yy=function(t,e,r){var n=WK(e);n in t?VK.f(t,n,UK(0,r)):t[n]=r},qK=Fi,GK=TA,XK=Yy;qK({target:"Object",stat:!0},{fromEntries:function(e){var r={};return GK(e,function(n,i){XK(r,n,i)},{AS_ENTRIES:!0}),r}});var ZK=Yf;ZK.Object.fromEntries;var KK={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},JK=cA,Pw=JK("span").classList,UP=Pw&&Pw.constructor&&Pw.constructor.prototype,QK=UP===Object.prototype?void 0:UP,qP=wr,A6=KK,eJ=QK,Wp=mK,Mw=lm,O6=Kn,Dw=O6("iterator"),GP=O6("toStringTag"),Lw=Wp.values,T6=function(t,e){if(t){if(t[Dw]!==Lw)try{Mw(t,Dw,Lw)}catch{t[Dw]=Lw}if(t[GP]||Mw(t,GP,e),A6[e]){for(var r in Wp)if(t[r]!==Wp[r])try{Mw(t,r,Wp[r])}catch{t[r]=Wp[r]}}}};for(var Iw in A6)T6(qP[Iw]&&qP[Iw].prototype,Iw);T6(eJ,"DOMTokenList");var tJ=Fi,rJ=v6.values;tJ({target:"Object",stat:!0},{values:function(e){return rJ(e)}});var nJ=Yf;nJ.Object.values;var iJ=xA.charAt,aJ=Xl,E6=Gl,oJ=CA,P6="String Iterator",sJ=E6.set,lJ=E6.getterFor(P6);oJ(String,"String",function(t){sJ(this,{type:P6,string:aJ(t),index:0})},function(){var e=lJ(this),r=e.string,n=e.index,i;return n>=r.length?{value:void 0,done:!0}:(i=iJ(r,n),e.index+=i.length,{value:i,done:!1})});var cJ=Zn,uJ=Kn,fJ=L4,hJ=uJ("iterator"),M6=!cJ(function(){var t=new URL("b?a=1&b=2&c=3","http://a"),e=t.searchParams,r="";return t.pathname="c%20d",e.forEach(function(n,i){e.delete("b"),r+=i+n}),fJ&&!t.toJSON||!e.sort||t.href!=="http://a/c%20d?a=1&c=3"||e.get("c")!=="3"||String(new URLSearchParams("?a=1"))!=="a=1"||!e[hJ]||new URL("https://a@b").username!=="a"||new URLSearchParams(new URLSearchParams("a=b")).get("a")!=="b"||new URL("http://тест").host!=="xn--e1aybc"||new URL("http://a#б").hash!=="#%D0%B1"||r!=="a1c3"||new URL("http://x",void 0).host!=="x"}),dJ=wr,pJ=Dd,gJ=dJ.TypeError,Wy=function(t,e){if(pJ(e,t))return t;throw gJ("Incorrect invocation")},XP=ya,mJ=wn,vJ=xa,bJ=Zn,$w=Fy,yJ=Ry,xJ=om,wJ=uu,_J=rA,vh=Object.assign,ZP=Object.defineProperty,kJ=mJ([].concat),SJ=!vh||bJ(function(){if(XP&&vh({b:1},vh(ZP({},"a",{enumerable:!0,get:function(){ZP(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var t={},e={},r=Symbol(),n="abcdefghijklmnopqrst";return t[r]=7,n.split("").forEach(function(i){e[i]=i}),vh({},t)[r]!=7||$w(vh({},e)).join("")!=n})?function(e,r){for(var n=wJ(e),i=arguments.length,a=1,o=yJ.f,s=xJ.f;i>a;)for(var l=_J(arguments[a++]),f=o?kJ($w(l),o(l)):$w(l),d=f.length,g=0,b;d>g;)b=f[g++],(!XP||vJ(s,l,b))&&(n[b]=l[b]);return n}:vh,CJ=_a,AJ=C6,OJ=function(t,e,r,n){try{return n?e(CJ(r)[0],r[1]):e(r)}catch(i){AJ(t,"throw",i)}},TJ=wr,EJ=Hf,PJ=xa,MJ=uu,DJ=OJ,LJ=S6,IJ=mA,$J=fu,KP=Yy,RJ=OA,NJ=Hy,JP=TJ.Array,FJ=function(e){var r=MJ(e),n=IJ(this),i=arguments.length,a=i>1?arguments[1]:void 0,o=a!==void 0;o&&(a=EJ(a,i>2?arguments[2]:void 0));var s=NJ(r),l=0,f,d,g,b,y,k;if(s&&!(this==JP&&LJ(s)))for(b=RJ(r,s),y=b.next,d=n?new this:[];!(g=PJ(y,b)).done;l++)k=o?DJ(b,a,[g.value,l],!0):g.value,KP(d,l,k);else for(f=$J(r),d=n?new this(f):JP(f);f>l;l++)k=o?a(r[l],l):r[l],KP(d,l,k);return d.length=l,d},zJ=wr,QP=Y4,jJ=fu,BJ=Yy,HJ=zJ.Array,YJ=Math.max,EA=function(t,e,r){for(var n=jJ(t),i=QP(e,n),a=QP(r===void 0?n:r,n),o=HJ(YJ(a-i,0)),s=0;i=55296&&i<=56319&&r>1,t+=jh(t/e);t>Nw*OS>>1;)t=jh(t/Nw),n+=tg;return jh(n+(Nw+1)*t/(t+VJ))},nQ=function(t){var e=[];t=tQ(t);var r=t.length,n=GJ,i=0,a=qJ,o,s;for(o=0;o=n&&sjh((Rw-i)/g))throw tM(eM);for(i+=(d-n)*g,n=d,o=0;oRw)throw tM(eM);if(s==n){for(var b=i,y=tg;;){var k=y<=a?D6:y>=a+OS?OS:y-a;if(b0;)t[a]=t[--a];a!==n++&&(t[a]=i)}return t},uQ=function(t,e,r,n){for(var i=e.length,a=r.length,o=0,s=0;o0?arguments[0]:void 0;H6(this,new W6(e))},Ag=Uy.prototype;hQ(Ag,{append:function(e,r){bh(arguments.length,2);var n=Jo(this);Xu(n.entries,{key:ro(e),value:ro(r)}),n.updateURL()},delete:function(t){bh(arguments.length,1);for(var e=Jo(this),r=e.entries,n=ro(t),i=0;in.key?1:-1}),e.updateURL()},forEach:function(e){for(var r=Jo(this).entries,n=mQ(e,arguments.length>1?arguments[1]:void 0),i=0,a;i1?pM(arguments[1]):{})}}),zw(Z0)){var Hw=function(e){return z6(this,jw),new Z0(e,arguments.length>1?pM(arguments[1]):{})};jw.constructor=Hw,Hw.prototype=jw,ES({global:!0,forced:!0},{Request:Hw})}}var zQ={URLSearchParams:Uy,getState:Jo},jQ=Fi,DA=ya,BQ=M6,LA=wr,gM=Hf,Ho=wn,HQ=Ny.f,K0=tl,YQ=Wy,DS=wa,IA=SJ,yh=FJ,Xo=EA,WQ=xA.codeAt,VQ=iQ,wl=Xl,UQ=Zl,qQ=$6,V6=zQ,U6=Gl,GQ=U6.set,J0=U6.getterFor("URL"),XQ=V6.URLSearchParams,ZQ=V6.getState,Op=LA.URL,LS=LA.TypeError,Q0=LA.parseInt,KQ=Math.floor,mM=Math.pow,Eo=Ho("".charAt),ts=Ho(/./.exec),Vp=Ho([].join),JQ=Ho(1 .toString),QQ=Ho([].pop),Dh=Ho([].push),vM=Ho("".replace),eee=Ho([].shift),tee=Ho("".split),ng=Ho("".slice),eb=Ho("".toLowerCase),ree=Ho([].unshift),nee="Invalid authority",Yw="Invalid scheme",Mu="Invalid host",bM="Invalid port",q6=/[a-z]/i,iee=/[\d+-.a-z]/i,IS=/\d/,aee=/^0x/i,oee=/^[0-7]+$/,see=/^\d+$/,G6=/^[\da-f]+$/i,lee=/[\0\t\n\r #%/:<>?@[\\\]^|]/,cee=/[\0\t\n\r #/:<>?@[\\\]^|]/,uee=/^[\u0000-\u0020]+|[\u0000-\u0020]+$/g,fee=/[\t\n\r]/g,ko,hee=function(t){var e=tee(t,"."),r,n,i,a,o,s,l;if(e.length&&e[e.length-1]==""&&e.length--,r=e.length,r>4)return t;for(n=[],i=0;i1&&Eo(a,0)=="0"&&(o=ts(aee,a)?16:8,a=ng(a,o==8?1:2)),a==="")s=0;else{if(!ts(o==10?see:o==8?oee:G6,a))return t;s=Q0(a,o)}Dh(n,s)}for(i=0;i=mM(256,5-r))return null}else if(s>255)return null;for(l=QQ(n),i=0;i6))return;for(s=0;b();){if(l=null,s>0)if(b()=="."&&s<4)i++;else return;if(!ts(IS,b()))return;for(;ts(IS,b());){if(f=Q0(b(),10),l===null)l=f;else{if(l==0)return;l=l*10+f}if(l>255)return;i++}e[r]=e[r]*256+l,s++,(s==2||s==4)&&r++}if(s!=4)return;break}else if(b()==":"){if(i++,!b())return}else if(b())return;e[r++]=a}if(n!==null)for(d=r-n,r=7;r!=0&&d>0;)g=e[r],e[r--]=e[n+d-1],e[n+--d]=g;else if(r!=8)return;return e},pee=function(t){for(var e=null,r=1,n=null,i=0,a=0;a<8;a++)t[a]!==0?(i>r&&(e=n,r=i),n=null,i=0):(n===null&&(n=a),++i);return i>r&&(e=n,r=i),e},Tp=function(t){var e,r,n,i;if(typeof t=="number"){for(e=[],r=0;r<4;r++)ree(e,t%256),t=KQ(t/256);return Vp(e,".")}else if(typeof t=="object"){for(e="",n=pee(t),r=0;r<8;r++)i&&t[r]===0||(i&&(i=!1),n===r?(e+=r?":":"::",i=!0):(e+=JQ(t[r],16),r<7&&(e+=":")));return"["+e+"]"}return t},a0={},X6=IA({},a0,{" ":1,'"':1,"<":1,">":1,"`":1}),Z6=IA({},X6,{"#":1,"?":1,"{":1,"}":1}),Ww=IA({},Z6,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),cc=function(t,e){var r=WQ(t,0);return r>32&&r<127&&!DS(e,t)?t:encodeURIComponent(t)},lv={ftp:21,file:null,http:80,https:443,ws:80,wss:443},Up=function(t,e){var r;return t.length==2&&ts(q6,Eo(t,0))&&((r=Eo(t,1))==":"||!e&&r=="|")},yM=function(t){var e;return t.length>1&&Up(ng(t,0,2))&&(t.length==2||(e=Eo(t,2))==="/"||e==="\\"||e==="?"||e==="#")},gee=function(t){return t==="."||eb(t)==="%2e"},mee=function(t){return t=eb(t),t===".."||t==="%2e."||t===".%2e"||t==="%2e%2e"},Vw={},xM={},Uw={},wM={},_M={},qw={},kM={},SM={},cv={},uv={},Gw={},Xw={},Zw={},Kw={},CM={},Jw={},xh={},Ls={},AM={},Du={},yl={},$A=function(t,e,r){var n=wl(t),i,a,o;if(e){if(a=this.parse(n),a)throw LS(a);this.searchParams=null}else{if(r!==void 0&&(i=new $A(r,!0)),a=this.parse(n,null,i),a)throw LS(a);o=ZQ(new XQ),o.bindURL(this),this.searchParams=o}};$A.prototype={type:"URL",parse:function(t,e,r){var n=this,i=e||Vw,a=0,o="",s=!1,l=!1,f=!1,d,g,b,y;for(t=wl(t),e||(n.scheme="",n.username="",n.password="",n.host=null,n.port=null,n.path=[],n.query=null,n.fragment=null,n.cannotBeABaseURL=!1,t=vM(t,uee,"")),t=vM(t,fee,""),d=yh(t);a<=d.length;){switch(g=d[a],i){case Vw:if(g&&ts(q6,g))o+=eb(g),i=xM;else{if(e)return Yw;i=Uw;continue}break;case xM:if(g&&(ts(iee,g)||g=="+"||g=="-"||g=="."))o+=eb(g);else if(g==":"){if(e&&(n.isSpecial()!=DS(lv,o)||o=="file"&&(n.includesCredentials()||n.port!==null)||n.scheme=="file"&&!n.host))return;if(n.scheme=o,e){n.isSpecial()&&lv[n.scheme]==n.port&&(n.port=null);return}o="",n.scheme=="file"?i=Kw:n.isSpecial()&&r&&r.scheme==n.scheme?i=wM:n.isSpecial()?i=SM:d[a+1]=="/"?(i=_M,a++):(n.cannotBeABaseURL=!0,Dh(n.path,""),i=AM)}else{if(e)return Yw;o="",i=Uw,a=0;continue}break;case Uw:if(!r||r.cannotBeABaseURL&&g!="#")return Yw;if(r.cannotBeABaseURL&&g=="#"){n.scheme=r.scheme,n.path=Xo(r.path),n.query=r.query,n.fragment="",n.cannotBeABaseURL=!0,i=yl;break}i=r.scheme=="file"?Kw:qw;continue;case wM:if(g=="/"&&d[a+1]=="/")i=cv,a++;else{i=qw;continue}break;case _M:if(g=="/"){i=uv;break}else{i=Ls;continue}case qw:if(n.scheme=r.scheme,g==ko)n.username=r.username,n.password=r.password,n.host=r.host,n.port=r.port,n.path=Xo(r.path),n.query=r.query;else if(g=="/"||g=="\\"&&n.isSpecial())i=kM;else if(g=="?")n.username=r.username,n.password=r.password,n.host=r.host,n.port=r.port,n.path=Xo(r.path),n.query="",i=Du;else if(g=="#")n.username=r.username,n.password=r.password,n.host=r.host,n.port=r.port,n.path=Xo(r.path),n.query=r.query,n.fragment="",i=yl;else{n.username=r.username,n.password=r.password,n.host=r.host,n.port=r.port,n.path=Xo(r.path),n.path.length--,i=Ls;continue}break;case kM:if(n.isSpecial()&&(g=="/"||g=="\\"))i=cv;else if(g=="/")i=uv;else{n.username=r.username,n.password=r.password,n.host=r.host,n.port=r.port,i=Ls;continue}break;case SM:if(i=cv,g!="/"||Eo(o,a+1)!="/")continue;a++;break;case cv:if(g!="/"&&g!="\\"){i=uv;continue}break;case uv:if(g=="@"){s&&(o="%40"+o),s=!0,b=yh(o);for(var k=0;k65535)return bM;n.port=n.isSpecial()&&P===lv[n.scheme]?null:P,o=""}if(e)return;i=xh;continue}else return bM;break;case Kw:if(n.scheme="file",g=="/"||g=="\\")i=CM;else if(r&&r.scheme=="file")if(g==ko)n.host=r.host,n.path=Xo(r.path),n.query=r.query;else if(g=="?")n.host=r.host,n.path=Xo(r.path),n.query="",i=Du;else if(g=="#")n.host=r.host,n.path=Xo(r.path),n.query=r.query,n.fragment="",i=yl;else{yM(Vp(Xo(d,a),""))||(n.host=r.host,n.path=Xo(r.path),n.shortenPath()),i=Ls;continue}else{i=Ls;continue}break;case CM:if(g=="/"||g=="\\"){i=Jw;break}r&&r.scheme=="file"&&!yM(Vp(Xo(d,a),""))&&(Up(r.path[0],!0)?Dh(n.path,r.path[0]):n.host=r.host),i=Ls;continue;case Jw:if(g==ko||g=="/"||g=="\\"||g=="?"||g=="#"){if(!e&&Up(o))i=Ls;else if(o==""){if(n.host="",e)return;i=xh}else{if(y=n.parseHost(o),y)return y;if(n.host=="localhost"&&(n.host=""),e)return;o="",i=xh}continue}else o+=g;break;case xh:if(n.isSpecial()){if(i=Ls,g!="/"&&g!="\\")continue}else if(!e&&g=="?")n.query="",i=Du;else if(!e&&g=="#")n.fragment="",i=yl;else if(g!=ko&&(i=Ls,g!="/"))continue;break;case Ls:if(g==ko||g=="/"||g=="\\"&&n.isSpecial()||!e&&(g=="?"||g=="#")){if(mee(o)?(n.shortenPath(),g!="/"&&!(g=="\\"&&n.isSpecial())&&Dh(n.path,"")):gee(o)?g!="/"&&!(g=="\\"&&n.isSpecial())&&Dh(n.path,""):(n.scheme=="file"&&!n.path.length&&Up(o)&&(n.host&&(n.host=""),o=Eo(o,0)+":"),Dh(n.path,o)),o="",n.scheme=="file"&&(g==ko||g=="?"||g=="#"))for(;n.path.length>1&&n.path[0]==="";)eee(n.path);g=="?"?(n.query="",i=Du):g=="#"&&(n.fragment="",i=yl)}else o+=cc(g,Z6);break;case AM:g=="?"?(n.query="",i=Du):g=="#"?(n.fragment="",i=yl):g!=ko&&(n.path[0]+=cc(g,a0));break;case Du:!e&&g=="#"?(n.fragment="",i=yl):g!=ko&&(g=="'"&&n.isSpecial()?n.query+="%27":g=="#"?n.query+="%23":n.query+=cc(g,a0));break;case yl:g!=ko&&(n.fragment+=cc(g,X6));break}a++}},parseHost:function(t){var e,r,n;if(Eo(t,0)=="["){if(Eo(t,t.length-1)!="]"||(e=dee(ng(t,1,-1)),!e))return Mu;this.host=e}else if(this.isSpecial()){if(t=VQ(t),ts(lee,t)||(e=hee(t),e===null))return Mu;this.host=e}else{if(ts(cee,t))return Mu;for(e="",r=yh(t),n=0;n1?arguments[1]:void 0,i=GQ(r,new $A(e,!1,n));DA||(r.href=i.serialize(),r.origin=i.getOrigin(),r.protocol=i.getProtocol(),r.username=i.getUsername(),r.password=i.getPassword(),r.host=i.getHost(),r.hostname=i.getHostname(),r.port=i.getPort(),r.pathname=i.getPathname(),r.search=i.getSearch(),r.searchParams=i.getSearchParams(),r.hash=i.getHash())},qy=dd.prototype,So=function(t,e){return{get:function(){return J0(this)[t]()},set:e&&function(r){return J0(this)[e](r)},configurable:!0,enumerable:!0}};DA&&HQ(qy,{href:So("serialize","setHref"),origin:So("getOrigin"),protocol:So("getProtocol","setProtocol"),username:So("getUsername","setUsername"),password:So("getPassword","setPassword"),host:So("getHost","setHost"),hostname:So("getHostname","setHostname"),port:So("getPort","setPort"),pathname:So("getPathname","setPathname"),search:So("getSearch","setSearch"),searchParams:So("getSearchParams"),hash:So("getHash","setHash")});K0(qy,"toJSON",function(){return J0(this).serialize()},{enumerable:!0});K0(qy,"toString",function(){return J0(this).serialize()},{enumerable:!0});if(Op){var OM=Op.createObjectURL,TM=Op.revokeObjectURL;OM&&K0(dd,"createObjectURL",gM(OM,Op)),TM&&K0(dd,"revokeObjectURL",gM(TM,Op))}UQ(dd,"URL");jQ({global:!0,forced:!BQ,sham:!DA},{URL:dd});var vee=Fi,bee=xa;vee({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return bee(URL.prototype.toString,this)}});var yee=Yf;yee.URL;var xee=Zn,wee=Kn,_ee=nA,kee=wee("species"),See=function(t){return _ee>=51||!xee(function(){var e=[],r=e.constructor={};return r[kee]=function(){return{foo:1}},e[t](Boolean).foo!==1})},Cee=Fi,Aee=wr,Oee=Zn,Tee=jy,Eee=Wa,Pee=uu,Mee=fu,EM=Yy,Dee=vA,Lee=See,Iee=Kn,$ee=nA,K6=Iee("isConcatSpreadable"),PM=9007199254740991,MM="Maximum allowed index exceeded",DM=Aee.TypeError,Ree=$ee>=51||!Oee(function(){var t=[];return t[K6]=!1,t.concat()[0]!==t}),Nee=Lee("concat"),Fee=function(t){if(!Eee(t))return!1;var e=t[K6];return e!==void 0?!!e:Tee(t)},zee=!Ree||!Nee;Cee({target:"Array",proto:!0,forced:zee},{concat:function(e){var r=Pee(this),n=Dee(r,0),i=0,a,o,s,l,f;for(a=-1,s=arguments.length;aPM)throw DM(MM);for(o=0;o=PM)throw DM(MM);EM(n,i++,f)}return n.length=i,n}});var jee=Ty,J6=Function.prototype,LM=J6.apply,IM=J6.call,Bee=typeof Reflect=="object"&&Reflect.apply||(jee?IM.bind(LM):function(){return IM.apply(LM,arguments)}),RA={},Hee=su,Yee=lu,Q6=um.f,Wee=EA,eF=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],Vee=function(t){try{return Q6(t)}catch{return Wee(eF)}};RA.f=function(e){return eF&&Hee(e)=="Window"?Vee(e):Q6(Yee(e))};var Uee=wn,qee=Uee([].slice),NA={},Gee=Kn;NA.f=Gee;var $M=Yf,Xee=wa,Zee=NA,Kee=Va.f,Ua=function(t){var e=$M.Symbol||($M.Symbol={});Xee(e,t)||Kee(e,t,{value:Zee.f(t)})},Jee=Hf,Qee=wn,ete=rA,tte=uu,rte=fu,nte=vA,RM=Qee([].push),uc=function(t){var e=t==1,r=t==2,n=t==3,i=t==4,a=t==6,o=t==7,s=t==5||a;return function(l,f,d,g){for(var b=tte(l),y=ete(b),k=Jee(f,d),C=rte(y),A=0,P=g||nte,M=e?P(l,C):r||o?P(l,0):void 0,N,W;C>A;A++)if((s||A in y)&&(N=y[A],W=k(N,A,b),t))if(e)M[A]=W;else if(W)switch(t){case 3:return!0;case 5:return N;case 6:return A;case 2:RM(M,N)}else switch(t){case 4:return!1;case 7:RM(M,N)}return a?-1:n||i?i:M}},ite={forEach:uc(0),map:uc(1),filter:uc(2),some:uc(3),every:uc(4),find:uc(5),findIndex:uc(6),filterReject:uc(7)},Id=Fi,FA=wr,ate=cu,ote=Bee,gm=xa,ste=wn,pd=ya,kf=iA,zA=Zn,pi=wa,lte=jy,cte=ci,ute=Wa,fte=Dd,$S=aA,RS=_a,hte=uu,Gy=lu,jA=Ly,tF=Xl,NS=Md,Og=Ld,rF=Fy,dte=um,nF=RA,FS=Ry,iF=Oy,aF=Va,pte=Ny,oF=om,gte=qee,o0=tl,mm=My,mte=Iy,sF=cm,NM=Dy,lF=Kn,vte=NA,bte=Ua,yte=Zl,cF=Gl,Xy=ite.forEach,Ia=mte("hidden"),Zy="Symbol",Tg="prototype",FM=lF("toPrimitive"),xte=cF.set,zM=cF.getterFor(Zy),Lo=Object[Tg],Fl=FA.Symbol,Tc=Fl&&Fl[Tg],uF=FA.TypeError,Qw=FA.QObject,Ep=ate("JSON","stringify"),fF=iF.f,xc=aF.f,hF=nF.f,wte=oF.f,dF=ste([].push),jl=mm("symbols"),vm=mm("op-symbols"),e_=mm("string-to-symbol-registry"),t_=mm("symbol-to-string-registry"),_te=mm("wks"),zS=!Qw||!Qw[Tg]||!Qw[Tg].findChild,jS=pd&&zA(function(){return Og(xc({},"a",{get:function(){return xc(this,"a",{value:7}).a}})).a!=7})?function(t,e,r){var n=fF(Lo,e);n&&delete Lo[e],xc(t,e,r),n&&t!==Lo&&xc(Lo,e,n)}:xc,r_=function(t,e){var r=jl[t]=Og(Tc);return xte(r,{type:Zy,tag:t,description:e}),pd||(r.description=e),r},Ky=function(e,r,n){e===Lo&&Ky(vm,r,n),RS(e);var i=jA(r);return RS(n),pi(jl,i)?(n.enumerable?(pi(e,Ia)&&e[Ia][i]&&(e[Ia][i]=!1),n=Og(n,{enumerable:NS(0,!1)})):(pi(e,Ia)||xc(e,Ia,NS(1,{})),e[Ia][i]=!0),jS(e,i,n)):xc(e,i,n)},BA=function(e,r){RS(e);var n=Gy(r),i=rF(n).concat(HA(n));return Xy(i,function(a){(!pd||gm(BS,n,a))&&Ky(e,a,n[a])}),e},kte=function(e,r){return r===void 0?Og(e):BA(Og(e),r)},BS=function(e){var r=jA(e),n=gm(wte,this,r);return this===Lo&&pi(jl,r)&&!pi(vm,r)?!1:n||!pi(this,r)||!pi(jl,r)||pi(this,Ia)&&this[Ia][r]?n:!0},pF=function(e,r){var n=Gy(e),i=jA(r);if(!(n===Lo&&pi(jl,i)&&!pi(vm,i))){var a=fF(n,i);return a&&pi(jl,i)&&!(pi(n,Ia)&&n[Ia][i])&&(a.enumerable=!0),a}},gF=function(e){var r=hF(Gy(e)),n=[];return Xy(r,function(i){!pi(jl,i)&&!pi(sF,i)&&dF(n,i)}),n},HA=function(e){var r=e===Lo,n=hF(r?vm:Gy(e)),i=[];return Xy(n,function(a){pi(jl,a)&&(!r||pi(Lo,a))&&dF(i,jl[a])}),i};kf||(Fl=function(){if(fte(Tc,this))throw uF("Symbol is not a constructor");var e=!arguments.length||arguments[0]===void 0?void 0:tF(arguments[0]),r=NM(e),n=function(i){this===Lo&&gm(n,vm,i),pi(this,Ia)&&pi(this[Ia],r)&&(this[Ia][r]=!1),jS(this,r,NS(1,i))};return pd&&zS&&jS(Lo,r,{configurable:!0,set:n}),r_(r,e)},Tc=Fl[Tg],o0(Tc,"toString",function(){return zM(this).tag}),o0(Fl,"withoutSetter",function(t){return r_(NM(t),t)}),oF.f=BS,aF.f=Ky,pte.f=BA,iF.f=pF,dte.f=nF.f=gF,FS.f=HA,vte.f=function(t){return r_(lF(t),t)},pd&&(xc(Tc,"description",{configurable:!0,get:function(){return zM(this).description}}),o0(Lo,"propertyIsEnumerable",BS,{unsafe:!0})));Id({global:!0,wrap:!0,forced:!kf,sham:!kf},{Symbol:Fl});Xy(rF(_te),function(t){bte(t)});Id({target:Zy,stat:!0,forced:!kf},{for:function(t){var e=tF(t);if(pi(e_,e))return e_[e];var r=Fl(e);return e_[e]=r,t_[r]=e,r},keyFor:function(e){if(!$S(e))throw uF(e+" is not a symbol");if(pi(t_,e))return t_[e]},useSetter:function(){zS=!0},useSimple:function(){zS=!1}});Id({target:"Object",stat:!0,forced:!kf,sham:!pd},{create:kte,defineProperty:Ky,defineProperties:BA,getOwnPropertyDescriptor:pF});Id({target:"Object",stat:!0,forced:!kf},{getOwnPropertyNames:gF,getOwnPropertySymbols:HA});Id({target:"Object",stat:!0,forced:zA(function(){FS.f(1)})},{getOwnPropertySymbols:function(e){return FS.f(hte(e))}});if(Ep){var Ste=!kf||zA(function(){var t=Fl();return Ep([t])!="[null]"||Ep({a:t})!="{}"||Ep(Object(t))!="{}"});Id({target:"JSON",stat:!0,forced:Ste},{stringify:function(e,r,n){var i=gte(arguments),a=r;if(!(!ute(r)&&e===void 0||$S(e)))return lte(r)||(r=function(o,s){if(cte(a)&&(s=gm(a,this,o,s)),!$S(s))return s}),i[1]=r,ote(Ep,null,i)}})}if(!Tc[FM]){var Cte=Tc.valueOf;o0(Tc,FM,function(t){return gm(Cte,this)})}yte(Fl,Zy);sF[Ia]=!0;var Ate=Ua;Ate("asyncIterator");var Ote=Fi,Tte=ya,Ete=wr,fv=wn,Pte=wa,Mte=ci,Dte=Dd,Lte=Xl,Ite=Va.f,$te=q4,Cl=Ete.Symbol,Lu=Cl&&Cl.prototype;if(Tte&&Mte(Cl)&&(!("description"in Lu)||Cl().description!==void 0)){var jM={},hv=function(){var e=arguments.length<1||arguments[0]===void 0?void 0:Lte(arguments[0]),r=Dte(Lu,this)?new Cl(e):e===void 0?Cl():Cl(e);return e===""&&(jM[r]=!0),r};$te(hv,Cl),hv.prototype=Lu,Lu.constructor=hv;var Rte=String(Cl("test"))=="Symbol(test)",Nte=fv(Lu.toString),Fte=fv(Lu.valueOf),zte=/^Symbol\((.*)\)[^)]+$/,jte=fv("".replace),Bte=fv("".slice);Ite(Lu,"description",{configurable:!0,get:function(){var e=Fte(this),r=Nte(e);if(Pte(jM,e))return"";var n=Rte?Bte(r,7,-1):jte(r,zte,"$1");return n===""?void 0:n}}),Ote({global:!0,forced:!0},{Symbol:hv})}var Hte=Ua;Hte("hasInstance");var Yte=Ua;Yte("isConcatSpreadable");var Wte=Ua;Wte("iterator");var Vte=Ua;Vte("match");var Ute=Ua;Ute("matchAll");var qte=Ua;qte("replace");var Gte=Ua;Gte("search");var Xte=Ua;Xte("species");var Zte=Ua;Zte("split");var Kte=Ua;Kte("toPrimitive");var Jte=Ua;Jte("toStringTag");var Qte=Ua;Qte("unscopables");var ere=wr,tre=Zl;tre(ere.JSON,"JSON",!0);var rre=Zl;rre(Math,"Math",!0);var nre=Fi,ire=wr,are=Zl;nre({global:!0},{Reflect:{}});are(ire.Reflect,"Reflect",!0);var ore=Yf;ore.Symbol;var mF={exports:{}},sre=Zn,lre=sre(function(){if(typeof ArrayBuffer=="function"){var t=new ArrayBuffer(8);Object.isExtensible(t)&&Object.defineProperty(t,"a",{value:8})}}),cre=Zn,ure=Wa,fre=su,BM=lre,s0=Object.isExtensible,hre=cre(function(){s0(1)}),dre=hre||BM?function(e){return!ure(e)||BM&&fre(e)=="ArrayBuffer"?!1:s0?s0(e):!0}:s0,pre=Zn,gre=!pre(function(){return Object.isExtensible(Object.preventExtensions({}))}),mre=Fi,vre=wn,bre=cm,yre=Wa,YA=wa,xre=Va.f,HM=um,wre=RA,WA=dre,_re=Dy,kre=gre,vF=!1,Bl=_re("meta"),Sre=0,VA=function(t){xre(t,Bl,{value:{objectID:"O"+Sre++,weakData:{}}})},Cre=function(t,e){if(!yre(t))return typeof t=="symbol"?t:(typeof t=="string"?"S":"P")+t;if(!YA(t,Bl)){if(!WA(t))return"F";if(!e)return"E";VA(t)}return t[Bl].objectID},Are=function(t,e){if(!YA(t,Bl)){if(!WA(t))return!0;if(!e)return!1;VA(t)}return t[Bl].weakData},Ore=function(t){return kre&&vF&&WA(t)&&!YA(t,Bl)&&VA(t),t},Tre=function(){Ere.enable=function(){},vF=!0;var t=HM.f,e=vre([].splice),r={};r[Bl]=1,t(r).length&&(HM.f=function(n){for(var i=t(n),a=0,o=i.length;a1?arguments[1]:void 0),y;y=y?y.next:g.first;)for(b(y.value,y.key,this);y&&y.removed;)y=y.previous},has:function(d){return!!l(this,d)}}),qM(a,r?{get:function(d){var g=l(this,d);return g&&g.value},set:function(d,g){return s(this,d===0?0:d,g)}}:{add:function(d){return s(this,d=d===0?0:d,d)}}),Pp&&Qre(a,"size",{get:function(){return o(this).size}}),i},setStrong:function(t,e,r){var n=e+" Iterator",i=a_(e),a=a_(n);ine(t,e,function(o,s){XM(this,{type:n,target:o,state:i(o),kind:s,last:void 0})},function(){for(var o=a(this),s=o.kind,l=o.last;l&&l.removed;)l=l.previous;return!o.target||!(o.last=l=l?l.next:o.state.first)?(o.target=void 0,{value:void 0,done:!0}):s=="keys"?{value:l.key,done:!1}:s=="values"?{value:l.value,done:!1}:{value:[l.key,l.value],done:!1}},r?"entries":"values",!r,!0),ane(e)}},sne=qre,lne=one;sne("Set",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},lne);var cne=Yf;cne.Set;/*! - * Vue.js v2.7.14 - * (c) 2014-2022 Evan You - * Released under the MIT License. - */var ha=Object.freeze({}),Hr=Array.isArray;function Cr(t){return t==null}function ot(t){return t!=null}function Un(t){return t===!0}function une(t){return t===!1}function bm(t){return typeof t=="string"||typeof t=="number"||typeof t=="symbol"||typeof t=="boolean"}function Bn(t){return typeof t=="function"}function oa(t){return t!==null&&typeof t=="object"}var UA=Object.prototype.toString;function co(t){return UA.call(t)==="[object Object]"}function fne(t){return UA.call(t)==="[object RegExp]"}function _F(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function HS(t){return ot(t)&&typeof t.then=="function"&&typeof t.catch=="function"}function hne(t){return t==null?"":Array.isArray(t)||co(t)&&t.toString===UA?JSON.stringify(t,null,2):String(t)}function Eg(t){var e=parseFloat(t);return isNaN(e)?t:e}function Vi(t,e){for(var r=Object.create(null),n=t.split(","),i=0;i-1)return t.splice(n,1)}}var gne=Object.prototype.hasOwnProperty;function ga(t,e){return gne.call(t,e)}function vs(t){var e=Object.create(null);return function(n){var i=e[n];return i||(e[n]=t(n))}}var mne=/-(\w)/g,io=vs(function(t){return t.replace(mne,function(e,r){return r?r.toUpperCase():""})}),kF=vs(function(t){return t.charAt(0).toUpperCase()+t.slice(1)}),vne=/\B([A-Z])/g,Sf=vs(function(t){return t.replace(vne,"-$1").toLowerCase()});function bne(t,e){function r(n){var i=arguments.length;return i?i>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return r._length=t.length,r}function yne(t,e){return t.bind(e)}var SF=Function.prototype.bind?yne:bne;function YS(t,e){e=e||0;for(var r=t.length-e,n=new Array(r);r--;)n[r]=t[r+e];return n}function ln(t,e){for(var r in e)t[r]=e[r];return t}function CF(t){for(var e={},r=0;r0,MF=zo&&zo.indexOf("edge/")>0;zo&&zo.indexOf("android")>0;var Cne=zo&&/iphone|ipad|ipod|ios/.test(zo),KM=zo&&zo.match(/firefox\/(\d+)/),WS={}.watch,DF=!1;if(ka)try{var JM={};Object.defineProperty(JM,"passive",{get:function(){DF=!0}}),window.addEventListener("test-passive",null,JM)}catch{}var dv,Rd=function(){return dv===void 0&&(!ka&&typeof global<"u"?dv=global.process&&global.process.env.VUE_ENV==="server":dv=!1),dv},rb=ka&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function td(t){return typeof t=="function"&&/native code/.test(t.toString())}var ym=typeof Symbol<"u"&&td(Symbol)&&typeof Reflect<"u"&&td(Reflect.ownKeys),Pg;typeof Set<"u"&&td(Set)?Pg=Set:Pg=function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(e){return this.set[e]===!0},t.prototype.add=function(e){this.set[e]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var ig=null;function Gc(t){t===void 0&&(t=null),t||ig&&ig._scope.off(),ig=t,t&&t._scope.on()}var uo=function(){function t(e,r,n,i,a,o,s,l){this.tag=e,this.data=r,this.children=n,this.text=i,this.elm=a,this.ns=void 0,this.context=o,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=r&&r.key,this.componentOptions=s,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=l,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1}return Object.defineProperty(t.prototype,"child",{get:function(){return this.componentInstance},enumerable:!1,configurable:!0}),t}(),sf=function(t){t===void 0&&(t="");var e=new uo;return e.text=t,e.isComment=!0,e};function Bh(t){return new uo(void 0,void 0,void 0,String(t))}function VS(t){var e=new uo(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 Ane=0,l0=[],One=function(){for(var t=0;t0&&(i=zF(i,"".concat(e||"","_").concat(n)),Mp(i[0])&&Mp(o)&&(r[a]=Bh(o.text+i[0].text),i.shift()),r.push.apply(r,i)):bm(i)?Mp(o)?r[a]=Bh(o.text+i):i!==""&&r.push(Bh(i)):Mp(i)&&Mp(o)?r[a]=Bh(o.text+i.text):(Un(t._isVList)&&ot(i.tag)&&Cr(i.key)&&ot(e)&&(i.key="__vlist".concat(e,"_").concat(n,"__")),r.push(i)));return r}var Lne=1,jF=2;function ib(t,e,r,n,i,a){return(Hr(r)||bm(r))&&(i=n,n=r,r=void 0),Un(a)&&(i=jF),Ine(t,e,r,n,i)}function Ine(t,e,r,n,i){if(ot(r)&&ot(r.__ob__)||(ot(r)&&ot(r.is)&&(e=r.is),!e))return sf();Hr(n)&&Bn(n[0])&&(r=r||{},r.scopedSlots={default:n[0]},n.length=0),i===jF?n=ZA(n):i===Lne&&(n=Dne(n));var a,o;if(typeof e=="string"){var s=void 0;o=t.$vnode&&t.$vnode.ns||oo.getTagNamespace(e),oo.isReservedTag(e)?a=new uo(oo.parsePlatformTagName(e),r,n,void 0,void 0,t):(!r||!r.pre)&&ot(s=cb(t.$options,"components",e))?a=pD(s,r,t,n,e):a=new uo(e,r,n,void 0,void 0,t)}else a=pD(e,r,t,n);return Hr(a)?a:ot(a)?(ot(o)&&BF(a,o),ot(r)&&$ne(r),a):sf()}function BF(t,e,r){if(t.ns=e,t.tag==="foreignObject"&&(e=void 0,r=!0),ot(t.children))for(var n=0,i=t.children.length;n0,o=e?!!e.$stable:!a,s=e&&e.$key;if(!e)i={};else{if(e._normalized)return e._normalized;if(o&&n&&n!==ha&&s===n.$key&&!a&&!n.$hasNormal)return n;i={};for(var l in e)e[l]&&l[0]!=="$"&&(i[l]=qne(t,r,l,e[l]))}for(var f in r)f in i||(i[f]=Gne(r,f));return e&&Object.isExtensible(e)&&(e._normalized=i),Nc(i,"$stable",o),Nc(i,"$key",s),Nc(i,"$hasNormal",a),i}function qne(t,e,r,n){var i=function(){var a=ig;Gc(t);var o=arguments.length?n.apply(null,arguments):n({});o=o&&typeof o=="object"&&!Hr(o)?[o]:ZA(o);var s=o&&o[0];return Gc(a),o&&(!s||o.length===1&&s.isComment&&!Mg(s))?void 0:o};return n.proxy&&Object.defineProperty(e,r,{get:i,enumerable:!0,configurable:!0}),i}function Gne(t,e){return function(){return t[e]}}function Xne(t){var e=t.$options,r=e.setup;if(r){var n=t._setupContext=Zne(t);Gc(t),Nd();var i=Kc(r,null,[t._props||NF({}),n],t,"setup");if(Fd(),Gc(),Bn(i))e.render=i;else if(oa(i))if(t._setupState=i,i.__sfc){var o=t._setupProxy={};for(var a in i)a!=="__sfc"&&US(o,i,a)}else for(var a in i)PF(a)||US(t,i,a)}}function Zne(t){return{get attrs(){if(!t._attrsProxy){var e=t._attrsProxy={};Nc(e,"_v_attr_proxy",!0),ab(e,t.$attrs,ha,t,"$attrs")}return t._attrsProxy},get listeners(){if(!t._listenersProxy){var e=t._listenersProxy={};ab(e,t.$listeners,ha,t,"$listeners")}return t._listenersProxy},get slots(){return Jne(t)},emit:SF(t.$emit,t),expose:function(e){e&&Object.keys(e).forEach(function(r){return US(t,e,r)})}}}function ab(t,e,r,n,i){var a=!1;for(var o in e)o in t?e[o]!==r[o]&&(a=!0):(a=!0,Kne(t,o,n,i));for(var o in t)o in e||(a=!0,delete t[o]);return a}function Kne(t,e,r,n){Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:function(){return r[n][e]}})}function Jne(t){return t._slotsProxy||VF(t._slotsProxy={},t.$scopedSlots),t._slotsProxy}function VF(t,e){for(var r in e)t[r]=e[r];for(var r in t)r in e||delete t[r]}function Qne(t){t._vnode=null,t._staticTrees=null;var e=t.$options,r=t.$vnode=e._parentVnode,n=r&&r.context;t.$slots=KA(e._renderChildren,n),t.$scopedSlots=r?ag(t.$parent,r.data.scopedSlots,t.$slots):ha,t._c=function(a,o,s,l){return ib(t,a,o,s,l,!1)},t.$createElement=function(a,o,s,l){return ib(t,a,o,s,l,!0)};var i=r&&r.data;Af(t,"$attrs",i&&i.attrs||ha,null,!0),Af(t,"$listeners",e._parentListeners||ha,null,!0)}var GS=null;function eie(t){WF(t.prototype),t.prototype.$nextTick=function(e){return tO(e,this)},t.prototype._render=function(){var e=this,r=e.$options,n=r.render,i=r._parentVnode;i&&e._isMounted&&(e.$scopedSlots=ag(e.$parent,i.data.scopedSlots,e.$slots,e.$scopedSlots),e._slotsProxy&&VF(e._slotsProxy,e.$scopedSlots)),e.$vnode=i;var a;try{Gc(e),GS=e,a=n.call(e._renderProxy,e.$createElement)}catch(o){Of(o,e,"render"),a=e._vnode}finally{GS=null,Gc()}return Hr(a)&&a.length===1&&(a=a[0]),a instanceof uo||(a=sf()),a.parent=i,a}}function o_(t,e){return(t.__esModule||ym&&t[Symbol.toStringTag]==="Module")&&(t=t.default),oa(t)?e.extend(t):t}function tie(t,e,r,n,i){var a=sf();return a.asyncFactory=t,a.asyncMeta={data:e,context:r,children:n,tag:i},a}function rie(t,e){if(Un(t.error)&&ot(t.errorComp))return t.errorComp;if(ot(t.resolved))return t.resolved;var r=GS;if(r&&ot(t.owners)&&t.owners.indexOf(r)===-1&&t.owners.push(r),Un(t.loading)&&ot(t.loadingComp))return t.loadingComp;if(r&&!ot(t.owners)){var n=t.owners=[r],i=!0,a=null,o=null;r.$on("hook:destroyed",function(){return hu(n,r)});var s=function(g){for(var b=0,y=n.length;b1?YS(i):i;for(var a=YS(arguments,1),o='event handler for "'.concat(r,'"'),s=0,l=i.length;sdocument.createEvent("Event").timeStamp&&(ZS=function(){return s_.now()})}var die=function(t,e){if(t.post){if(!e.post)return 1}else if(e.post)return-1;return t.id-e.id};function pie(){KF=ZS(),eO=!0;var t,e;for(Pl.sort(die),Hh=0;HhHh&&Pl[r].id>t.id;)r--;Pl.splice(r+1,0,t)}XS||(XS=!0,tO(pie))}}var to,yie=function(){function t(e){e===void 0&&(e=!1),this.detached=e,this.active=!0,this.effects=[],this.cleanups=[],this.parent=to,!e&&to&&(this.index=(to.scopes||(to.scopes=[])).push(this)-1)}return t.prototype.run=function(e){if(this.active){var r=to;try{return to=this,e()}finally{to=r}}},t.prototype.on=function(){to=this},t.prototype.off=function(){to=this.parent},t.prototype.stop=function(e){if(this.active){var r=void 0,n=void 0;for(r=0,n=this.effects.length;r-1){if(a&&!ga(i,"default"))o=!1;else if(o===""||o===Sf(t)){var l=vD(String,i.type);(l<0||s-1)return this;var n=YS(arguments,1);return n.unshift(this),Bn(e.install)?e.install.apply(e,n):Bn(e)&&e.apply(null,n),r.push(e),this}}function rae(t){t.mixin=function(e){return this.options=Tf(this.options,e),this}}function nae(t){t.cid=0;var e=1;t.extend=function(r){r=r||{};var n=this,i=n.cid,a=r._Ctor||(r._Ctor={});if(a[i])return a[i];var o=lb(r)||lb(n.options),s=function(f){this._init(f)};return s.prototype=Object.create(n.prototype),s.prototype.constructor=s,s.cid=e++,s.options=Tf(n.options,r),s.super=n,s.options.props&&iae(s),s.options.computed&&aae(s),s.extend=n.extend,s.mixin=n.mixin,s.use=n.use,Jy.forEach(function(l){s[l]=n[l]}),o&&(s.options.components[o]=s),s.superOptions=n.options,s.extendOptions=r,s.sealedOptions=ln({},s.options),a[i]=s,s}}function iae(t){var e=t.options.props;for(var r in e)nO(t.prototype,"_props",r)}function aae(t){var e=t.options.computed;for(var r in e)JF(t.prototype,r,e[r])}function oae(t){Jy.forEach(function(e){t[e]=function(r,n){return n?(e==="component"&&co(n)&&(n.name=n.name||r,n=this.options._base.extend(n)),e==="directive"&&Bn(n)&&(n={bind:n,update:n}),this.options[e+"s"][r]=n,n):this.options[e+"s"][r]}})}function bD(t){return t&&(lb(t.Ctor.options)||t.tag)}function mv(t,e){return Hr(t)?t.indexOf(e)>-1:typeof t=="string"?t.split(",").indexOf(e)>-1:fne(t)?t.test(e):!1}function yD(t,e){var r=t.cache,n=t.keys,i=t._vnode;for(var a in r){var o=r[a];if(o){var s=o.name;s&&!e(s)&&r2(r,a,n,i)}}}function r2(t,e,r,n){var i=t[e];i&&(!n||i.tag!==n.tag)&&i.componentInstance.$destroy(),t[e]=null,hu(r,e)}var xD=[String,RegExp,Array],sae={name:"keep-alive",abstract:!0,props:{include:xD,exclude:xD,max:[String,Number]},methods:{cacheVNode:function(){var t=this,e=t.cache,r=t.keys,n=t.vnodeToCache,i=t.keyToCache;if(n){var a=n.tag,o=n.componentInstance,s=n.componentOptions;e[i]={name:bD(s),tag:a,componentInstance:o},r.push(i),this.max&&r.length>parseInt(this.max)&&r2(e,r[0],r,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)r2(this.cache,t,this.keys)},mounted:function(){var t=this;this.cacheVNode(),this.$watch("include",function(e){yD(t,function(r){return mv(e,r)})}),this.$watch("exclude",function(e){yD(t,function(r){return!mv(e,r)})})},updated:function(){this.cacheVNode()},render:function(){var t=this.$slots.default,e=UF(t),r=e&&e.componentOptions;if(r){var n=bD(r),i=this,a=i.include,o=i.exclude;if(a&&(!n||!mv(a,n))||o&&n&&mv(o,n))return e;var s=this,l=s.cache,f=s.keys,d=e.key==null?r.Ctor.cid+(r.tag?"::".concat(r.tag):""):e.key;l[d]?(e.componentInstance=l[d].componentInstance,hu(f,d),f.push(d)):(this.vnodeToCache=e,this.keyToCache=d),e.data.keepAlive=!0}return e||t&&t[0]}},lae={KeepAlive:sae};function cae(t){var e={};e.get=function(){return oo},Object.defineProperty(t,"config",e),t.util={warn:e5,extend:ln,mergeOptions:Tf,defineReactive:Af},t.set=GA,t.delete=$F,t.nextTick=tO,t.observable=function(r){return Hl(r),r},t.options=Object.create(null),Jy.forEach(function(r){t.options[r+"s"]=Object.create(null)}),t.options._base=t,ln(t.options.components,lae),tae(t),rae(t),nae(t),oae(t)}cae(Vt);Object.defineProperty(Vt.prototype,"$isServer",{get:Rd});Object.defineProperty(Vt.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}});Object.defineProperty(Vt,"FunctionalRenderContext",{value:aO});Vt.version=Sie;var uae=Vi("style,class"),fae=Vi("input,textarea,option,select,progress"),t5=function(t,e,r){return r==="value"&&fae(t)&&e!=="button"||r==="selected"&&t==="option"||r==="checked"&&t==="input"||r==="muted"&&t==="video"},r5=Vi("contenteditable,draggable,spellcheck"),hae=Vi("events,caret,typing,plaintext-only"),dae=function(t,e){return ub(e)||e==="false"?"false":t==="contenteditable"&&hae(e)?e:"true"},pae=Vi("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"),n2="http://www.w3.org/1999/xlink",lO=function(t){return t.charAt(5)===":"&&t.slice(0,5)==="xlink"},n5=function(t){return lO(t)?t.slice(6,t.length):""},ub=function(t){return t==null||t===!1};function gae(t){for(var e=t.data,r=t,n=t;ot(n.componentInstance);)n=n.componentInstance._vnode,n&&n.data&&(e=wD(n.data,e));for(;ot(r=r.parent);)r&&r.data&&(e=wD(e,r.data));return mae(e.staticClass,e.class)}function wD(t,e){return{staticClass:cO(t.staticClass,e.staticClass),class:ot(t.class)?[t.class,e.class]:e.class}}function mae(t,e){return ot(t)||ot(e)?cO(t,uO(e)):""}function cO(t,e){return t?e?t+" "+e:t:e||""}function uO(t){return Array.isArray(t)?vae(t):oa(t)?bae(t):typeof t=="string"?t:""}function vae(t){for(var e="",r,n=0,i=t.length;n-1?vv[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:vv[t]=/HTMLUnknownElement/.test(e.toString())}var i2=Vi("text,number,password,search,email,tel,url");function dO(t){if(typeof t=="string"){var e=document.querySelector(t);return e||document.createElement("div")}else return t}function kae(t,e){var r=document.createElement(t);return t!=="select"||e.data&&e.data.attrs&&e.data.attrs.multiple!==void 0&&r.setAttribute("multiple","multiple"),r}function Sae(t,e){return document.createElementNS(yae[t],e)}function Cae(t){return document.createTextNode(t)}function Aae(t){return document.createComment(t)}function Oae(t,e,r){t.insertBefore(e,r)}function Tae(t,e){t.removeChild(e)}function Eae(t,e){t.appendChild(e)}function Pae(t){return t.parentNode}function Mae(t){return t.nextSibling}function Dae(t){return t.tagName}function Lae(t,e){t.textContent=e}function Iae(t,e){t.setAttribute(e,"")}var $ae=Object.freeze({__proto__:null,createElement:kae,createElementNS:Sae,createTextNode:Cae,createComment:Aae,insertBefore:Oae,removeChild:Tae,appendChild:Eae,parentNode:Pae,nextSibling:Mae,tagName:Dae,setTextContent:Lae,setStyleScope:Iae}),Rae={create:function(t,e){Yh(e)},update:function(t,e){t.data.ref!==e.data.ref&&(Yh(t,!0),Yh(e))},destroy:function(t){Yh(t,!0)}};function Yh(t,e){var r=t.data.ref;if(ot(r)){var n=t.context,i=t.componentInstance||t.elm,a=e?null:i,o=e?void 0:i;if(Bn(r)){Kc(r,n,[a],n,"template ref function");return}var s=t.data.refInFor,l=typeof r=="string"||typeof r=="number",f=Gs(r),d=n.$refs;if(l||f){if(s){var g=l?d[r]:r.value;e?Hr(g)&&hu(g,i):Hr(g)?g.includes(i)||g.push(i):l?(d[r]=[i],_D(n,r,d[r])):r.value=[i]}else if(l){if(e&&d[r]!==i)return;d[r]=o,_D(n,r,a)}else if(f){if(e&&r.value!==i)return;r.value=a}}}}function _D(t,e,r){var n=t._setupState;n&&ga(n,e)&&(Gs(n[e])?n[e].value=r:n[e]=r)}var Pc=new uo("",{},[]),Dp=["create","activate","update","remove","destroy"];function Iu(t,e){return t.key===e.key&&t.asyncFactory===e.asyncFactory&&(t.tag===e.tag&&t.isComment===e.isComment&&ot(t.data)===ot(e.data)&&Nae(t,e)||Un(t.isAsyncPlaceholder)&&Cr(e.asyncFactory.error))}function Nae(t,e){if(t.tag!=="input")return!0;var r,n=ot(r=t.data)&&ot(r=r.attrs)&&r.type,i=ot(r=e.data)&&ot(r=r.attrs)&&r.type;return n===i||i2(n)&&i2(i)}function Fae(t,e,r){var n,i,a={};for(n=e;n<=r;++n)i=t[n].key,ot(i)&&(a[i]=n);return a}function zae(t){var e,r,n={},i=t.modules,a=t.nodeOps;for(e=0;eNe?(Ft=Cr(pe[et+1])?null:pe[et+1].elm,M(te,Ft,pe,Xe,et,ke)):Xe>et&&W(ae,Be,Ne)}function G(te,ae,pe,ke){for(var Re=pe;Re-1?AD(t,e,r):pae(e)?ub(r)?t.removeAttribute(e):(r=e==="allowfullscreen"&&t.tagName==="EMBED"?"true":e,t.setAttribute(e,r)):r5(e)?t.setAttribute(e,dae(e,r)):lO(e)?ub(r)?t.removeAttributeNS(n2,n5(e)):t.setAttributeNS(n2,e,r):AD(t,e,r)}function AD(t,e,r){if(ub(r))t.removeAttribute(e);else{if(qc&&!$d&&t.tagName==="TEXTAREA"&&e==="placeholder"&&r!==""&&!t.__ieph){var n=function(i){i.stopImmediatePropagation(),t.removeEventListener("input",n)};t.addEventListener("input",n),t.__ieph=!0}t.setAttribute(e,r)}}var Vae={create:SD,update:SD};function OD(t,e){var r=e.elm,n=e.data,i=t.data;if(!(Cr(n.staticClass)&&Cr(n.class)&&(Cr(i)||Cr(i.staticClass)&&Cr(i.class)))){var a=gae(e),o=r._transitionClasses;ot(o)&&(a=cO(a,uO(o))),a!==r._prevClass&&(r.setAttribute("class",a),r._prevClass=a)}}var Uae={create:OD,update:OD},qae=/[\w).+\-_$\]]/;function pO(t){var e=!1,r=!1,n=!1,i=!1,a=0,o=0,s=0,l=0,f,d,g,b,y;for(g=0;g=0&&(C=t.charAt(k),C===" ");k--);(!C||!qae.test(C))&&(i=!0)}}b===void 0?b=t.slice(0,g).trim():l!==0&&A();function A(){(y||(y=[])).push(t.slice(l,g).trim()),l=g+1}if(y)for(g=0;g-1?{exp:t.slice(0,Tl),key:'"'+t.slice(Tl+1)+'"'}:{exp:t,key:null};for(a5=t,Tl=f0=s2=0;!mO();)Ip=gO(),o5(Ip)?s5(Ip):Ip===91&&Jae(Ip);return{exp:t.slice(0,f0),key:t.slice(f0+1,s2)}}function gO(){return a5.charCodeAt(++Tl)}function mO(){return Tl>=o2}function o5(t){return t===34||t===39}function Jae(t){var e=1;for(f0=Tl;!mO();){if(t=gO(),o5(t)){s5(t);continue}if(t===91&&e++,t===93&&e--,e===0){s2=Tl;break}}}function s5(t){for(var e=t;!mO()&&(t=gO(),t!==e););}var h0="__r",f_="__c";function Qae(t,e,r){var n=e.value,i=e.modifiers,a=t.tag,o=t.attrsMap.type;if(t.component)return ED(t,n,i),!1;if(a==="select")roe(t,n,i);else if(a==="input"&&o==="checkbox")eoe(t,n,i);else if(a==="input"&&o==="radio")toe(t,n,i);else if(a==="input"||a==="textarea")noe(t,n,i);else if(!oo.isReservedTag(a))return ED(t,n,i),!1;return!0}function eoe(t,e,r){var n=r&&r.number,i=No(t,"value")||"null",a=No(t,"true-value")||"true",o=No(t,"false-value")||"false";Ef(t,"checked","Array.isArray(".concat(e,")")+"?_i(".concat(e,",").concat(i,")>-1")+(a==="true"?":(".concat(e,")"):":_q(".concat(e,",").concat(a,")"))),Ml(t,"change","var $$a=".concat(e,",")+"$$el=$event.target,"+"$$c=$$el.checked?(".concat(a,"):(").concat(o,");")+"if(Array.isArray($$a)){"+"var $$v=".concat(n?"_n("+i+")":i,",")+"$$i=_i($$a,$$v);"+"if($$el.checked){$$i<0&&(".concat(Fc(e,"$$a.concat([$$v])"),")}")+"else{$$i>-1&&(".concat(Fc(e,"$$a.slice(0,$$i).concat($$a.slice($$i+1))"),")}")+"}else{".concat(Fc(e,"$$c"),"}"),null,!0)}function toe(t,e,r){var n=r&&r.number,i=No(t,"value")||"null";i=n?"_n(".concat(i,")"):i,Ef(t,"checked","_q(".concat(e,",").concat(i,")")),Ml(t,"change",Fc(e,i),null,!0)}function roe(t,e,r){var n=r&&r.number,i='Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;'+"return ".concat(n?"_n(val)":"val","})"),a="$event.target.multiple ? $$selectedVal : $$selectedVal[0]",o="var $$selectedVal = ".concat(i,";");o="".concat(o," ").concat(Fc(e,a)),Ml(t,"change",o,null,!0)}function noe(t,e,r){var n=t.attrsMap.type,i=r||{},a=i.lazy,o=i.number,s=i.trim,l=!a&&n!=="range",f=a?"change":n==="range"?h0:"input",d="$event.target.value";s&&(d="$event.target.value.trim()"),o&&(d="_n(".concat(d,")"));var g=Fc(e,d);l&&(g="if($event.target.composing)return;".concat(g)),Ef(t,"value","(".concat(e,")")),Ml(t,f,g,null,!0),(s||o)&&Ml(t,"blur","$forceUpdate()")}function ioe(t){if(ot(t[h0])){var e=qc?"change":"input";t[e]=[].concat(t[h0],t[e]||[]),delete t[h0]}ot(t[f_])&&(t.change=[].concat(t[f_],t.change||[]),delete t[f_])}var Ig;function aoe(t,e,r){var n=Ig;return function i(){var a=e.apply(null,arguments);a!==null&&l5(t,i,r,n)}}var ooe=KS&&!(KM&&Number(KM[1])<=53);function soe(t,e,r,n){if(ooe){var i=KF,a=e;e=a._wrapper=function(o){if(o.target===o.currentTarget||o.timeStamp>=i||o.timeStamp<=0||o.target.ownerDocument!==document)return a.apply(this,arguments)}}Ig.addEventListener(t,e,DF?{capture:r,passive:n}:r)}function l5(t,e,r,n){(n||Ig).removeEventListener(t,e._wrapper||e,r)}function h_(t,e){if(!(Cr(t.data.on)&&Cr(e.data.on))){var r=e.data.on||{},n=t.data.on||{};Ig=e.elm||t.elm,ioe(r),FF(r,n,soe,l5,aoe,e.context),Ig=void 0}}var loe={create:h_,update:h_,destroy:function(t){return h_(t,Pc)}},bv;function PD(t,e){if(!(Cr(t.data.domProps)&&Cr(e.data.domProps))){var r,n,i=e.elm,a=t.data.domProps||{},o=e.data.domProps||{};(ot(o.__ob__)||Un(o._v_attr_proxy))&&(o=e.data.domProps=ln({},o));for(r in a)r in o||(i[r]="");for(r in o){if(n=o[r],r==="textContent"||r==="innerHTML"){if(e.children&&(e.children.length=0),n===a[r])continue;i.childNodes.length===1&&i.removeChild(i.childNodes[0])}if(r==="value"&&i.tagName!=="PROGRESS"){i._value=n;var s=Cr(n)?"":String(n);coe(i,s)&&(i.value=s)}else if(r==="innerHTML"&&fO(i.tagName)&&Cr(i.innerHTML)){bv=bv||document.createElement("div"),bv.innerHTML="".concat(n,"");for(var l=bv.firstChild;i.firstChild;)i.removeChild(i.firstChild);for(;l.firstChild;)i.appendChild(l.firstChild)}else if(n!==a[r])try{i[r]=n}catch{}}}}function coe(t,e){return!t.composing&&(t.tagName==="OPTION"||uoe(t,e)||foe(t,e))}function uoe(t,e){var r=!0;try{r=document.activeElement!==t}catch{}return r&&t.value!==e}function foe(t,e){var r=t.value,n=t._vModifiers;if(ot(n)){if(n.number)return Eg(r)!==Eg(e);if(n.trim)return r.trim()!==e.trim()}return r!==e}var hoe={create:PD,update:PD},c5=vs(function(t){var e={},r=/;(?![^(]*\))/g,n=/:(.+)/;return t.split(r).forEach(function(i){if(i){var a=i.split(n);a.length>1&&(e[a[0].trim()]=a[1].trim())}}),e});function d_(t){var e=u5(t.style);return t.staticStyle?ln(t.staticStyle,e):e}function u5(t){return Array.isArray(t)?CF(t):typeof t=="string"?c5(t):t}function doe(t,e){var r={},n;if(e)for(var i=t;i.componentInstance;)i=i.componentInstance._vnode,i&&i.data&&(n=d_(i.data))&&ln(r,n);(n=d_(t.data))&&ln(r,n);for(var a=t;a=a.parent;)a.data&&(n=d_(a.data))&&ln(r,n);return r}var poe=/^--/,MD=/\s*!important$/,DD=function(t,e,r){if(poe.test(e))t.style.setProperty(e,r);else if(MD.test(r))t.style.setProperty(Sf(e),r.replace(MD,""),"important");else{var n=goe(e);if(Array.isArray(r))for(var i=0,a=r.length;i-1?e.split(f5).forEach(function(n){return t.classList.add(n)}):t.classList.add(e);else{var r=" ".concat(t.getAttribute("class")||""," ");r.indexOf(" "+e+" ")<0&&t.setAttribute("class",(r+e).trim())}}function d5(t,e){if(!(!e||!(e=e.trim())))if(t.classList)e.indexOf(" ")>-1?e.split(f5).forEach(function(i){return t.classList.remove(i)}):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var r=" ".concat(t.getAttribute("class")||""," "),n=" "+e+" ";r.indexOf(n)>=0;)r=r.replace(n," ");r=r.trim(),r?t.setAttribute("class",r):t.removeAttribute("class")}}function p5(t){if(t){if(typeof t=="object"){var e={};return t.css!==!1&&ln(e,$D(t.name||"v")),ln(e,t),e}else if(typeof t=="string")return $D(t)}}var $D=vs(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")}}),g5=ka&&!$d,Lh="transition",p_="animation",d0="transition",fb="transitionend",l2="animation",m5="animationend";g5&&(window.ontransitionend===void 0&&window.onwebkittransitionend!==void 0&&(d0="WebkitTransition",fb="webkitTransitionEnd"),window.onanimationend===void 0&&window.onwebkitanimationend!==void 0&&(l2="WebkitAnimation",m5="webkitAnimationEnd"));var RD=ka?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function v5(t){RD(function(){RD(t)})}function cf(t,e){var r=t._transitionClasses||(t._transitionClasses=[]);r.indexOf(e)<0&&(r.push(e),h5(t,e))}function Dl(t,e){t._transitionClasses&&hu(t._transitionClasses,e),d5(t,e)}function b5(t,e,r){var n=y5(t,e),i=n.type,a=n.timeout,o=n.propCount;if(!i)return r();var s=i===Lh?fb:m5,l=0,f=function(){t.removeEventListener(s,d),r()},d=function(g){g.target===t&&++l>=o&&f()};setTimeout(function(){l0&&(f=Lh,d=a,g=i.length):e===p_?l>0&&(f=p_,d=l,g=s.length):(d=Math.max(a,l),f=d>0?a>l?Lh:p_:null,g=f?f===Lh?i.length:s.length:0);var b=f===Lh&&voe.test(r[d0+"Property"]);return{type:f,timeout:d,propCount:g,hasTransform:b}}function ND(t,e){for(;t.length1}function zD(t,e){e.data.show!==!0&&c2(e)}var boe=ka?{create:zD,activate:zD,remove:function(t,e){t.data.show!==!0?x5(t,e):e()}}:{},yoe=[Vae,Uae,loe,hoe,moe,boe],xoe=yoe.concat(Wae),woe=zae({nodeOps:$ae,modules:xoe});$d&&document.addEventListener("selectionchange",function(){var t=document.activeElement;t&&t.vmodel&&bO(t,"input")});var _5={inserted:function(t,e,r,n){r.tag==="select"?(n.elm&&!n.elm._vOptions?Ec(r,"postpatch",function(){_5.componentUpdated(t,e,r)}):jD(t,e,r.context),t._vOptions=[].map.call(t.options,hb)):(r.tag==="textarea"||i2(t.type))&&(t._vModifiers=e.modifiers,e.modifiers.lazy||(t.addEventListener("compositionstart",_oe),t.addEventListener("compositionend",YD),t.addEventListener("change",YD),$d&&(t.vmodel=!0)))},componentUpdated:function(t,e,r){if(r.tag==="select"){jD(t,e,r.context);var n=t._vOptions,i=t._vOptions=[].map.call(t.options,hb);if(i.some(function(o,s){return!Cf(o,n[s])})){var a=t.multiple?e.value.some(function(o){return HD(o,i)}):e.value!==e.oldValue&&HD(e.value,i);a&&bO(t,"change")}}}};function jD(t,e,r){BD(t,e),(qc||MF)&&setTimeout(function(){BD(t,e)},0)}function BD(t,e,r){var n=e.value,i=t.multiple;if(!(i&&!Array.isArray(n))){for(var a,o,s=0,l=t.options.length;s-1,o.selected!==a&&(o.selected=a);else if(Cf(hb(o),n)){t.selectedIndex!==s&&(t.selectedIndex=s);return}i||(t.selectedIndex=-1)}}function HD(t,e){return e.every(function(r){return!Cf(r,t)})}function hb(t){return"_value"in t?t._value:t.value}function _oe(t){t.target.composing=!0}function YD(t){t.target.composing&&(t.target.composing=!1,bO(t.target,"input"))}function bO(t,e){var r=document.createEvent("HTMLEvents");r.initEvent(e,!0,!0),t.dispatchEvent(r)}function u2(t){return t.componentInstance&&(!t.data||!t.data.transition)?u2(t.componentInstance._vnode):t}var koe={bind:function(t,e,r){var n=e.value;r=u2(r);var i=r.data&&r.data.transition,a=t.__vOriginalDisplay=t.style.display==="none"?"":t.style.display;n&&i?(r.data.show=!0,c2(r,function(){t.style.display=a})):t.style.display=n?a:"none"},update:function(t,e,r){var n=e.value,i=e.oldValue;if(!n!=!i){r=u2(r);var a=r.data&&r.data.transition;a?(r.data.show=!0,n?c2(r,function(){t.style.display=t.__vOriginalDisplay}):x5(r,function(){t.style.display="none"})):t.style.display=n?t.__vOriginalDisplay:"none"}},unbind:function(t,e,r,n,i){i||(t.style.display=t.__vOriginalDisplay)}},Soe={model:_5,show:koe},k5={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 f2(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?f2(UF(e.children)):t}function S5(t){var e={},r=t.$options;for(var n in r.propsData)e[n]=t[n];var i=r._parentListeners;for(var n in i)e[io(n)]=i[n];return e}function WD(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}function Coe(t){for(;t=t.parent;)if(t.data.transition)return!0}function Aoe(t,e){return e.key===t.key&&e.tag===t.tag}var Ooe=function(t){return t.tag||Mg(t)},Toe=function(t){return t.name==="show"},Eoe={name:"transition",props:k5,abstract:!0,render:function(t){var e=this,r=this.$slots.default;if(r&&(r=r.filter(Ooe),!!r.length)){var n=this.mode,i=r[0];if(Coe(this.$vnode))return i;var a=f2(i);if(!a)return i;if(this._leaving)return WD(t,i);var o="__transition-".concat(this._uid,"-");a.key=a.key==null?a.isComment?o+"comment":o+a.tag:bm(a.key)?String(a.key).indexOf(o)===0?a.key:o+a.key:a.key;var s=(a.data||(a.data={})).transition=S5(this),l=this._vnode,f=f2(l);if(a.data.directives&&a.data.directives.some(Toe)&&(a.data.show=!0),f&&f.data&&!Aoe(a,f)&&!Mg(f)&&!(f.componentInstance&&f.componentInstance._vnode.isComment)){var d=f.data.transition=ln({},s);if(n==="out-in")return this._leaving=!0,Ec(d,"afterLeave",function(){e._leaving=!1,e.$forceUpdate()}),WD(t,i);if(n==="in-out"){if(Mg(a))return l;var g,b=function(){g()};Ec(s,"afterEnter",b),Ec(s,"enterCancelled",b),Ec(d,"delayLeave",function(y){g=y})}}return i}}},C5=ln({tag:String,moveClass:String},k5);delete C5.mode;var Poe={props:C5,beforeMount:function(){var t=this,e=this._update;this._update=function(r,n){var i=GF(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,i(),e.call(t,r,n)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",r=Object.create(null),n=this.prevChildren=this.children,i=this.$slots.default||[],a=this.children=[],o=S5(this),s=0;sa&&(i.push(l=t.slice(a,s)),n.push(JSON.stringify(l)));var f=pO(o[1].trim());n.push("_s(".concat(f,")")),i.push({"@binding":f}),a=s+o[0].length}return a\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,Xoe=/^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+?\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,UD="[a-zA-Z_][\\-\\.0-9_a-zA-Z".concat(EF.source,"]*"),A5="((?:".concat(UD,"\\:)?").concat(UD,")"),qD=new RegExp("^<".concat(A5)),Zoe=/^\s*(\/?)>/,GD=new RegExp("^<\\/".concat(A5,"[^>]*>")),Koe=/^]+>/i,XD=/^",""":'"',"&":"&"," ":` -`," ":" ","'":"'"},Qoe=/&(?:lt|gt|quot|amp|#39);/g,ese=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,tse=Vi("pre,textarea",!0),QD=function(t,e){return t&&tse(t)&&e[0]===` -`};function rse(t,e){var r=e?ese:Qoe;return t.replace(r,function(n){return Joe[n]})}function nse(t,e){for(var r=[],n=e.expectHTML,i=e.isUnaryTag||Io,a=e.canBeLeftOpenTag||Io,o=0,s,l,f=function(){if(s=t,!l||!KD(l)){var C=t.indexOf("<");if(C===0){if(XD.test(t)){var A=t.indexOf("-->");if(A>=0)return e.shouldKeepComment&&e.comment&&e.comment(t.substring(4,A),o,o+A+3),g(A+3),"continue"}if(ZD.test(t)){var P=t.indexOf("]>");if(P>=0)return g(P+2),"continue"}var M=t.match(Koe);if(M)return g(M[0].length),"continue";var N=t.match(GD);if(N){var W=o;return g(N[0].length),k(N[1],W,o),"continue"}var z=b();if(z)return y(z),QD(z.tagName,t)&&g(1),"continue"}var U=void 0,G=void 0,X=void 0;if(C>=0){for(G=t.slice(C);!GD.test(G)&&!qD.test(G)&&!XD.test(G)&&!ZD.test(G)&&(X=G.indexOf("<",1),!(X<0));)C+=X,G=t.slice(C);U=t.substring(0,C)}C<0&&(U=t),U&&g(U.length),e.chars&&U&&e.chars(U,o-U.length,o)}else{var be=0,re=l.toLowerCase(),le=JD[re]||(JD[re]=new RegExp("([\\s\\S]*?)(]*>)","i")),G=t.replace(le,function(ae,pe,ke){return be=ke.length,!KD(re)&&re!=="noscript"&&(pe=pe.replace(//g,"$1").replace(//g,"$1")),QD(re,pe)&&(pe=pe.slice(1)),e.chars&&e.chars(pe),""});o+=t.length-G.length,t=G,k(re,o-be,o)}if(t===s)return e.chars&&e.chars(t),"break"};t;){var d=f();if(d==="break")break}k();function g(C){o+=C,t=t.substring(C)}function b(){var C=t.match(qD);if(C){var A={tagName:C[1],attrs:[],start:o};g(C[0].length);for(var P=void 0,M=void 0;!(P=t.match(Zoe))&&(M=t.match(Xoe)||t.match(Goe));)M.start=o,g(M[0].length),M.end=o,A.attrs.push(M);if(P)return A.unarySlash=P[1],g(P[0].length),A.end=o,A}}function y(C){var A=C.tagName,P=C.unarySlash;n&&(l==="p"&&qoe(A)&&k(l),a(A)&&l===A&&k(A));for(var M=i(A)||!!P,N=C.attrs.length,W=new Array(N),z=0;z=0&&r[M].lowerCasedTag!==N;M--);else M=0;if(M>=0){for(var W=r.length-1;W>=M;W--)e.end&&e.end(r[W].tag,A,P);r.length=M,l=M&&r[M-1].tag}else N==="br"?e.start&&e.start(C,[],!0,A,P):N==="p"&&(e.start&&e.start(C,[],!1,A,P),e.end&&e.end(C,A,P))}}var e3=/^@|^v-on:/,g_=/^v-|^@|^:|^#/,ise=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,t3=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,ase=/^\(|\)$/g,p0=/^\[.*\]$/,ose=/:(.*)$/,r3=/^:|^\.|^v-bind:/,O5=/\.[^.\]]+(?=[^\]]*$)/g,h2=/^v-slot(:|$)|^#/,sse=/[\r\n]/,lse=/[ \f\t\r\n]+/g,cse=vs(Woe.decode),db="_empty_",Wh,n3,d2,m_,v_,b_,p2,i3;function yO(t,e,r){return{type:1,tag:t,attrsList:e,attrsMap:Ase(e),rawAttrsMap:{},parent:r,children:[]}}function use(t,e){Wh=e.warn||Qy,b_=e.isPreTag||Io,p2=e.mustUseProp||Io,i3=e.getTagNamespace||Io,e.isReservedTag,d2=og(e.modules,"transformNode"),m_=og(e.modules,"preTransformNode"),v_=og(e.modules,"postTransformNode"),n3=e.delimiters;var r=[],n=e.preserveWhitespace!==!1,i=e.whitespace,a,o,s=!1,l=!1;function f(g){if(d(g),!s&&!g.processed&&(g=g0(g,e)),!r.length&&g!==a&&a.if&&(g.elseif||g.else)&&rd(a,{exp:g.elseif,block:g}),o&&!g.forbidden)if(g.elseif||g.else)vse(g,o);else{if(g.slotScope){var b=g.slotTarget||'"default"';(o.scopedSlots||(o.scopedSlots={}))[b]=g}o.children.push(g),g.parent=o}g.children=g.children.filter(function(k){return!k.slotScope}),d(g),g.pre&&(s=!1),b_(g.tag)&&(l=!1);for(var y=0;y|^function(?:\s+[\w$]+)?\s*\(/,Wse=/\([^)]*?\);*$/,s3=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,P5={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},Vse={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"]},_l=function(t){return"if(".concat(t,")return null;")},l3={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:_l("$event.target !== $event.currentTarget"),ctrl:_l("!$event.ctrlKey"),shift:_l("!$event.shiftKey"),alt:_l("!$event.altKey"),meta:_l("!$event.metaKey"),left:_l("'button' in $event && $event.button !== 0"),middle:_l("'button' in $event && $event.button !== 1"),right:_l("'button' in $event && $event.button !== 2")};function c3(t,e){var r=e?"nativeOn:":"on:",n="",i="";for(var a in t){var o=M5(t[a]);t[a]&&t[a].dynamic?i+="".concat(a,",").concat(o,","):n+='"'.concat(a,'":').concat(o,",")}return n="{".concat(n.slice(0,-1),"}"),i?r+"_d(".concat(n,",[").concat(i.slice(0,-1),"])"):r+n}function M5(t){if(!t)return"function(){}";if(Array.isArray(t))return"[".concat(t.map(function(d){return M5(d)}).join(","),"]");var e=s3.test(t.value),r=Yse.test(t.value),n=s3.test(t.value.replace(Wse,""));if(t.modifiers){var i="",a="",o=[],s=function(d){if(l3[d])a+=l3[d],P5[d]&&o.push(d);else if(d==="exact"){var g=t.modifiers;a+=_l(["ctrl","shift","alt","meta"].filter(function(b){return!g[b]}).map(function(b){return"$event.".concat(b,"Key")}).join("||"))}else o.push(d)};for(var l in t.modifiers)s(l);o.length&&(i+=Use(o)),a&&(i+=a);var f=e?"return ".concat(t.value,".apply(null, arguments)"):r?"return (".concat(t.value,").apply(null, arguments)"):n?"return ".concat(t.value):t.value;return"function($event){".concat(i).concat(f,"}")}else return e||r?t.value:"function($event){".concat(n?"return ".concat(t.value):t.value,"}")}function Use(t){return"if(!$event.type.indexOf('key')&&"+"".concat(t.map(qse).join("&&"),")return null;")}function qse(t){var e=parseInt(t,10);if(e)return"$event.keyCode!==".concat(e);var r=P5[t],n=Vse[t];return"_k($event.keyCode,"+"".concat(JSON.stringify(t),",")+"".concat(JSON.stringify(r),",")+"$event.key,"+"".concat(JSON.stringify(n))+")"}function Gse(t,e){t.wrapListeners=function(r){return"_g(".concat(r,",").concat(e.value,")")}}function Xse(t,e){t.wrapData=function(r){return"_b(".concat(r,",'").concat(t.tag,"',").concat(e.value,",").concat(e.modifiers&&e.modifiers.prop?"true":"false").concat(e.modifiers&&e.modifiers.sync?",true":"",")")}}var Zse={on:Gse,bind:Xse,cloak:vi},Kse=function(){function t(e){this.options=e,this.warn=e.warn||Qy,this.transforms=og(e.modules,"transformCode"),this.dataGenFns=og(e.modules,"genData"),this.directives=ln(ln({},Zse),e.directives);var r=e.isReservedTag||Io;this.maybeComponent=function(n){return!!n.component||!r(n.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1}return t}();function D5(t,e){var r=new Kse(e),n=t?t.tag==="script"?"null":Yl(t,r):'_c("div")';return{render:"with(this){return ".concat(n,"}"),staticRenderFns:r.staticRenderFns}}function Yl(t,e){if(t.parent&&(t.pre=t.pre||t.parent.pre),t.staticRoot&&!t.staticProcessed)return L5(t,e);if(t.once&&!t.onceProcessed)return I5(t,e);if(t.for&&!t.forProcessed)return R5(t,e);if(t.if&&!t.ifProcessed)return wO(t,e);if(t.tag==="template"&&!t.slotTarget&&!e.pre)return gd(t,e)||"void 0";if(t.tag==="slot")return sle(t,e);var r=void 0;if(t.component)r=lle(t.component,t,e);else{var n=void 0,i=e.maybeComponent(t);(!t.plain||t.pre&&i)&&(n=N5(t,e));var a=void 0,o=e.options.bindings;i&&o&&o.__isScriptSetup!==!1&&(a=Jse(o,t.tag)),a||(a="'".concat(t.tag,"'"));var s=t.inlineTemplate?null:gd(t,e,!0);r="_c(".concat(a).concat(n?",".concat(n):"").concat(s?",".concat(s):"",")")}for(var l=0;l>>0}function F5(t){return t.type===1?t.tag==="slot"?!0:t.children.some(F5):!1}function v2(t,e){var r=t.attrsMap["slot-scope"];if(t.if&&!t.ifProcessed&&!r)return wO(t,e,v2,"null");if(t.for&&!t.forProcessed)return R5(t,e,v2);var n=t.slotScope===db?"":String(t.slotScope),i="function(".concat(n,"){")+"return ".concat(t.tag==="template"?t.if&&r?"(".concat(t.if,")?").concat(gd(t,e)||"undefined",":undefined"):gd(t,e)||"undefined":Yl(t,e),"}"),a=n?"":",proxy:true";return"{key:".concat(t.slotTarget||'"default"',",fn:").concat(i).concat(a,"}")}function gd(t,e,r,n,i){var a=t.children;if(a.length){var o=a[0];if(a.length===1&&o.for&&o.tag!=="template"&&o.tag!=="slot"){var s=r?e.maybeComponent(o)?",1":",0":"";return"".concat((n||Yl)(o,e)).concat(s)}var l=r?nle(a,e.maybeComponent):0,f=i||ile;return"[".concat(a.map(function(d){return f(d,e)}).join(","),"]").concat(l?",".concat(l):"")}}function nle(t,e){for(var r=0,n=0;n`:`
`,wv.innerHTML.indexOf(" ")>0}var dle=ka?B5(!1):!1,ple=ka?B5(!0):!1,gle=vs(function(t){var e=dO(t);return e&&e.innerHTML}),mle=Vt.prototype.$mount;Vt.prototype.$mount=function(t,e){if(t=t&&dO(t),t===document.body||t===document.documentElement)return this;var r=this.$options;if(!r.render){var n=r.template;if(n)if(typeof n=="string")n.charAt(0)==="#"&&(n=gle(n));else if(n.nodeType)n=n.innerHTML;else return this;else t&&(n=vle(t));if(n){var i=j5(n,{outputSourceRange:!1,shouldDecodeNewlines:dle,shouldDecodeNewlinesForHref:ple,delimiters:r.delimiters,comments:r.comments},this),a=i.render,o=i.staticRenderFns;r.render=a,r.staticRenderFns=o}}return mle.call(this,t,e)};function vle(t){if(t.outerHTML)return t.outerHTML;var e=document.createElement("div");return e.appendChild(t.cloneNode(!0)),e.innerHTML}Vt.compile=j5;/*! - * vuex v3.5.1 - * (c) 2020 Evan You - * @license MIT - */function ble(t){var e=Number(t.version.split(".")[0]);if(e>=2)t.mixin({beforeCreate:n});else{var r=t.prototype._init;t.prototype._init=function(i){i===void 0&&(i={}),i.init=i.init?[n].concat(i.init):n,r.call(this,i)}}function n(){var i=this.$options;i.store?this.$store=typeof i.store=="function"?i.store():i.store:i.parent&&i.parent.$store&&(this.$store=i.parent.$store)}}var yle=typeof window<"u"?window:typeof global<"u"?global:{},wh=yle.__VUE_DEVTOOLS_GLOBAL_HOOK__;function xle(t){wh&&(t._devtoolHook=wh,wh.emit("vuex:init",t),wh.on("vuex:travel-to-state",function(e){t.replaceState(e)}),t.subscribe(function(e,r){wh.emit("vuex:mutation",e,r)},{prepend:!0}),t.subscribeAction(function(e,r){wh.emit("vuex:action",e,r)},{prepend:!0}))}function wle(t,e){return t.filter(e)[0]}function b2(t,e){if(e===void 0&&(e=[]),t===null||typeof t!="object")return t;var r=wle(e,function(i){return i.original===t});if(r)return r.copy;var n=Array.isArray(t)?[]:{};return e.push({original:t,copy:n}),Object.keys(t).forEach(function(i){n[i]=b2(t[i],e)}),n}function zd(t,e){Object.keys(t).forEach(function(r){return e(t[r],r)})}function H5(t){return t!==null&&typeof t=="object"}function _le(t){return t&&typeof t.then=="function"}function kle(t,e){return function(){return t(e)}}var bs=function(e,r){this.runtime=r,this._children=Object.create(null),this._rawModule=e;var n=e.state;this.state=(typeof n=="function"?n():n)||{}},Y5={namespaced:{configurable:!0}};Y5.namespaced.get=function(){return!!this._rawModule.namespaced};bs.prototype.addChild=function(e,r){this._children[e]=r};bs.prototype.removeChild=function(e){delete this._children[e]};bs.prototype.getChild=function(e){return this._children[e]};bs.prototype.hasChild=function(e){return e in this._children};bs.prototype.update=function(e){this._rawModule.namespaced=e.namespaced,e.actions&&(this._rawModule.actions=e.actions),e.mutations&&(this._rawModule.mutations=e.mutations),e.getters&&(this._rawModule.getters=e.getters)};bs.prototype.forEachChild=function(e){zd(this._children,e)};bs.prototype.forEachGetter=function(e){this._rawModule.getters&&zd(this._rawModule.getters,e)};bs.prototype.forEachAction=function(e){this._rawModule.actions&&zd(this._rawModule.actions,e)};bs.prototype.forEachMutation=function(e){this._rawModule.mutations&&zd(this._rawModule.mutations,e)};Object.defineProperties(bs.prototype,Y5);var Vf=function(e){this.register([],e,!1)};Vf.prototype.get=function(e){return e.reduce(function(r,n){return r.getChild(n)},this.root)};Vf.prototype.getNamespace=function(e){var r=this.root;return e.reduce(function(n,i){return r=r.getChild(i),n+(r.namespaced?i+"/":"")},"")};Vf.prototype.update=function(e){W5([],this.root,e)};Vf.prototype.register=function(e,r,n){var i=this;n===void 0&&(n=!0);var a=new bs(r,n);if(e.length===0)this.root=a;else{var o=this.get(e.slice(0,-1));o.addChild(e[e.length-1],a)}r.modules&&zd(r.modules,function(s,l){i.register(e.concat(l),s,n)})};Vf.prototype.unregister=function(e){var r=this.get(e.slice(0,-1)),n=e[e.length-1],i=r.getChild(n);i&&i.runtime&&r.removeChild(n)};Vf.prototype.isRegistered=function(e){var r=this.get(e.slice(0,-1)),n=e[e.length-1];return r.hasChild(n)};function W5(t,e,r){if(e.update(r),r.modules)for(var n in r.modules){if(!e.getChild(n))return;W5(t.concat(n),e.getChild(n),r.modules[n])}}var Fa,po=function(e){var r=this;e===void 0&&(e={}),!Fa&&typeof window<"u"&&window.Vue&&q5(window.Vue);var n=e.plugins;n===void 0&&(n=[]);var i=e.strict;i===void 0&&(i=!1),this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new Vf(e),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new Fa,this._makeLocalGettersCache=Object.create(null);var a=this,o=this,s=o.dispatch,l=o.commit;this.dispatch=function(b,y){return s.call(a,b,y)},this.commit=function(b,y,k){return l.call(a,b,y,k)},this.strict=i;var f=this._modules.root.state;ex(this,f,[],this._modules.root),kO(this,f),n.forEach(function(g){return g(r)});var d=e.devtools!==void 0?e.devtools:Fa.config.devtools;d&&xle(this)},_O={state:{configurable:!0}};_O.state.get=function(){return this._vm._data.$$state};_O.state.set=function(t){};po.prototype.commit=function(e,r,n){var i=this,a=pb(e,r,n),o=a.type,s=a.payload,l={type:o,payload:s},f=this._mutations[o];f&&(this._withCommit(function(){f.forEach(function(g){g(s)})}),this._subscribers.slice().forEach(function(d){return d(l,i.state)}))};po.prototype.dispatch=function(e,r){var n=this,i=pb(e,r),a=i.type,o=i.payload,s={type:a,payload:o},l=this._actions[a];if(l){try{this._actionSubscribers.slice().filter(function(d){return d.before}).forEach(function(d){return d.before(s,n.state)})}catch{}var f=l.length>1?Promise.all(l.map(function(d){return d(o)})):l[0](o);return new Promise(function(d,g){f.then(function(b){try{n._actionSubscribers.filter(function(y){return y.after}).forEach(function(y){return y.after(s,n.state)})}catch{}d(b)},function(b){try{n._actionSubscribers.filter(function(y){return y.error}).forEach(function(y){return y.error(s,n.state,b)})}catch{}g(b)})})}};po.prototype.subscribe=function(e,r){return V5(e,this._subscribers,r)};po.prototype.subscribeAction=function(e,r){var n=typeof e=="function"?{before:e}:e;return V5(n,this._actionSubscribers,r)};po.prototype.watch=function(e,r,n){var i=this;return this._watcherVM.$watch(function(){return e(i.state,i.getters)},r,n)};po.prototype.replaceState=function(e){var r=this;this._withCommit(function(){r._vm._data.$$state=e})};po.prototype.registerModule=function(e,r,n){n===void 0&&(n={}),typeof e=="string"&&(e=[e]),this._modules.register(e,r),ex(this,this.state,e,this._modules.get(e),n.preserveState),kO(this,this.state)};po.prototype.unregisterModule=function(e){var r=this;typeof e=="string"&&(e=[e]),this._modules.unregister(e),this._withCommit(function(){var n=SO(r.state,e.slice(0,-1));Fa.delete(n,e[e.length-1])}),U5(this)};po.prototype.hasModule=function(e){return typeof e=="string"&&(e=[e]),this._modules.isRegistered(e)};po.prototype.hotUpdate=function(e){this._modules.update(e),U5(this,!0)};po.prototype._withCommit=function(e){var r=this._committing;this._committing=!0,e(),this._committing=r};Object.defineProperties(po.prototype,_O);function V5(t,e,r){return e.indexOf(t)<0&&(r&&r.prepend?e.unshift(t):e.push(t)),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}function U5(t,e){t._actions=Object.create(null),t._mutations=Object.create(null),t._wrappedGetters=Object.create(null),t._modulesNamespaceMap=Object.create(null);var r=t.state;ex(t,r,[],t._modules.root,!0),kO(t,r,e)}function kO(t,e,r){var n=t._vm;t.getters={},t._makeLocalGettersCache=Object.create(null);var i=t._wrappedGetters,a={};zd(i,function(s,l){a[l]=kle(s,t),Object.defineProperty(t.getters,l,{get:function(){return t._vm[l]},enumerable:!0})});var o=Fa.config.silent;Fa.config.silent=!0,t._vm=new Fa({data:{$$state:e},computed:a}),Fa.config.silent=o,t.strict&&Ele(t),n&&(r&&t._withCommit(function(){n._data.$$state=null}),Fa.nextTick(function(){return n.$destroy()}))}function ex(t,e,r,n,i){var a=!r.length,o=t._modules.getNamespace(r);if(n.namespaced&&(t._modulesNamespaceMap[o],t._modulesNamespaceMap[o]=n),!a&&!i){var s=SO(e,r.slice(0,-1)),l=r[r.length-1];t._withCommit(function(){Fa.set(s,l,n.state)})}var f=n.context=Sle(t,o,r);n.forEachMutation(function(d,g){var b=o+g;Ale(t,b,d,f)}),n.forEachAction(function(d,g){var b=d.root?g:o+g,y=d.handler||d;Ole(t,b,y,f)}),n.forEachGetter(function(d,g){var b=o+g;Tle(t,b,d,f)}),n.forEachChild(function(d,g){ex(t,e,r.concat(g),d,i)})}function Sle(t,e,r){var n=e==="",i={dispatch:n?t.dispatch:function(a,o,s){var l=pb(a,o,s),f=l.payload,d=l.options,g=l.type;return(!d||!d.root)&&(g=e+g),t.dispatch(g,f)},commit:n?t.commit:function(a,o,s){var l=pb(a,o,s),f=l.payload,d=l.options,g=l.type;(!d||!d.root)&&(g=e+g),t.commit(g,f,d)}};return Object.defineProperties(i,{getters:{get:n?function(){return t.getters}:function(){return Cle(t,e)}},state:{get:function(){return SO(t.state,r)}}}),i}function Cle(t,e){if(!t._makeLocalGettersCache[e]){var r={},n=e.length;Object.keys(t.getters).forEach(function(i){if(i.slice(0,n)===e){var a=i.slice(n);Object.defineProperty(r,a,{get:function(){return t.getters[i]},enumerable:!0})}}),t._makeLocalGettersCache[e]=r}return t._makeLocalGettersCache[e]}function Ale(t,e,r,n){var i=t._mutations[e]||(t._mutations[e]=[]);i.push(function(o){r.call(t,n.state,o)})}function Ole(t,e,r,n){var i=t._actions[e]||(t._actions[e]=[]);i.push(function(o){var s=r.call(t,{dispatch:n.dispatch,commit:n.commit,getters:n.getters,state:n.state,rootGetters:t.getters,rootState:t.state},o);return _le(s)||(s=Promise.resolve(s)),t._devtoolHook?s.catch(function(l){throw t._devtoolHook.emit("vuex:error",l),l}):s})}function Tle(t,e,r,n){t._wrappedGetters[e]||(t._wrappedGetters[e]=function(a){return r(n.state,n.getters,a.state,a.getters)})}function Ele(t){t._vm.$watch(function(){return this._data.$$state},function(){},{deep:!0,sync:!0})}function SO(t,e){return e.reduce(function(r,n){return r[n]},t)}function pb(t,e,r){return H5(t)&&t.type&&(r=e,e=t,t=t.type),{type:t,payload:e,options:r}}function q5(t){Fa&&t===Fa||(Fa=t,ble(Fa))}var G5=rx(function(t,e){var r={};return tx(e).forEach(function(n){var i=n.key,a=n.val;r[i]=function(){var s=this.$store.state,l=this.$store.getters;if(t){var f=nx(this.$store,"mapState",t);if(!f)return;s=f.context.state,l=f.context.getters}return typeof a=="function"?a.call(this,s,l):s[a]},r[i].vuex=!0}),r}),X5=rx(function(t,e){var r={};return tx(e).forEach(function(n){var i=n.key,a=n.val;r[i]=function(){for(var s=[],l=arguments.length;l--;)s[l]=arguments[l];var f=this.$store.commit;if(t){var d=nx(this.$store,"mapMutations",t);if(!d)return;f=d.context.commit}return typeof a=="function"?a.apply(this,[f].concat(s)):f.apply(this.$store,[a].concat(s))}}),r}),Z5=rx(function(t,e){var r={};return tx(e).forEach(function(n){var i=n.key,a=n.val;a=t+a,r[i]=function(){if(!(t&&!nx(this.$store,"mapGetters",t)))return this.$store.getters[a]},r[i].vuex=!0}),r}),K5=rx(function(t,e){var r={};return tx(e).forEach(function(n){var i=n.key,a=n.val;r[i]=function(){for(var s=[],l=arguments.length;l--;)s[l]=arguments[l];var f=this.$store.dispatch;if(t){var d=nx(this.$store,"mapActions",t);if(!d)return;f=d.context.dispatch}return typeof a=="function"?a.apply(this,[f].concat(s)):f.apply(this.$store,[a].concat(s))}}),r}),Ple=function(t){return{mapState:G5.bind(null,t),mapGetters:Z5.bind(null,t),mapMutations:X5.bind(null,t),mapActions:K5.bind(null,t)}};function tx(t){return Mle(t)?Array.isArray(t)?t.map(function(e){return{key:e,val:e}}):Object.keys(t).map(function(e){return{key:e,val:t[e]}}):[]}function Mle(t){return Array.isArray(t)||H5(t)}function rx(t){return function(e,r){return typeof e!="string"?(r=e,e=""):e.charAt(e.length-1)!=="/"&&(e+="/"),t(e,r)}}function nx(t,e,r){var n=t._modulesNamespaceMap[r];return n}function Dle(t){t===void 0&&(t={});var e=t.collapsed;e===void 0&&(e=!0);var r=t.filter;r===void 0&&(r=function(d,g,b){return!0});var n=t.transformer;n===void 0&&(n=function(d){return d});var i=t.mutationTransformer;i===void 0&&(i=function(d){return d});var a=t.actionFilter;a===void 0&&(a=function(d,g){return!0});var o=t.actionTransformer;o===void 0&&(o=function(d){return d});var s=t.logMutations;s===void 0&&(s=!0);var l=t.logActions;l===void 0&&(l=!0);var f=t.logger;return f===void 0&&(f=console),function(d){var g=b2(d.state);typeof f>"u"||(s&&d.subscribe(function(b,y){var k=b2(y);if(r(b,g,k)){var C=p3(),A=i(b),P="mutation "+b.type+C;h3(f,P,e),f.log("%c prev state","color: #9E9E9E; font-weight: bold",n(g)),f.log("%c mutation","color: #03A9F4; font-weight: bold",A),f.log("%c next state","color: #4CAF50; font-weight: bold",n(k)),d3(f)}g=k}),l&&d.subscribeAction(function(b,y){if(a(b,y)){var k=p3(),C=o(b),A="action "+b.type+k;h3(f,A,e),f.log("%c action","color: #03A9F4; font-weight: bold",C),d3(f)}}))}}function h3(t,e,r){var n=r?t.groupCollapsed:t.group;try{n.call(t,e)}catch{t.log(e)}}function d3(t){try{t.groupEnd()}catch{t.log("—— log end ——")}}function p3(){var t=new Date;return" @ "+_v(t.getHours(),2)+":"+_v(t.getMinutes(),2)+":"+_v(t.getSeconds(),2)+"."+_v(t.getMilliseconds(),3)}function Lle(t,e){return new Array(e+1).join(t)}function _v(t,e){return Lle("0",e-t.toString().length)+t}var Ile={Store:po,install:q5,version:"3.5.1",mapState:G5,mapMutations:X5,mapGetters:Z5,mapActions:K5,createNamespacedHelpers:Ple,createLogger:Dle};const ykt=Ile;/*! - * vue-router v3.4.9 - * (c) 2020 Evan You - * @license MIT - */function rs(t,e){for(var r in e)t[r]=e[r];return t}var $le=/[!'()*]/g,Rle=function(t){return"%"+t.charCodeAt(0).toString(16)},Nle=/%2C/g,_h=function(t){return encodeURIComponent(t).replace($le,Rle).replace(Nle,",")};function y2(t){try{return decodeURIComponent(t)}catch{}return t}function Fle(t,e,r){e===void 0&&(e={});var n=r||zle,i;try{i=n(t||"")}catch{i={}}for(var a in e){var o=e[a];i[a]=Array.isArray(o)?o.map(g3):g3(o)}return i}var g3=function(t){return t==null||typeof t=="object"?t:String(t)};function zle(t){var e={};return t=t.trim().replace(/^(\?|#|&)/,""),t&&t.split("&").forEach(function(r){var n=r.replace(/\+/g," ").split("="),i=y2(n.shift()),a=n.length>0?y2(n.join("=")):null;e[i]===void 0?e[i]=a:Array.isArray(e[i])?e[i].push(a):e[i]=[e[i],a]}),e}function jle(t){var e=t?Object.keys(t).map(function(r){var n=t[r];if(n===void 0)return"";if(n===null)return _h(r);if(Array.isArray(n)){var i=[];return n.forEach(function(a){a!==void 0&&(a===null?i.push(_h(r)):i.push(_h(r)+"="+_h(a)))}),i.join("&")}return _h(r)+"="+_h(n)}).filter(function(r){return r.length>0}).join("&"):null;return e?"?"+e:""}var gb=/\/?$/;function mb(t,e,r,n){var i=n&&n.options.stringifyQuery,a=e.query||{};try{a=x2(a)}catch{}var o={name:e.name||t&&t.name,meta:t&&t.meta||{},path:e.path||"/",hash:e.hash||"",query:a,params:e.params||{},fullPath:m3(e,i),matched:t?Ble(t):[]};return r&&(o.redirectedFrom=m3(r,i)),Object.freeze(o)}function x2(t){if(Array.isArray(t))return t.map(x2);if(t&&typeof t=="object"){var e={};for(var r in t)e[r]=x2(t[r]);return e}else return t}var jd=mb(null,{path:"/"});function Ble(t){for(var e=[];t;)e.unshift(t),t=t.parent;return e}function m3(t,e){var r=t.path,n=t.query;n===void 0&&(n={});var i=t.hash;i===void 0&&(i="");var a=e||jle;return(r||"/")+a(n)+i}function J5(t,e){return e===jd?t===e:e?t.path&&e.path?t.path.replace(gb,"")===e.path.replace(gb,"")&&t.hash===e.hash&&v0(t.query,e.query):t.name&&e.name?t.name===e.name&&t.hash===e.hash&&v0(t.query,e.query)&&v0(t.params,e.params):!1:!1}function v0(t,e){if(t===void 0&&(t={}),e===void 0&&(e={}),!t||!e)return t===e;var r=Object.keys(t).sort(),n=Object.keys(e).sort();return r.length!==n.length?!1:r.every(function(i,a){var o=t[i],s=n[a];if(s!==i)return!1;var l=e[i];return o==null||l==null?o===l:typeof o=="object"&&typeof l=="object"?v0(o,l):String(o)===String(l)})}function Hle(t,e){return t.path.replace(gb,"/").indexOf(e.path.replace(gb,"/"))===0&&(!e.hash||t.hash===e.hash)&&Yle(t.query,e.query)}function Yle(t,e){for(var r in e)if(!(r in t))return!1;return!0}function Q5(t){for(var e=0;e=0&&(e=t.slice(n),t=t.slice(0,n));var i=t.indexOf("?");return i>=0&&(r=t.slice(i+1),t=t.slice(0,i)),{path:t,query:r,hash:e}}function uf(t){return t.replace(/\/\//g,"/")}var vb=Array.isArray||function(t){return Object.prototype.toString.call(t)=="[object Array]"},Bd=nz,qle=CO,Gle=Jle,Xle=tz,Zle=rz,Kle=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function CO(t,e){for(var r=[],n=0,i=0,a="",o=e&&e.delimiter||"/",s;(s=Kle.exec(t))!=null;){var l=s[0],f=s[1],d=s.index;if(a+=t.slice(i,d),i=d+l.length,f){a+=f[1];continue}var g=t[i],b=s[2],y=s[3],k=s[4],C=s[5],A=s[6],P=s[7];a&&(r.push(a),a="");var M=b!=null&&g!=null&&g!==b,N=A==="+"||A==="*",W=A==="?"||A==="*",z=s[2]||o,U=k||C;r.push({name:y||n++,prefix:b||"",delimiter:z,optional:W,repeat:N,partial:M,asterisk:!!P,pattern:U?tce(U):P?".*":"[^"+b0(z)+"]+?"})}return i1||!z.length)return z.length===0?e():e("span",{},z)}if(this.tag==="a")W.on=N,W.attrs={href:l,"aria-current":P};else{var U=iz(this.$slots.default);if(U){U.isStatic=!1;var G=U.data=rs({},U.data);G.on=G.on||{};for(var X in G.on){var be=G.on[X];X in N&&(G.on[X]=Array.isArray(be)?be:[be])}for(var re in N)re in G.on?G.on[re].push(N[re]):G.on[re]=M;var le=U.data.attrs=rs({},U.data.attrs);le.href=l,le["aria-current"]=P}else W.on=N}return e(this.tag,W,this.$slots.default)}};function x3(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)&&!t.defaultPrevented&&!(t.button!==void 0&&t.button!==0)){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 iz(t){if(t){for(var e,r=0;r-1&&(k.params[M]=b.params[M]);return k.path=y0(A.path,k.params),d(A,k,y)}else if(k.path){k.params={};for(var N=0;N=t.length?r():t[i]?e(t[i],function(){n(i+1)}):n(i+1)};n(0)}var Uf={redirected:2,aborted:4,cancelled:8,duplicated:16};function bce(t,e){return ax(t,e,Uf.redirected,'Redirected when going from "'+t.fullPath+'" to "'+_ce(e)+'" via a navigation guard.')}function yce(t,e){var r=ax(t,e,Uf.duplicated,'Avoided redundant navigation to current location: "'+t.fullPath+'".');return r.name="NavigationDuplicated",r}function O3(t,e){return ax(t,e,Uf.cancelled,'Navigation cancelled from "'+t.fullPath+'" to "'+e.fullPath+'" with a new navigation.')}function xce(t,e){return ax(t,e,Uf.aborted,'Navigation aborted from "'+t.fullPath+'" to "'+e.fullPath+'" via a navigation guard.')}function ax(t,e,r,n){var i=new Error(n);return i._isRouter=!0,i.from=t,i.to=e,i.type=r,i}var wce=["params","query","hash"];function _ce(t){if(typeof t=="string")return t;if("path"in t)return t.path;var e={};return wce.forEach(function(r){r in t&&(e[r]=t[r])}),JSON.stringify(e,null,2)}function xb(t){return Object.prototype.toString.call(t).indexOf("Error")>-1}function ox(t,e){return xb(t)&&t._isRouter&&(e==null||t.type===e)}function kce(t){return function(e,r,n){var i=!1,a=0,o=null;fz(t,function(s,l,f,d){if(typeof s=="function"&&s.cid===void 0){i=!0,a++;var g=T3(function(C){Cce(C)&&(C=C.default),s.resolved=typeof C=="function"?C:bb.extend(C),f.components[d]=C,a--,a<=0&&n()}),b=T3(function(C){var A="Failed to resolve async component "+d+": "+C;o||(o=xb(C)?C:new Error(A),n(o))}),y;try{y=s(g,b)}catch(C){b(C)}if(y)if(typeof y.then=="function")y.then(g,b);else{var k=y.component;k&&typeof k.then=="function"&&k.then(g,b)}}}),i||n()}}function fz(t,e){return hz(t.map(function(r){return Object.keys(r.components).map(function(n){return e(r.components[n],r.instances[n],r,n)})}))}function hz(t){return Array.prototype.concat.apply([],t)}var Sce=typeof Symbol=="function"&&typeof Symbol.toStringTag=="symbol";function Cce(t){return t.__esModule||Sce&&t[Symbol.toStringTag]==="Module"}function T3(t){var e=!1;return function(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];if(!e)return e=!0,t.apply(this,r)}}var ys=function(e,r){this.router=e,this.base=Ace(r),this.current=jd,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};ys.prototype.listen=function(e){this.cb=e};ys.prototype.onReady=function(e,r){this.ready?e():(this.readyCbs.push(e),r&&this.readyErrorCbs.push(r))};ys.prototype.onError=function(e){this.errorCbs.push(e)};ys.prototype.transitionTo=function(e,r,n){var i=this,a;try{a=this.router.match(e,this.current)}catch(s){throw this.errorCbs.forEach(function(l){l(s)}),s}var o=this.current;this.confirmTransition(a,function(){i.updateRoute(a),r&&r(a),i.ensureURL(),i.router.afterHooks.forEach(function(s){s&&s(a,o)}),i.ready||(i.ready=!0,i.readyCbs.forEach(function(s){s(a)}))},function(s){n&&n(s),s&&!i.ready&&(!ox(s,Uf.redirected)||o!==jd)&&(i.ready=!0,i.readyErrorCbs.forEach(function(l){l(s)}))})};ys.prototype.confirmTransition=function(e,r,n){var i=this,a=this.current;this.pending=e;var o=function(C){!ox(C)&&xb(C)&&(i.errorCbs.length?i.errorCbs.forEach(function(A){A(C)}):console.error(C)),n&&n(C)},s=e.matched.length-1,l=a.matched.length-1;if(J5(e,a)&&s===l&&e.matched[s]===a.matched[l])return this.ensureURL(),o(yce(a,e));var f=Oce(this.current.matched,e.matched),d=f.updated,g=f.deactivated,b=f.activated,y=[].concat(Ece(g),this.router.beforeHooks,Pce(d),b.map(function(C){return C.beforeEnter}),kce(b)),k=function(C,A){if(i.pending!==e)return o(O3(a,e));try{C(e,a,function(P){P===!1?(i.ensureURL(!0),o(xce(a,e))):xb(P)?(i.ensureURL(!0),o(P)):typeof P=="string"||typeof P=="object"&&(typeof P.path=="string"||typeof P.name=="string")?(o(bce(a,e)),typeof P=="object"&&P.replace?i.replace(P):i.push(P)):A(P)})}catch(P){o(P)}};A3(y,k,function(){var C=Mce(b),A=C.concat(i.router.resolveHooks);A3(A,k,function(){if(i.pending!==e)return o(O3(a,e));i.pending=null,r(e),i.router.app&&i.router.app.$nextTick(function(){Q5(e)})})})};ys.prototype.updateRoute=function(e){this.current=e,this.cb&&this.cb(e)};ys.prototype.setupListeners=function(){};ys.prototype.teardown=function(){this.listeners.forEach(function(e){e()}),this.listeners=[],this.current=jd,this.pending=null};function Ace(t){if(!t)if(wm){var e=document.querySelector("base");t=e&&e.getAttribute("href")||"/",t=t.replace(/^https?:\/\/[^\/]+/,"")}else t="/";return t.charAt(0)!=="/"&&(t="/"+t),t.replace(/\/$/,"")}function Oce(t,e){var r,n=Math.max(t.length,e.length);for(r=0;r0)){var i=this.router,a=i.options.scrollBehavior,o=zc&&a;o&&this.listeners.push(cz());var s=function(){var l=n.current,f=Gp(n.base);n.current===jd&&f===n._startLocation||n.transitionTo(f,function(d){o&&ff(i,d,l,!0)})};window.addEventListener("popstate",s),this.listeners.push(function(){window.removeEventListener("popstate",s)})}},e.prototype.go=function(n){window.history.go(n)},e.prototype.push=function(n,i,a){var o=this,s=this,l=s.current;this.transitionTo(n,function(f){yb(uf(o.base+f.fullPath)),ff(o.router,f,l,!1),i&&i(f)},a)},e.prototype.replace=function(n,i,a){var o=this,s=this,l=s.current;this.transitionTo(n,function(f){k2(uf(o.base+f.fullPath)),ff(o.router,f,l,!1),i&&i(f)},a)},e.prototype.ensureURL=function(n){if(Gp(this.base)!==this.current.fullPath){var i=uf(this.base+this.current.fullPath);n?yb(i):k2(i)}},e.prototype.getCurrentLocation=function(){return Gp(this.base)},e}(ys);function Gp(t){var e=window.location.pathname;return t&&e.toLowerCase().indexOf(t.toLowerCase())===0&&(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var gz=function(t){function e(r,n,i){t.call(this,r,n),!(i&&Lce(this.base))&&E3()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var n=this;if(!(this.listeners.length>0)){var i=this.router,a=i.options.scrollBehavior,o=zc&&a;o&&this.listeners.push(cz());var s=function(){var f=n.current;E3()&&n.transitionTo(x0(),function(d){o&&ff(n.router,d,f,!0),zc||w0(d.fullPath)})},l=zc?"popstate":"hashchange";window.addEventListener(l,s),this.listeners.push(function(){window.removeEventListener(l,s)})}},e.prototype.push=function(n,i,a){var o=this,s=this,l=s.current;this.transitionTo(n,function(f){P3(f.fullPath),ff(o.router,f,l,!1),i&&i(f)},a)},e.prototype.replace=function(n,i,a){var o=this,s=this,l=s.current;this.transitionTo(n,function(f){w0(f.fullPath),ff(o.router,f,l,!1),i&&i(f)},a)},e.prototype.go=function(n){window.history.go(n)},e.prototype.ensureURL=function(n){var i=this.current.fullPath;x0()!==i&&(n?P3(i):w0(i))},e.prototype.getCurrentLocation=function(){return x0()},e}(ys);function Lce(t){var e=Gp(t);if(!/^\/#/.test(e))return window.location.replace(uf(t+"/#"+e)),!0}function E3(){var t=x0();return t.charAt(0)==="/"?!0:(w0("/"+t),!1)}function x0(){var t=window.location.href,e=t.indexOf("#");return e<0?"":(t=t.slice(e+1),t)}function S2(t){var e=window.location.href,r=e.indexOf("#"),n=r>=0?e.slice(0,r):e;return n+"#"+t}function P3(t){zc?yb(S2(t)):window.location.hash=t}function w0(t){zc?k2(S2(t)):window.location.replace(S2(t))}var Ice=function(t){function e(r,n){t.call(this,r,n),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(n,i,a){var o=this;this.transitionTo(n,function(s){o.stack=o.stack.slice(0,o.index+1).concat(s),o.index++,i&&i(s)},a)},e.prototype.replace=function(n,i,a){var o=this;this.transitionTo(n,function(s){o.stack=o.stack.slice(0,o.index).concat(s),i&&i(s)},a)},e.prototype.go=function(n){var i=this,a=this.index+n;if(!(a<0||a>=this.stack.length)){var o=this.stack[a];this.confirmTransition(o,function(){var s=i.current;i.index=a,i.updateRoute(o),i.router.afterHooks.forEach(function(l){l&&l(o,s)})},function(s){ox(s,Uf.duplicated)&&(i.index=a)})}},e.prototype.getCurrentLocation=function(){var n=this.stack[this.stack.length-1];return n?n.fullPath:"/"},e.prototype.ensureURL=function(){},e}(ys),ri=function(e){e===void 0&&(e={}),this.app=null,this.apps=[],this.options=e,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=uce(e.routes||[],this);var r=e.mode||"hash";switch(this.fallback=r==="history"&&!zc&&e.fallback!==!1,this.fallback&&(r="hash"),wm||(r="abstract"),this.mode=r,r){case"history":this.history=new pz(this,e.base);break;case"hash":this.history=new gz(this,e.base,this.fallback);break;case"abstract":this.history=new Ice(this,e.base);break}},mz={currentRoute:{configurable:!0}};ri.prototype.match=function(e,r,n){return this.matcher.match(e,r,n)};mz.currentRoute.get=function(){return this.history&&this.history.current};ri.prototype.init=function(e){var r=this;if(this.apps.push(e),e.$once("hook:destroyed",function(){var o=r.apps.indexOf(e);o>-1&&r.apps.splice(o,1),r.app===e&&(r.app=r.apps[0]||null),r.app||r.history.teardown()}),!this.app){this.app=e;var n=this.history;if(n instanceof pz||n instanceof gz){var i=function(o){var s=n.current,l=r.options.scrollBehavior,f=zc&&l;f&&"fullPath"in o&&ff(r,o,s,!1)},a=function(o){n.setupListeners(),i(o)};n.transitionTo(n.getCurrentLocation(),a,a)}n.listen(function(o){r.apps.forEach(function(s){s._route=o})})}};ri.prototype.beforeEach=function(e){return PO(this.beforeHooks,e)};ri.prototype.beforeResolve=function(e){return PO(this.resolveHooks,e)};ri.prototype.afterEach=function(e){return PO(this.afterHooks,e)};ri.prototype.onReady=function(e,r){this.history.onReady(e,r)};ri.prototype.onError=function(e){this.history.onError(e)};ri.prototype.push=function(e,r,n){var i=this;if(!r&&!n&&typeof Promise<"u")return new Promise(function(a,o){i.history.push(e,a,o)});this.history.push(e,r,n)};ri.prototype.replace=function(e,r,n){var i=this;if(!r&&!n&&typeof Promise<"u")return new Promise(function(a,o){i.history.replace(e,a,o)});this.history.replace(e,r,n)};ri.prototype.go=function(e){this.history.go(e)};ri.prototype.back=function(){this.go(-1)};ri.prototype.forward=function(){this.go(1)};ri.prototype.getMatchedComponents=function(e){var r=e?e.matched?e:this.resolve(e).route:this.currentRoute;return r?[].concat.apply([],r.matched.map(function(n){return Object.keys(n.components).map(function(i){return n.components[i]})})):[]};ri.prototype.resolve=function(e,r,n){r=r||this.history.current;var i=TO(e,r,n,this),a=this.match(i,r),o=a.redirectedFrom||a.fullPath,s=this.history.base,l=$ce(s,o,this.mode);return{location:i,route:a,href:l,normalizedTo:i,resolved:a}};ri.prototype.addRoutes=function(e){this.matcher.addRoutes(e),this.history.current!==jd&&this.history.transitionTo(this.history.getCurrentLocation())};Object.defineProperties(ri.prototype,mz);function PO(t,e){return t.push(e),function(){var r=t.indexOf(e);r>-1&&t.splice(r,1)}}function $ce(t,e,r){var n=r==="hash"?"#"+e:e;return t?uf(t+"/"+n):n}ri.install=w2;ri.version="3.4.9";ri.isNavigationFailure=ox;ri.NavigationFailureType=Uf;wm&&window.Vue&&window.Vue.use(ri);const xkt=ri;var vz={exports:{}};(function(t,e){(function(n,i){t.exports=i(Vt)})(Dn,function(r){return function(n){var i={};function a(o){if(i[o])return i[o].exports;var s=i[o]={i:o,l:!1,exports:{}};return n[o].call(s.exports,s,s.exports,a),s.l=!0,s.exports}return a.m=n,a.c=i,a.i=function(o){return o},a.d=function(o,s,l){a.o(o,s)||Object.defineProperty(o,s,{configurable:!1,enumerable:!0,get:l})},a.n=function(o){var s=o&&o.__esModule?function(){return o.default}:function(){return o};return a.d(s,"a",s),s},a.o=function(o,s){return Object.prototype.hasOwnProperty.call(o,s)},a.p="/dist/",a(a.s=2)}([function(n,i){n.exports=function(o,s,l,f){var d,g=o=o||{},b=typeof o.default;(b==="object"||b==="function")&&(d=o,g=o.default);var y=typeof g=="function"?g.options:g;if(s&&(y.render=s.render,y.staticRenderFns=s.staticRenderFns),l&&(y._scopeId=l),f){var k=Object.create(y.computed||null);Object.keys(f).forEach(function(C){var A=f[C];k[C]=function(){return A}}),y.computed=k}return{esModule:d,exports:g,options:y}}},function(n,i,a){a.d(i,"a",function(){return l});var o=a(20),s=a.n(o),l=new s.a({name:"vue-notification"})},function(n,i,a){Object.defineProperty(i,"__esModule",{value:!0});var o=a(3),s=a.n(o),l=a(1),f=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(g){return typeof g}:function(g){return g&&typeof Symbol=="function"&&g.constructor===Symbol&&g!==Symbol.prototype?"symbol":typeof g},d={install:function(b){var y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!this.installed){this.installed=!0,this.params=y,b.component(y.componentName||"notifications",s.a);var k=function(P){typeof P=="string"&&(P={title:"",text:P}),(typeof P>"u"?"undefined":f(P))==="object"&&l.a.$emit("add",P)};k.close=function(A){l.a.$emit("close",A)};var C=y.name||"notify";b.prototype["$"+C]=k,b[C]=k}}};i.default=d},function(n,i,a){a(17);var o=a(0)(a(5),a(15),null,null);n.exports=o.exports},function(n,i,a){Object.defineProperty(i,"__esModule",{value:!0}),i.default={name:"CssGroup",props:["name"]}},function(n,i,a){Object.defineProperty(i,"__esModule",{value:!0});var o=a(2),s=a(1),l=a(9),f=a(7),d=a(13),g=a.n(d),b=a(12),y=a.n(b),k=a(8);function C(M,N,W){return N in M?Object.defineProperty(M,N,{value:W,enumerable:!0,configurable:!0,writable:!0}):M[N]=W,M}var A={IDLE:0,DESTROYED:2},P={name:"Notifications",components:{VelocityGroup:g.a,CssGroup:y.a},props:{group:{type:String,default:""},width:{type:[Number,String],default:300},reverse:{type:Boolean,default:!1},position:{type:[String,Array],default:function(){return f.a.position}},classes:{type:String,default:"vue-notification"},animationType:{type:String,default:"css",validator:function(N){return N==="css"||N==="velocity"}},animation:{type:Object,default:function(){return f.a.velocityAnimation}},animationName:{type:String,default:f.a.cssAnimation},speed:{type:Number,default:300},cooldown:{type:Number,default:0},duration:{type:Number,default:3e3},delay:{type:Number,default:0},max:{type:Number,default:1/0},ignoreDuplicates:{type:Boolean,default:!1},closeOnClick:{type:Boolean,default:!0}},data:function(){return{list:[],velocity:o.default.params.velocity}},mounted:function(){s.a.$on("add",this.addItem),s.a.$on("close",this.closeItem)},computed:{actualWidth:function(){return a.i(k.a)(this.width)},isVA:function(){return this.animationType==="velocity"},componentName:function(){return this.isVA?"VelocityGroup":"CssGroup"},styles:function(){var N=a.i(l.a)(this.position),W=N.x,z=N.y,U=this.actualWidth.value,G=this.actualWidth.type,X=C({width:U+G},z,"0px");return W==="center"?X.left="calc(50% - "+U/2+G+")":X[W]="0px",X},active:function(){return this.list.filter(function(N){return N.state!==A.DESTROYED})},botToTop:function(){return this.styles.hasOwnProperty("bottom")}},methods:{destroyIfNecessary:function(N){this.closeOnClick&&this.destroy(N)},addItem:function(N){var W=this;if(N.group=N.group||"",this.group===N.group){if(N.clean||N.clear){this.destroyAll();return}var z=typeof N.duration=="number"?N.duration:this.duration,U=typeof N.speed=="number"?N.speed:this.speed,G=typeof N.ignoreDuplicates=="boolean"?N.ignoreDuplicates:this.ignoreDuplicates,X=N.title,be=N.text,re=N.type,le=N.data,te=N.id,ae={id:te||a.i(l.b)(),title:X,text:be,type:re,state:A.IDLE,speed:U,length:z+2*U,data:le};z>=0&&(ae.timer=setTimeout(function(){W.destroy(ae)},ae.length));var pe=this.reverse?!this.botToTop:this.botToTop,ke=-1,Re=this.active.some(function(Xe){return Xe.title===N.title&&Xe.text===N.text}),Be=G?!Re:!0;Be&&(pe?(this.list.push(ae),this.active.length>this.max&&(ke=0)):(this.list.unshift(ae),this.active.length>this.max&&(ke=this.active.length-1)),ke!==-1&&this.destroy(this.active[ke]))}},closeItem:function(N){this.destroyById(N)},notifyClass:function(N){return["vue-notification-template",this.classes,N.type]},notifyWrapperStyle:function(N){return this.isVA?null:{transition:"all "+N.speed+"ms"}},destroy:function(N){clearTimeout(N.timer),N.state=A.DESTROYED,this.isVA||this.clean()},destroyById:function(N){var W=this.list.find(function(z){return z.id===N});W&&this.destroy(W)},destroyAll:function(){this.active.forEach(this.destroy)},getAnimation:function(N,W){var z=this.animation[N];return typeof z=="function"?z.call(this,W):z},enter:function(N){var W=N.el,z=N.complete,U=this.getAnimation("enter",W);this.velocity(W,U,{duration:this.speed,complete:z})},leave:function(N){var W=N.el,z=N.complete,U=this.getAnimation("leave",W);this.velocity(W,U,{duration:this.speed,complete:z})},clean:function(){this.list=this.list.filter(function(N){return N.state!==A.DESTROYED})}}};i.default=P},function(n,i,a){Object.defineProperty(i,"__esModule",{value:!0}),i.default={name:"VelocityGroup",methods:{enter:function(s,l){this.$emit("enter",{el:s,complete:l})},leave:function(s,l){this.$emit("leave",{el:s,complete:l})},afterLeave:function(){this.$emit("afterLeave")}}}},function(n,i,a){i.a={position:["top","right"],cssAnimation:"vn-fade",velocityAnimation:{enter:function(s){var l=s.clientHeight;return{height:[l,0],opacity:[1,0]}},leave:{height:0,opacity:[0,1]}}}},function(n,i,a){var o=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(g){return typeof g}:function(g){return g&&typeof Symbol=="function"&&g.constructor===Symbol&&g!==Symbol.prototype?"symbol":typeof g},s="[-+]?[0-9]*.?[0-9]+",l=[{name:"px",regexp:new RegExp("^"+s+"px$")},{name:"%",regexp:new RegExp("^"+s+"%$")},{name:"px",regexp:new RegExp("^"+s+"$")}],f=function(b){if(b==="auto")return{type:b,value:0};for(var y=0;y"u"?"undefined":o(b)){case"number":return{type:"px",value:b};case"string":return f(b);default:return{type:"",value:b}}};i.a=d},function(n,i,a){a.d(i,"b",function(){return s}),a.d(i,"a",function(){return f});var o={x:["left","center","right"],y:["top","bottom"]},s=function(d){return function(){return d++}}(0),l=function(g){return typeof g!="string"?[]:g.split(/\s+/gi).filter(function(b){return b})},f=function(g){typeof g=="string"&&(g=l(g));var b=null,y=null;return g.forEach(function(k){o.y.indexOf(k)!==-1&&(y=k),o.x.indexOf(k)!==-1&&(b=k)}),{x:b,y}}},function(n,i,a){i=n.exports=a(11)(),i.push([n.i,".vue-notification-group{display:block;position:fixed;z-index:5000}.vue-notification-wrapper{display:block;overflow:hidden;width:100%;margin:0;padding:0}.notification-title{font-weight:600}.vue-notification-template{background:#fff}.vue-notification,.vue-notification-template{display:block;box-sizing:border-box;text-align:left}.vue-notification{font-size:12px;padding:10px;margin:0 5px 5px;color:#fff;background:#44a4fc;border-left:5px solid #187fe7}.vue-notification.warn{background:#ffb648;border-left-color:#f48a06}.vue-notification.error{background:#e54d42;border-left-color:#b82e24}.vue-notification.success{background:#68cd86;border-left-color:#42a85f}.vn-fade-enter-active,.vn-fade-leave-active,.vn-fade-move{transition:all .5s}.vn-fade-enter,.vn-fade-leave-to{opacity:0}",""])},function(n,i){n.exports=function(){var a=[];return a.toString=function(){for(var s=[],l=0;lG.parts.length&&(X.parts.length=G.parts.length)}else{for(var re=[],be=0;be0;var Bce=function(){var t=!1;if(Ci)try{var e={get passive(){t=!0}};mi.addEventListener("test",e,e),mi.removeEventListener("test",e,e)}catch{t=!1}return t}();Ci&&("ontouchstart"in Yd.documentElement||wz.maxTouchPoints>0);Ci&&(mi.PointerEvent||mi.MSPointerEvent);Ci&&"IntersectionObserver"in mi&&"IntersectionObserverEntry"in mi&&"intersectionRatio"in mi.IntersectionObserverEntry.prototype;var Hce="$bvConfig",Yce=["xs","sm","md","lg","xl"],Wce=/^(BV?)/,Vce=/\B([A-Z])/g,w_=/\s+/,Uce=/%2C/g,qce=/[!'()*]/g,Gce=/^col-/;function _0(t){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_0=function(r){return typeof r}:_0=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},_0(t)}function sx(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function lx(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&$g(t,e)}function cx(t){var e=_z();return function(){var n=Rg(t),i;if(e){var a=Rg(this).constructor;i=Reflect.construct(n,arguments,a)}else i=n.apply(this,arguments);return Xce(this,i)}}function Xce(t,e){return e&&(_0(e)==="object"||typeof e=="function")?e:Zce(t)}function Zce(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function wb(t){var e=typeof Map=="function"?new Map:void 0;return wb=function(n){if(n===null||!Kce(n))return n;if(typeof n!="function")throw new TypeError("Super expression must either be null or a function");if(typeof e<"u"){if(e.has(n))return e.get(n);e.set(n,i)}function i(){return k0(n,arguments,Rg(this).constructor)}return i.prototype=Object.create(n.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),$g(i,n)},wb(t)}function k0(t,e,r){return _z()?k0=Reflect.construct:k0=function(i,a,o){var s=[null];s.push.apply(s,a);var l=Function.bind.apply(i,s),f=new l;return o&&$g(f,o.prototype),f},k0.apply(null,arguments)}function _z(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function Kce(t){return Function.toString.call(t).indexOf("[native code]")!==-1}function $g(t,e){return $g=Object.setPrototypeOf||function(n,i){return n.__proto__=i,n},$g(t,e)}function Rg(t){return Rg=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},Rg(t)}var MO=Hd?mi.Element:function(t){lx(r,t);var e=cx(r);function r(){return sx(this,r),e.apply(this,arguments)}return r}(wb(Object)),jc=Hd?mi.HTMLElement:function(t){lx(r,t);var e=cx(r);function r(){return sx(this,r),e.apply(this,arguments)}return r}(MO),kz=Hd?mi.SVGElement:function(t){lx(r,t);var e=cx(r);function r(){return sx(this,r),e.apply(this,arguments)}return r}(MO);Hd&&mi.File;function sg(t){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?sg=function(r){return typeof r}:sg=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},sg(t)}var ux=function(e){return sg(e)},Jc=function(e){return e===void 0},Wl=function(e){return e===null},Vl=function(e){return Jc(e)||Wl(e)},Ai=function(e){return ux(e)==="function"},Ng=function(e){return ux(e)==="boolean"},ao=function(e){return ux(e)==="string"},Sz=function(e){return ux(e)==="number"},vd=function(e){return Array.isArray(e)},Ll=function(e){return e!==null&&sg(e)==="object"},Qc=function(e){return Object.prototype.toString.call(e)==="[object Object]"},M3=function(e){return e instanceof Date},fx=function(e){return e instanceof Event};function D3(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),r.push.apply(r,n)}return r}function bd(t){for(var e=1;et.length)&&(e=t.length);for(var r=0,n=new Array(e);r1&&arguments[1]!==void 0?arguments[1]:e;return vd(e)?e.reduce(function(n,i){return[].concat(tue(n),[t(i,i)])},[]):Qc(e)?Gn(e).reduce(function(n,i){return I3(I3({},n),{},Az({},i,t(e[i],e[i])))},{}):r},so=function(e){return e},$3=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,n=typeof process<"u"&&process?process.env||{}:{};return e?n[e]||r:n},oue=function(){return $3("BOOTSTRAP_VUE_NO_WARN")||$3("NODE_ENV")==="production"},Cm=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;oue()||console.warn("[BootstrapVue warn]: ".concat(r?"".concat(r," - "):"").concat(e))},sue=function(e){return zce?!1:(Cm("".concat(e,": Requires MutationObserver support.")),!0)},Oz="BButton",Tz="BButtonClose",Ez="BCol",qf="BCollapse",Pf="BDropdown",Pz="BDropdownDivider",Mz="BDropdownForm",Dz="BDropdownItem",Lz="BForm",Iz="BFormGroup",$z="BFormInvalidFeedback",Rz="BFormRow",Nz="BFormText",Fz="BFormValidFeedback",LO="BLink",Al="BModal",zz="BNav",hx="BPagination",jz="BTab",Bz="BTabs",Hu="BTooltip",lue="BVCollapse",cue="BVPopper",uue="BVTabButton",fue="BVTooltip",hue="BVTooltipTemplate",due="BVTransition",pue="BVTransporter",gue="BVTransporterTarget",mue="activate-tab",vue="cancel",Hz="change",bue="changed",eu="click",O2="close",T2="disable",S0="disabled",E2="enable",C0="enabled",Yz="first",Wz="focusin",Vz="focusout",na="hidden",Xs="hide",yue="input",Uz="last",qz="mouseenter",Gz="mouseleave",Xz="next",xue="ok",R3="open",wue="page-click",Zz="prev",lo="show",Zs="shown",Kz="toggle",Fg="hook:beforeDestroy",Jz="hook:destroyed",IO="update:",Qz="bv",e8="::",Mn={passive:!0,capture:!1},t8=void 0,$O=Array,Et=Boolean,RO=Function,hf=Number,Ks=Object,gt=String,_ue=[$O,RO],An=[$O,Ks,gt],zg=[$O,gt],_b=[Et,hf,gt],kue=[RO,gt],za=[hf,gt],Sue=[hf,Ks,gt],r8=[Ks,gt],N3="button-content",tu="default",Cue="description",Aue="ellipsis-text",Oue="empty",Tue="first-text",Eue="invalid-feedback",Pue="label",Mue="last-text",Due="modal-backdrop",F3="modal-cancel",Lue="modal-footer",Iue="modal-header",$ue="modal-header-close",z3="modal-ok",__="modal-title",Rue="next-text",Nue="page",Fue="prev-text",zue="tabs-end",jue="tabs-start",n8="title",Bue="valid-feedback",i8=function(){return Array.from.apply(Array,arguments)},fa=function(e,r){return e.indexOf(r)!==-1},ds=function(){for(var e=arguments.length,r=new Array(e),n=0;n1&&arguments[1]!==void 0?arguments[1]:NaN,n=parseInt(e,10);return isNaN(n)?r:n},Vh=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NaN,n=parseFloat(e);return isNaN(n)?r:n},Yue=function(e){return e.replace(Vce,"-$1").toLowerCase()},Wue=function(e){return e=ao(e)?e.trim():String(e),e.charAt(0).toUpperCase()+e.slice(1)},cs=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:2;return Vl(e)?"":vd(e)||Qc(e)&&e.toString===Object.prototype.toString?JSON.stringify(e,null,r):String(e)},j3=function(e){return cs(e).toLowerCase()},A0=MO.prototype,Vue=["button","[href]:not(.disabled)","input","select","textarea","[tabindex]","[contenteditable]"].map(function(t){return"".concat(t,":not(:disabled):not([disabled])")}).join(", "),Uue=A0.matches||A0.msMatchesSelector||A0.webkitMatchesSelector,que=A0.closest||function(t){var e=this;do{if(s8(e,t))return e;e=e.parentElement||e.parentNode}while(!Wl(e)&&e.nodeType===Node.ELEMENT_NODE);return null},as=mi.requestAnimationFrame||mi.webkitRequestAnimationFrame||mi.mozRequestAnimationFrame||mi.msRequestAnimationFrame||mi.oRequestAnimationFrame||function(t){return setTimeout(t,16)},Gue=mi.MutationObserver||mi.WebKitMutationObserver||mi.MozMutationObserver||null,Xue=function(e){return e&&e.parentNode&&e.parentNode.removeChild(e)},ni=function(e){return!!(e&&e.nodeType===Node.ELEMENT_NODE)},kb=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],r=Yd.activeElement;return r&&!e.some(function(n){return n===r})?r:null},dx=function(e,r){return cs(e).toLowerCase()===cs(r).toLowerCase()},a8=function(e){return ni(e)&&e===kb()},Mf=function(e){if(!ni(e)||!e.parentNode||!Di(Yd.body,e)||Zp(e,"display")==="none")return!1;var r=Sb(e);return!!(r&&r.height>0&&r.width>0)},Xp=function(e){return!ni(e)||e.disabled||ad(e,"disabled")||FO(e,"disabled")},o8=function(e){return ni(e)&&e.offsetHeight},Bc=function(e,r){return i8((ni(r)?r:Yd).querySelectorAll(e))},Am=function(e,r){return(ni(r)?r:Yd).querySelector(e)||null},s8=function(e,r){return ni(e)?Uue.call(e,r):!1},jg=function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;if(!ni(r))return null;var i=que.call(r,e);return n?i:i===r?null:i},Di=function(e,r){return e&&Ai(e.contains)?e.contains(r):!1},B3=function(e){return Yd.getElementById(/^#/.test(e)?e.slice(1):e)||null},Uh=function(e,r){r&&ni(e)&&e.classList&&e.classList.add(r)},NO=function(e,r){r&&ni(e)&&e.classList&&e.classList.remove(r)},FO=function(e,r){return r&&ni(e)&&e.classList?e.classList.contains(r):!1},ns=function(e,r,n){r&&ni(e)&&e.setAttribute(r,n)},id=function(e,r){r&&ni(e)&&e.removeAttribute(r)},Il=function(e,r){return r&&ni(e)?e.getAttribute(r):null},ad=function(e,r){return r&&ni(e)?e.hasAttribute(r):null},La=function(e,r,n){r&&ni(e)&&(e.style[r]=n)},l8=function(e,r){r&&ni(e)&&(e.style[r]="")},Zp=function(e,r){return r&&ni(e)&&e.style[r]||null},Sb=function(e){return ni(e)?e.getBoundingClientRect():null},El=function(e){var r=mi.getComputedStyle;return r&&ni(e)?r(e):{}},Zue=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:document;return Bc(Vue,e).filter(Mf).filter(function(r){return r.tabIndex>-1&&!r.disabled})},_i=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};try{e.focus(r)}catch{}return a8(e)},Kue=function(e){try{e.blur()}catch{}return!a8(e)},zO=function(e){var r=Zu(null);return function(){for(var n=arguments.length,i=new Array(n),a=0;a1&&arguments[1]!==void 0?arguments[1]:void 0,n=Jue[Hce];return n?n.getConfigValue(e,r):Sm(r)},Ih=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0;return r?P2("".concat(e,".").concat(r),n):P2(e,{})},Que=function(){return P2("breakpoints",Yce)},efe=zO(function(){return Que()}),tfe=function(){return Sm(efe())},Cb=zO(function(){var t=tfe();return t[0]="",t});function H3(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),r.push.apply(r,n)}return r}function df(t){for(var e=1;e0&&arguments[0]!==void 0?arguments[0]:t8,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:void 0,a=n===!0;return i=a?i:n,df(df(df({},e?{type:e}:{}),a?{required:a}:Jc(r)?{}:{default:Ll(r)?function(){return r}:r}),Jc(i)?{}:{validator:i})},jO=function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:so;return(vd(e)?e.slice():Gn(e)).reduce(function(i,a){return i[n(a)]=r[a],i},{})},u8=function(e,r,n){return df(df({},Sm(e)),{},{default:function(){var a=Ih(n,r,e.default);return Ai(a)?a():a}})},Hn=function(e,r){return Gn(e).reduce(function(n,i){return df(df({},n),{},c8({},i,u8(e[i],i,r)))},{})},rfe=u8({},"","").default.name,nfe=function(e){return Ai(e)&&e.name!==rfe};function ife(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var px=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=r.type,i=n===void 0?t8:n,a=r.defaultValue,o=a===void 0?void 0:a,s=r.validator,l=s===void 0?void 0:s,f=r.event,d=f===void 0?yue:f,g=ife({},e,Ce(i,o,l)),b=Vt.extend({model:{prop:e,event:d},props:g});return{mixin:b,props:g,prop:e,event:d}},f8=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return e=ds(e).filter(so),e.some(function(i){return r[i]||n[i]})},h8=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};e=ds(e).filter(so);for(var a,o=0;o0&&arguments[0]!==void 0?arguments[0]:tu,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.$scopedSlots,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.$slots;return f8(e,r,n)},normalizeSlot:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:tu,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.$scopedSlots,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:this.$slots,a=h8(e,r,n,i);return a&&ds(a)}}}),d8=function(e){return Bce?Ll(e)?e:{capture:!!e||!1}:!!(Ll(e)?e.capture:e)},$a=function(e,r,n,i){e&&e.addEventListener&&e.addEventListener(r,n,d8(i))},ps=function(e,r,n,i){e&&e.removeEventListener&&e.removeEventListener(r,n,d8(i))},M2=function(e){for(var r=e?$a:ps,n=arguments.length,i=new Array(n>1?n-1:0),a=1;a1&&arguments[1]!==void 0?arguments[1]:{},n=r.preventDefault,i=n===void 0?!0:n,a=r.propagation,o=a===void 0?!0:a,s=r.immediatePropagation,l=s===void 0?!1:s;i&&e.preventDefault(),o&&e.stopPropagation(),l&&e.stopImmediatePropagation()},p8=function(e){return Yue(e.replace(Wce,""))},Fo=function(e,r){return[Qz,p8(e),r].join(e8)},$l=function(e,r){return[Qz,r,p8(e)].join(e8)};function afe(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var ofe=Hn({ariaLabel:Ce(gt,"Close"),content:Ce(gt,"×"),disabled:Ce(Et,!1),textVariant:Ce(gt)},Tz),sfe=Vt.extend({name:Tz,functional:!0,props:ofe,render:function(e,r){var n=r.props,i=r.data,a=r.slots,o=r.scopedSlots,s=a(),l=o||{},f={staticClass:"close",class:afe({},"text-".concat(n.textVariant),n.textVariant),attrs:{type:"button",disabled:n.disabled,"aria-label":n.ariaLabel?String(n.ariaLabel):null},on:{click:function(g){n.disabled&&fx(g)&&ia(g)}}};return f8(tu,l,s)||(f.domProps={innerHTML:n.content}),e("button",go(i,f),h8(tu,{},l,s))}});function Y3(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),r.push.apply(r,n)}return r}function qh(t){for(var e=1;e0&&arguments[0]!==void 0?arguments[0]:{},r=e.target,n=e.rel;return r==="_blank"&&Wl(n)?"noopener":n||null},bfe=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=e.href,n=e.to,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:m8,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"#",o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"/";if(r)return r;if(v8(i))return null;if(ao(n))return n||o;if(Qc(n)&&(n.path||n.query||n.hash)){var s=cs(n.path),l=pfe(n.query),f=cs(n.hash);return f=!f||f.charAt(0)==="#"?f:"#".concat(f),"".concat(s).concat(l).concat(f)||o}return a},Ab=40,W3=35,b8=13,y8=27,V3=36,x8=37,w8=39,gx=32,HO=38,yfe=function(e,r){if(e.length!==r.length)return!1;for(var n=!0,i=0;n&&i1?n-1:0),a=1;at.length)&&(e=t.length);for(var r=0,n=new Array(e);r0||l.removedNodes.length>0))&&(o=!0)}o&&r()});return i.observe(e,Lfe({childList:!0,subtree:!0},n)),i},k_="show",$fe=function(e){La(e,"height",0),as(function(){o8(e),La(e,"height","".concat(e.scrollHeight,"px"))})},Rfe=function(e){l8(e,"height")},Nfe=function(e){La(e,"height","auto"),La(e,"display","block"),La(e,"height","".concat(Sb(e).height,"px")),o8(e),La(e,"height",0)},Ffe=function(e){l8(e,"height")},zfe={css:!0,enterClass:"",enterActiveClass:"collapsing",enterToClass:"collapse show",leaveClass:"collapse show",leaveActiveClass:"collapsing",leaveToClass:"collapse"},jfe={enter:$fe,afterEnter:Rfe,leave:Nfe,afterLeave:Ffe},Bfe={appear:Ce(Et,!1)},Hfe=Vt.extend({name:lue,functional:!0,props:Bfe,render:function(e,r){var n=r.props,i=r.data,a=r.children;return e("transition",go(i,{props:zfe,on:jfe},{props:n}),a)}}),Sv;function Q3(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),r.push.apply(r,n)}return r}function S_(t){for(var e=1;e=0)return 1;return 0}();function Jfe(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then(function(){e=!1,t()}))}}function Qfe(t){var e=!1;return function(){e||(e=!0,setTimeout(function(){e=!1,t()},Kfe))}}var ehe=Pm&&window.Promise,the=ehe?Jfe:Qfe;function P8(t){var e={};return t&&e.toString.call(t)==="[object Function]"}function Xf(t,e){if(t.nodeType!==1)return[];var r=t.ownerDocument.defaultView,n=r.getComputedStyle(t,null);return e?n[e]:n}function VO(t){return t.nodeName==="HTML"?t:t.parentNode||t.host}function Mm(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=Xf(t),r=e.overflow,n=e.overflowX,i=e.overflowY;return/(auto|scroll|overlay)/.test(r+i+n)?t:Mm(VO(t))}function M8(t){return t&&t.referenceNode?t.referenceNode:t}var tL=Pm&&!!(window.MSInputMethodContext&&document.documentMode),rL=Pm&&/MSIE 10/.test(navigator.userAgent);function Wd(t){return t===11?tL:t===10?rL:tL||rL}function yd(t){if(!t)return document.documentElement;for(var e=Wd(10)?document.body:null,r=t.offsetParent||null;r===e&&t.nextElementSibling;)r=(t=t.nextElementSibling).offsetParent;var n=r&&r.nodeName;return!n||n==="BODY"||n==="HTML"?t?t.ownerDocument.documentElement:document.documentElement:["TH","TD","TABLE"].indexOf(r.nodeName)!==-1&&Xf(r,"position")==="static"?yd(r):r}function rhe(t){var e=t.nodeName;return e==="BODY"?!1:e==="HTML"||yd(t.firstElementChild)===t}function I2(t){return t.parentNode!==null?I2(t.parentNode):t}function Tb(t,e){if(!t||!t.nodeType||!e||!e.nodeType)return document.documentElement;var r=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,n=r?t:e,i=r?e:t,a=document.createRange();a.setStart(n,0),a.setEnd(i,0);var o=a.commonAncestorContainer;if(t!==o&&e!==o||n.contains(i))return rhe(o)?o:yd(o);var s=I2(t);return s.host?Tb(s.host,e):Tb(t,I2(e).host)}function xd(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"top",r=e==="top"?"scrollTop":"scrollLeft",n=t.nodeName;if(n==="BODY"||n==="HTML"){var i=t.ownerDocument.documentElement,a=t.ownerDocument.scrollingElement||i;return a[r]}return t[r]}function nhe(t,e){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,n=xd(e,"top"),i=xd(e,"left"),a=r?-1:1;return t.top+=n*a,t.bottom+=n*a,t.left+=i*a,t.right+=i*a,t}function nL(t,e){var r=e==="x"?"Left":"Top",n=r==="Left"?"Right":"Bottom";return parseFloat(t["border"+r+"Width"])+parseFloat(t["border"+n+"Width"])}function iL(t,e,r,n){return Math.max(e["offset"+t],e["scroll"+t],r["client"+t],r["offset"+t],r["scroll"+t],Wd(10)?parseInt(r["offset"+t])+parseInt(n["margin"+(t==="Height"?"Top":"Left")])+parseInt(n["margin"+(t==="Height"?"Bottom":"Right")]):0)}function D8(t){var e=t.body,r=t.documentElement,n=Wd(10)&&getComputedStyle(r);return{height:iL("Height",e,r,n),width:iL("Width",e,r,n)}}var ihe=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},ahe=function(){function t(e,r){for(var n=0;n2&&arguments[2]!==void 0?arguments[2]:!1,n=Wd(10),i=e.nodeName==="HTML",a=$2(t),o=$2(e),s=Mm(t),l=Xf(e),f=parseFloat(l.borderTopWidth),d=parseFloat(l.borderLeftWidth);r&&i&&(o.top=Math.max(o.top,0),o.left=Math.max(o.left,0));var g=ru({top:a.top-o.top-f,left:a.left-o.left-d,width:a.width,height:a.height});if(g.marginTop=0,g.marginLeft=0,!n&&i){var b=parseFloat(l.marginTop),y=parseFloat(l.marginLeft);g.top-=f-b,g.bottom-=f-b,g.left-=d-y,g.right-=d-y,g.marginTop=b,g.marginLeft=y}return(n&&!r?e.contains(s):e===s&&s.nodeName!=="BODY")&&(g=nhe(g,e)),g}function ohe(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,r=t.ownerDocument.documentElement,n=UO(t,r),i=Math.max(r.clientWidth,window.innerWidth||0),a=Math.max(r.clientHeight,window.innerHeight||0),o=e?0:xd(r),s=e?0:xd(r,"left"),l={top:o-n.top+n.marginTop,left:s-n.left+n.marginLeft,width:i,height:a};return ru(l)}function L8(t){var e=t.nodeName;if(e==="BODY"||e==="HTML")return!1;if(Xf(t,"position")==="fixed")return!0;var r=VO(t);return r?L8(r):!1}function I8(t){if(!t||!t.parentElement||Wd())return document.documentElement;for(var e=t.parentElement;e&&Xf(e,"transform")==="none";)e=e.parentElement;return e||document.documentElement}function qO(t,e,r,n){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1,a={top:0,left:0},o=i?I8(t):Tb(t,M8(e));if(n==="viewport")a=ohe(o,i);else{var s=void 0;n==="scrollParent"?(s=Mm(VO(e)),s.nodeName==="BODY"&&(s=t.ownerDocument.documentElement)):n==="window"?s=t.ownerDocument.documentElement:s=n;var l=UO(s,o,i);if(s.nodeName==="HTML"&&!L8(o)){var f=D8(t.ownerDocument),d=f.height,g=f.width;a.top+=l.top-l.marginTop,a.bottom=d+l.top,a.left+=l.left-l.marginLeft,a.right=g+l.left}else a=l}r=r||0;var b=typeof r=="number";return a.left+=b?r:r.left||0,a.top+=b?r:r.top||0,a.right-=b?r:r.right||0,a.bottom-=b?r:r.bottom||0,a}function she(t){var e=t.width,r=t.height;return e*r}function $8(t,e,r,n,i){var a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:0;if(t.indexOf("auto")===-1)return t;var o=qO(r,n,a,i),s={top:{width:o.width,height:e.top-o.top},right:{width:o.right-e.right,height:o.height},bottom:{width:o.width,height:o.bottom-e.bottom},left:{width:e.left-o.left,height:o.height}},l=Object.keys(s).map(function(b){return $o({key:b},s[b],{area:she(s[b])})}).sort(function(b,y){return y.area-b.area}),f=l.filter(function(b){var y=b.width,k=b.height;return y>=r.clientWidth&&k>=r.clientHeight}),d=f.length>0?f[0].key:l[0].key,g=t.split("-")[1];return d+(g?"-"+g:"")}function R8(t,e,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null,i=n?I8(e):Tb(e,M8(r));return UO(r,i,n)}function N8(t){var e=t.ownerDocument.defaultView,r=e.getComputedStyle(t),n=parseFloat(r.marginTop||0)+parseFloat(r.marginBottom||0),i=parseFloat(r.marginLeft||0)+parseFloat(r.marginRight||0),a={width:t.offsetWidth+i,height:t.offsetHeight+n};return a}function Eb(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,function(r){return e[r]})}function F8(t,e,r){r=r.split("-")[0];var n=N8(t),i={width:n.width,height:n.height},a=["right","left"].indexOf(r)!==-1,o=a?"top":"left",s=a?"left":"top",l=a?"height":"width",f=a?"width":"height";return i[o]=e[o]+e[l]/2-n[l]/2,r===s?i[s]=e[s]-n[f]:i[s]=e[Eb(s)],i}function Dm(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function lhe(t,e,r){if(Array.prototype.findIndex)return t.findIndex(function(i){return i[e]===r});var n=Dm(t,function(i){return i[e]===r});return t.indexOf(n)}function z8(t,e,r){var n=r===void 0?t:t.slice(0,lhe(t,"name",r));return n.forEach(function(i){i.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var a=i.function||i.fn;i.enabled&&P8(a)&&(e.offsets.popper=ru(e.offsets.popper),e.offsets.reference=ru(e.offsets.reference),e=a(e,i))}),e}function che(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=R8(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=$8(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=F8(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=z8(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}function j8(t,e){return t.some(function(r){var n=r.name,i=r.enabled;return i&&n===e})}function GO(t){for(var e=[!1,"ms","Webkit","Moz","O"],r=t.charAt(0).toUpperCase()+t.slice(1),n=0;no[y]&&(t.offsets.popper[g]+=s[g]+k-o[y]),t.offsets.popper=ru(t.offsets.popper);var C=s[g]+s[f]/2-k/2,A=Xf(t.instance.popper),P=parseFloat(A["margin"+d]),M=parseFloat(A["border"+d+"Width"]),N=C-t.offsets.popper[g]-P-M;return N=Math.max(Math.min(o[f]-k,N),0),t.arrowElement=n,t.offsets.arrow=(r={},wd(r,g,Math.round(N)),wd(r,b,""),r),t}function _he(t){return t==="end"?"start":t==="start"?"end":t}var W8=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],C_=W8.slice(3);function aL(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,r=C_.indexOf(t),n=C_.slice(r+1).concat(C_.slice(0,r));return e?n.reverse():n}var A_={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function khe(t,e){if(j8(t.instance.modifiers,"inner")||t.flipped&&t.placement===t.originalPlacement)return t;var r=qO(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),n=t.placement.split("-")[0],i=Eb(n),a=t.placement.split("-")[1]||"",o=[];switch(e.behavior){case A_.FLIP:o=[n,i];break;case A_.CLOCKWISE:o=aL(n);break;case A_.COUNTERCLOCKWISE:o=aL(n,!0);break;default:o=e.behavior}return o.forEach(function(s,l){if(n!==s||o.length===l+1)return t;n=t.placement.split("-")[0],i=Eb(n);var f=t.offsets.popper,d=t.offsets.reference,g=Math.floor,b=n==="left"&&g(f.right)>g(d.left)||n==="right"&&g(f.left)g(d.top)||n==="bottom"&&g(f.top)g(r.right),C=g(f.top)g(r.bottom),P=n==="left"&&y||n==="right"&&k||n==="top"&&C||n==="bottom"&&A,M=["top","bottom"].indexOf(n)!==-1,N=!!e.flipVariations&&(M&&a==="start"&&y||M&&a==="end"&&k||!M&&a==="start"&&C||!M&&a==="end"&&A),W=!!e.flipVariationsByContent&&(M&&a==="start"&&k||M&&a==="end"&&y||!M&&a==="start"&&A||!M&&a==="end"&&C),z=N||W;(b||P||z)&&(t.flipped=!0,(b||P)&&(n=o[l+1]),z&&(a=_he(a)),t.placement=n+(a?"-"+a:""),t.offsets.popper=$o({},t.offsets.popper,F8(t.instance.popper,t.offsets.reference,t.placement)),t=z8(t.instance.modifiers,t,"flip"))}),t}function She(t){var e=t.offsets,r=e.popper,n=e.reference,i=t.placement.split("-")[0],a=Math.floor,o=["top","bottom"].indexOf(i)!==-1,s=o?"right":"bottom",l=o?"left":"top",f=o?"width":"height";return r[s]a(n[s])&&(t.offsets.popper[l]=a(n[s])),t}function Che(t,e,r,n){var i=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),a=+i[1],o=i[2];if(!a)return t;if(o.indexOf("%")===0){var s=void 0;switch(o){case"%p":s=r;break;case"%":case"%r":default:s=n}var l=ru(s);return l[e]/100*a}else if(o==="vh"||o==="vw"){var f=void 0;return o==="vh"?f=Math.max(document.documentElement.clientHeight,window.innerHeight||0):f=Math.max(document.documentElement.clientWidth,window.innerWidth||0),f/100*a}else return a}function Ahe(t,e,r,n){var i=[0,0],a=["right","left"].indexOf(n)!==-1,o=t.split(/(\+|\-)/).map(function(d){return d.trim()}),s=o.indexOf(Dm(o,function(d){return d.search(/,|\s/)!==-1}));o[s]&&o[s].indexOf(",")===-1&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,f=s!==-1?[o.slice(0,s).concat([o[s].split(l)[0]]),[o[s].split(l)[1]].concat(o.slice(s+1))]:[o];return f=f.map(function(d,g){var b=(g===1?!a:a)?"height":"width",y=!1;return d.reduce(function(k,C){return k[k.length-1]===""&&["+","-"].indexOf(C)!==-1?(k[k.length-1]=C,y=!0,k):y?(k[k.length-1]+=C,y=!1,k):k.concat(C)},[]).map(function(k){return Che(k,b,e,r)})}),f.forEach(function(d,g){d.forEach(function(b,y){XO(b)&&(i[g]+=b*(d[y-1]==="-"?-1:1))})}),i}function Ohe(t,e){var r=e.offset,n=t.placement,i=t.offsets,a=i.popper,o=i.reference,s=n.split("-")[0],l=void 0;return XO(+r)?l=[+r,0]:l=Ahe(r,a,o,s),s==="left"?(a.top+=l[0],a.left-=l[1]):s==="right"?(a.top+=l[0],a.left+=l[1]):s==="top"?(a.left+=l[0],a.top-=l[1]):s==="bottom"&&(a.left+=l[0],a.top+=l[1]),t.popper=a,t}function The(t,e){var r=e.boundariesElement||yd(t.instance.popper);t.instance.reference===r&&(r=yd(r));var n=GO("transform"),i=t.instance.popper.style,a=i.top,o=i.left,s=i[n];i.top="",i.left="",i[n]="";var l=qO(t.instance.popper,t.instance.reference,e.padding,r,t.positionFixed);i.top=a,i.left=o,i[n]=s,e.boundaries=l;var f=e.priority,d=t.offsets.popper,g={primary:function(y){var k=d[y];return d[y]l[y]&&!e.escapeWithReference&&(C=Math.min(d[k],l[y]-(y==="right"?d.width:d.height))),wd({},k,C)}};return f.forEach(function(b){var y=["left","top"].indexOf(b)!==-1?"primary":"secondary";d=$o({},d,g[y](b))}),t.offsets.popper=d,t}function Ehe(t){var e=t.placement,r=e.split("-")[0],n=e.split("-")[1];if(n){var i=t.offsets,a=i.reference,o=i.popper,s=["bottom","top"].indexOf(r)!==-1,l=s?"left":"top",f=s?"width":"height",d={start:wd({},l,a[l]),end:wd({},l,a[l]+a[f]-o[f])};t.offsets.popper=$o({},o,d[n])}return t}function Phe(t){if(!Y8(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,r=Dm(t.instance.modifiers,function(n){return n.name==="preventOverflow"}).boundaries;if(e.bottomr.right||e.top>r.bottom||e.right2&&arguments[2]!==void 0?arguments[2]:{};ihe(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(n.update)},this.update=the(this.update.bind(this)),this.options=$o({},t.Defaults,i),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e&&e.jquery?e[0]:e,this.popper=r&&r.jquery?r[0]:r,this.options.modifiers={},Object.keys($o({},t.Defaults.modifiers,i.modifiers)).forEach(function(o){n.options.modifiers[o]=$o({},t.Defaults.modifiers[o]||{},i.modifiers?i.modifiers[o]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(o){return $o({name:o},n.options.modifiers[o])}).sort(function(o,s){return o.order-s.order}),this.modifiers.forEach(function(o){o.enabled&&P8(o.onLoad)&&o.onLoad(n.reference,n.popper,n.options,o,n.state)}),this.update();var a=this.options.eventsEnabled;a&&this.enableEventListeners(),this.state.eventsEnabled=a}return ahe(t,[{key:"update",value:function(){return che.call(this)}},{key:"destroy",value:function(){return uhe.call(this)}},{key:"enableEventListeners",value:function(){return hhe.call(this)}},{key:"disableEventListeners",value:function(){return phe.call(this)}}]),t}();bx.Utils=(typeof window<"u"?window:global).PopperUtils;bx.placements=W8;bx.Defaults=Lhe;const N2=bx;var Ihe="top-start",$he="top-end",Rhe="bottom-start",Nhe="bottom-end",Fhe="right-start",zhe="left-start";function jhe(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function oL(t,e){for(var r=0;r1&&arguments[1]!==void 0?arguments[1]:{};if(jhe(this,t),!e)throw new TypeError("Failed to construct '".concat(this.constructor.name,"'. 1 argument required, ").concat(arguments.length," given."));DO(this,t.Defaults,this.constructor.Defaults,r,{type:e}),Cz(this,{type:pc(),cancelable:pc(),nativeEvent:pc(),target:pc(),relatedTarget:pc(),vueTarget:pc(),componentId:pc()});var n=!1;this.preventDefault=function(){this.cancelable&&(n=!0)},Jce(this,"defaultPrevented",{enumerable:!0,get:function(){return n}})}return Bhe(t,null,[{key:"Defaults",get:function(){return{type:"",cancelable:!0,nativeEvent:null,target:null,relatedTarget:null,vueTarget:null,componentId:null}}}]),t}(),Hhe=Vt.extend({data:function(){return{listenForClickOut:!1}},watch:{listenForClickOut:function(e,r){e!==r&&(ps(this.clickOutElement,this.clickOutEventName,this._clickOutHandler,Mn),e&&$a(this.clickOutElement,this.clickOutEventName,this._clickOutHandler,Mn))}},beforeCreate:function(){this.clickOutElement=null,this.clickOutEventName=null},mounted:function(){this.clickOutElement||(this.clickOutElement=document),this.clickOutEventName||(this.clickOutEventName="click"),this.listenForClickOut&&$a(this.clickOutElement,this.clickOutEventName,this._clickOutHandler,Mn)},beforeDestroy:function(){ps(this.clickOutElement,this.clickOutEventName,this._clickOutHandler,Mn)},methods:{isClickOut:function(e){return!Di(this.$el,e.target)},_clickOutHandler:function(e){this.clickOutHandler&&this.isClickOut(e)&&this.clickOutHandler(e)}}}),Yhe=Vt.extend({data:function(){return{listenForFocusIn:!1}},watch:{listenForFocusIn:function(e,r){e!==r&&(ps(this.focusInElement,"focusin",this._focusInHandler,Mn),e&&$a(this.focusInElement,"focusin",this._focusInHandler,Mn))}},beforeCreate:function(){this.focusInElement=null},mounted:function(){this.focusInElement||(this.focusInElement=document),this.listenForFocusIn&&$a(this.focusInElement,"focusin",this._focusInHandler,Mn)},beforeDestroy:function(){ps(this.focusInElement,"focusin",this._focusInHandler,Mn)},methods:{_focusInHandler:function(e){this.focusInHandler&&this.focusInHandler(e)}}});function sL(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),r.push.apply(r,n)}return r}function lL(t){for(var e=1;e"u")Cm("Popper.js not found. Falling back to CSS positioning",Pf);else{var r=this.dropup&&this.right||this.split?this.$el:this.$refs.toggle;r=r.$el||r,this.createPopper(r)}this.emitOnRoot(cL,this),this.whileOpenListen(!0),this.$nextTick(function(){e.focusMenu(),e.$emit(Zs)})}},hideMenu:function(){this.whileOpenListen(!1),this.emitOnRoot(Vhe,this),this.$emit(na),this.destroyPopper()},createPopper:function(e){this.destroyPopper(),this.$_popper=new N2(e,this.$refs.menu,this.getPopperConfig())},destroyPopper:function(){this.$_popper&&this.$_popper.destroy(),this.$_popper=null},updatePopper:function(){try{this.$_popper.scheduleUpdate()}catch{}},clearHideTimeout:function(){clearTimeout(this.$_hideTimeout),this.$_hideTimeout=null},getPopperConfig:function(){var e=Rhe;this.dropup?e=this.right?$he:Ihe:this.dropright?e=Fhe:this.dropleft?e=zhe:this.right&&(e=Nhe);var r={placement:e,modifiers:{offset:{offset:this.offset||0},flip:{enabled:!this.noFlip}}},n=this.boundary;return n&&(r.modifiers.preventOverflow={boundariesElement:n}),eue(r,this.popperOpts||{})},whileOpenListen:function(e){this.listenForClickOut=e,this.listenForFocusIn=e;var r=e?"$on":"$off";this.$root[r](cL,this.rootCloseListener)},rootCloseListener:function(e){e!==this&&(this.visible=!1)},show:function(){var e=this;this.disabled||as(function(){e.visible=!0})},hide:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;this.disabled||(this.visible=!1,e&&this.$once(na,this.focusToggler))},toggle:function(e){e=e||{};var r=e,n=r.type,i=r.keyCode;if(!(n!=="click"&&!(n==="keydown"&&[b8,gx,Ab].indexOf(i)!==-1))){if(this.disabled){this.visible=!1;return}this.$emit(Kz,e),ia(e),this.visible?this.hide(!0):this.show()}},onMousedown:function(e){ia(e,{propagation:!1})},onKeydown:function(e){var r=e.keyCode;r===y8?this.onEsc(e):r===Ab?this.focusNext(e,!1):r===HO&&this.focusNext(e,!0)},onEsc:function(e){this.visible&&(this.visible=!1,ia(e),this.$once(na,this.focusToggler))},onSplitClick:function(e){if(this.disabled){this.visible=!1;return}this.$emit(eu,e)},hideHandler:function(e){var r=this,n=e.target;this.visible&&!Di(this.$refs.menu,n)&&!Di(this.toggler,n)&&(this.clearHideTimeout(),this.$_hideTimeout=setTimeout(function(){return r.hide()},this.inNavbar?300:0))},clickOutHandler:function(e){this.hideHandler(e)},focusInHandler:function(e){this.hideHandler(e)},focusNext:function(e,r){var n=this,i=e.target;!this.visible||e&&jg(Uhe,i)||(ia(e),this.$nextTick(function(){var a=n.getItems();if(!(a.length<1)){var o=a.indexOf(i);r&&o>0?o--:!r&&o=1&&s<=31||o===0&&s>=48&&s<=57||o===1&&s>=48&&s<=57&&n===45?i+O_("".concat(s.toString(16)," ")):o===0&&s===45&&r===1?i+O_(a):s>=128||s===45||s===95||s>=48&&s<=57||s>=65&&s<=90||s>=97&&s<=122?i+a:i+O_(a)},"")};function mL(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),r.push.apply(r,n)}return r}function Av(t){for(var e=1;e0||Gn(this.labelColProps).length>0}},watch:{ariaDescribedby:function(e,r){e!==r&&this.updateAriaDescribedby(e,r)}},mounted:function(){var e=this;this.$nextTick(function(){e.updateAriaDescribedby(e.ariaDescribedby)})},methods:{getAlignClasses:function(e,r){return Cb().reduce(function(n,i){var a=e[pf(i,"".concat(r,"Align"))]||null;return a&&n.push(["text",i,a].filter(so).join("-")),n},[])},getColProps:function(e,r){return Cb().reduce(function(n,i){var a=e[pf(i,"".concat(r,"Cols"))];return a=a===""?!0:a||!1,!Ng(a)&&a!=="auto"&&(a=kn(a,0),a=a>0?a:!1),a&&(n[i||(Ng(a)?"col":"cols")]=a),n},{})},updateAriaDescribedby:function(e,r){var n=this.labelFor;if(Ci&&n){var i=Am("#".concat(dde(n)),this.$refs.content);if(i){var a="aria-describedby",o=(e||"").split(w_),s=(r||"").split(w_),l=(Il(i,a)||"").split(w_).filter(function(f){return!fa(s,f)}).concat(o).filter(function(f,d,g){return g.indexOf(f)===d}).filter(so).join(" ").trim();l?ns(i,a,l):id(i,a)}}},onLegendClick:function(e){if(!this.labelFor){var r=e.target,n=r?r.tagName:"";if(xde.indexOf(n)===-1){var i=Bc(yde,this.$refs.content).filter(Mf);i.length===1&&_i(i[0])}}}},render:function(e){var r=this.computedState,n=this.feedbackAriaLive,i=this.isHorizontal,a=this.labelFor,o=this.normalizeSlot,s=this.safeId,l=this.tooltip,f=s(),d=!a,g=e(),b=o(Pue)||this.label,y=b?s("_BV_label_"):null;if(b||i){var k=this.labelSize,C=this.labelColProps,A=d?"legend":"label";this.labelSrOnly?(b&&(g=e(A,{class:"sr-only",attrs:{id:y,for:a||null}},[b])),g=e(i?T_:"div",{props:i?C:{}},[g])):g=e(i?T_:A,{on:d?{click:this.onLegendClick}:{},props:i?Gh(Gh({},C),{},{tag:A}):{},attrs:{id:y,for:a||null,tabindex:d?"-1":null},class:[d?"bv-no-focus-ring":"",i||d?"col-form-label":"",!i&&d?"pt-0":"",!i&&!d?"d-block":"",k?"col-form-label-".concat(k):"",this.labelAlignClasses,this.labelClass]},[b])}var P=e(),M=o(Eue)||this.invalidFeedback,N=M?s("_BV_feedback_invalid_"):null;M&&(P=e(lde,{props:{ariaLive:n,id:N,role:n?"alert":null,state:r,tooltip:l},attrs:{tabindex:M?"-1":null}},[M]));var W=e(),z=o(Bue)||this.validFeedback,U=z?s("_BV_feedback_valid_"):null;z&&(W=e(ude,{props:{ariaLive:n,id:U,role:n?"alert":null,state:r,tooltip:l},attrs:{tabindex:z?"-1":null}},[z]));var G=e(),X=o(Cue)||this.description,be=X?s("_BV_description_"):null;X&&(G=e(ode,{attrs:{id:be,tabindex:"-1"}},[X]));var re=this.ariaDescribedby=[be,r===!1?N:null,r===!0?U:null].filter(so).join(" ")||null,le=e(i?T_:"div",{props:i?this.contentColProps:{},ref:"content"},[o(tu,{ariaDescribedby:re,descriptionId:be,id:f,labelId:y})||e(),P,W,G]);return e(d?"fieldset":i?gL:"div",{staticClass:"form-group",class:[{"was-validated":this.validated},this.stateClass],attrs:{id:f,disabled:d?this.disabled:null,role:d?null:"group","aria-invalid":this.computedAriaInvalid,"aria-labelledby":d&&i?y:null}},i&&d?[e(gL,[g,le])]:[g,le])}},Zo="$_bv_documentHandlers_",_de=Vt.extend({created:function(){var e=this;Ci&&(this[Zo]={},this.$once(Fg,function(){var r=e[Zo]||{};delete e[Zo],Gn(r).forEach(function(n){var i=r[n]||[];i.forEach(function(a){return ps(document,n,a,Mn)})})}))},methods:{listenDocument:function(e,r,n){e?this.listenOnDocument(r,n):this.listenOffDocument(r,n)},listenOnDocument:function(e,r){this[Zo]&&ao(e)&&Ai(r)&&(this[Zo][e]=this[Zo][e]||[],fa(this[Zo][e],r)||(this[Zo][e].push(r),$a(document,e,r,Mn)))},listenOffDocument:function(e,r){this[Zo]&&ao(e)&&Ai(r)&&(ps(document,e,r,Mn),this[Zo][e]=(this[Zo][e]||[]).filter(function(n){return n!==r}))}}}),Ko="$_bv_windowHandlers_",kde=Vt.extend({beforeCreate:function(){this[Ko]={}},beforeDestroy:function(){if(Ci){var e=this[Ko];delete this[Ko],Gn(e).forEach(function(r){var n=e[r]||[];n.forEach(function(i){return ps(window,r,i,Mn)})})}},methods:{listenWindow:function(e,r,n){e?this.listenOnWindow(r,n):this.listenOffWindow(r,n)},listenOnWindow:function(e,r){Ci&&this[Ko]&&ao(e)&&Ai(r)&&(this[Ko][e]=this[Ko][e]||[],fa(this[Ko][e],r)||(this[Ko][e].push(r),$a(window,e,r,Mn)))},listenOffWindow:function(e,r){Ci&&this[Ko]&&ao(e)&&Ai(r)&&(ps(window,e,r,Mn),this[Ko][e]=(this[Ko][e]||[]).filter(function(n){return n!==r}))}}}),Hg=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e&&e.$options._scopeId||r};function Sde(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var K8=Vt.extend({computed:{scopedStyleAttrs:function(){var e=Hg(this.$parent);return e?Sde({},e,""):{}}}}),Cde=Vt.extend({abstract:!0,name:gue,props:{nodes:Ce(_ue)},data:function(e){return{updatedNodes:e.nodes}},destroyed:function(){Xue(this.$el)},render:function(e){var r=this.updatedNodes,n=Ai(r)?r({}):r;return n=ds(n).filter(so),n&&n.length>0&&!n[0].text?n[0]:e()}}),Ade={container:Ce([jc,gt],"body"),disabled:Ce(Et,!1),tag:Ce(gt,"div")},Ode=Vt.extend({name:pue,mixins:[xs],props:Ade,watch:{disabled:{immediate:!0,handler:function(e){e?this.unmountTarget():this.$nextTick(this.mountTarget)}}},created:function(){this.$_defaultFn=null,this.$_target=null},beforeMount:function(){this.mountTarget()},updated:function(){this.updateTarget()},beforeDestroy:function(){this.unmountTarget(),this.$_defaultFn=null},methods:{getContainer:function(){if(Ci){var e=this.container;return ao(e)?Am(e):e}else return null},mountTarget:function(){if(!this.$_target){var e=this.getContainer();if(e){var r=document.createElement("div");e.appendChild(r),this.$_target=new Cde({el:r,parent:this,propsData:{nodes:ds(this.normalizeSlot())}})}}},updateTarget:function(){if(Ci&&this.$_target){var e=this.$scopedSlots.default;this.disabled||(e&&this.$_defaultFn!==e?this.$_target.updatedNodes=e:e||(this.$_target.updatedNodes=this.$slots.default)),this.$_defaultFn=e}},unmountTarget:function(){this.$_target&&this.$_target.$destroy(),this.$_target=null}},render:function(e){if(this.disabled){var r=ds(this.normalizeSlot()).filter(so);if(r.length>0&&!r[0].text)return r[0]}return e()}});function T0(t){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?T0=function(r){return typeof r}:T0=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},T0(t)}function bL(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),r.push.apply(r,n)}return r}function yL(t){for(var e=1;e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _d(t){return _d=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},_d(t)}var Rde=function(t){Dde(r,t);var e=Lde(r);function r(n){var i,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return Ede(this,r),i=e.call(this,n,a),Cz(J8(i),{trigger:pc()}),i}return Pde(r,null,[{key:"Defaults",get:function(){return yL(yL({},E0(_d(r),"Defaults",this)),{},{trigger:null})}}]),r}(Lm),wL=1040,Nde=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",Fde=".sticky-top",zde=".navbar-toggler",jde=Vt.extend({data:function(){return{modals:[],baseZIndex:null,scrollbarWidth:null,isBodyOverflowing:!1}},computed:{modalCount:function(){return this.modals.length},modalsAreOpen:function(){return this.modalCount>0}},watch:{modalCount:function(e,r){Ci&&(this.getScrollbarWidth(),e>0&&r===0?(this.checkScrollbar(),this.setScrollbar(),Uh(document.body,"modal-open")):e===0&&r>0&&(this.resetScrollbar(),NO(document.body,"modal-open")),ns(document.body,"data-modal-open-count",String(e)))},modals:function(e){var r=this;this.checkScrollbar(),as(function(){r.updateModals(e||[])})}},methods:{registerModal:function(e){var r=this;e&&this.modals.indexOf(e)===-1&&(this.modals.push(e),e.$once(Fg,function(){r.unregisterModal(e)}))},unregisterModal:function(e){var r=this.modals.indexOf(e);r>-1&&(this.modals.splice(r,1),e._isBeingDestroyed||e._isDestroyed||this.resetModal(e))},getBaseZIndex:function(){if(Wl(this.baseZIndex)&&Ci){var e=document.createElement("div");Uh(e,"modal-backdrop"),Uh(e,"d-none"),La(e,"display","none"),document.body.appendChild(e),this.baseZIndex=kn(El(e).zIndex,wL),document.body.removeChild(e)}return this.baseZIndex||wL},getScrollbarWidth:function(){if(Wl(this.scrollbarWidth)&&Ci){var e=document.createElement("div");Uh(e,"modal-scrollbar-measure"),document.body.appendChild(e),this.scrollbarWidth=Sb(e).width-e.clientWidth,document.body.removeChild(e)}return this.scrollbarWidth||0},updateModals:function(e){var r=this,n=this.getBaseZIndex(),i=this.getScrollbarWidth();e.forEach(function(a,o){a.zIndex=n+o,a.scrollbarWidth=i,a.isTop=o===r.modals.length-1,a.isBodyOverflowing=r.isBodyOverflowing})},resetModal:function(e){e&&(e.zIndex=this.getBaseZIndex(),e.isTop=!0,e.isBodyOverflowing=!1)},checkScrollbar:function(){var e=Sb(document.body),r=e.left,n=e.right;this.isBodyOverflowing=r+n0&&arguments[0]!==void 0?arguments[0]:!1;this.$_observer&&this.$_observer.disconnect(),this.$_observer=null,e&&(this.$_observer=E8(this.$refs.content,this.checkModalOverflow.bind(this),Xde))},updateModel:function(e){e!==this[E_]&&this.$emit(Yde,e)},buildEvent:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return new Rde(e,_c(_c({cancelable:!1,target:this.$refs.modal||this.$el||null,relatedTarget:null,trigger:null},r),{},{vueTarget:this,componentId:this.modalId}))},show:function(){if(!(this.isVisible||this.isOpening)){if(this.isClosing){this.$once(na,this.show);return}this.isOpening=!0,this.$_returnFocus=this.$_returnFocus||this.getActiveElement();var e=this.buildEvent(lo,{cancelable:!0});if(this.emitEvent(e),e.defaultPrevented||this.isVisible){this.isOpening=!1,this.updateModel(!1);return}this.doShow()}},hide:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";if(!(!this.isVisible||this.isClosing)){this.isClosing=!0;var r=this.buildEvent(Xs,{cancelable:e!==Ude,trigger:e||null});if(e===D0?this.$emit(xue,r):e===P0?this.$emit(vue,r):e===M0&&this.$emit(O2,r),this.emitEvent(r),r.defaultPrevented||!this.isVisible){this.isClosing=!1,this.updateModel(!0);return}this.setObserver(!1),this.isVisible=!1,this.updateModel(!1)}},toggle:function(e){e&&(this.$_returnFocus=e),this.isVisible?this.hide(qde):this.show()},getActiveElement:function(){var e=kb(Ci?[document.body]:[]);return e&&e.focus?e:null},doShow:function(){var e=this;if($p.modalsAreOpen&&this.noStacking){this.listenOnRootOnce(Fo(Al,na),this.doShow);return}$p.registerModal(this),this.isHidden=!1,this.$nextTick(function(){e.isVisible=!0,e.isOpening=!1,e.updateModel(!0),e.$nextTick(function(){e.setObserver(!0)})})},onBeforeEnter:function(){this.isTransitioning=!0,this.setResizeEvent(!0)},onEnter:function(){var e=this;this.isBlock=!0,as(function(){as(function(){e.isShow=!0})})},onAfterEnter:function(){var e=this;this.checkModalOverflow(),this.isTransitioning=!1,as(function(){e.emitEvent(e.buildEvent(Zs)),e.setEnforceFocus(!0),e.$nextTick(function(){e.focusFirst()})})},onBeforeLeave:function(){this.isTransitioning=!0,this.setResizeEvent(!1),this.setEnforceFocus(!1)},onLeave:function(){this.isShow=!1},onAfterLeave:function(){var e=this;this.isBlock=!1,this.isTransitioning=!1,this.isModalOverflowing=!1,this.isHidden=!0,this.$nextTick(function(){e.isClosing=!1,$p.unregisterModal(e),e.returnFocusTo(),e.emitEvent(e.buildEvent(na))})},emitEvent:function(e){var r=e.type;this.emitOnRoot(Fo(Al,r),e,e.componentId),this.$emit(r,e)},onDialogMousedown:function(){var e=this,r=this.$refs.modal,n=function i(a){ps(r,"mouseup",i,Mn),a.target===r&&(e.ignoreBackdropClick=!0)};$a(r,"mouseup",n,Mn)},onClickOut:function(e){if(this.ignoreBackdropClick){this.ignoreBackdropClick=!1;return}!this.isVisible||this.noCloseOnBackdrop||!Di(document.body,e.target)||Di(this.$refs.content,e.target)||this.hide(Wde)},onOk:function(){this.hide(D0)},onCancel:function(){this.hide(P0)},onClose:function(){this.hide(M0)},onEsc:function(e){e.keyCode===y8&&this.isVisible&&!this.noCloseOnEsc&&this.hide(Vde)},focusHandler:function(e){var r=this.$refs.content,n=e.target;if(!(this.noEnforceFocus||!this.isTop||!this.isVisible||!r||document===n||Di(r,n)||this.computeIgnoreEnforceFocusSelector&&jg(this.computeIgnoreEnforceFocusSelector,n,!0))){var i=Zue(this.$refs.content),a=this.$refs["bottom-trap"],o=this.$refs["top-trap"];if(a&&n===a){if(_i(i[0]))return}else if(o&&n===o&&_i(i[i.length-1]))return;_i(r,{preventScroll:!0})}},setEnforceFocus:function(e){this.listenDocument(e,"focusin",this.focusHandler)},setResizeEvent:function(e){this.listenWindow(e,"resize",this.checkModalOverflow),this.listenWindow(e,"orientationchange",this.checkModalOverflow)},showHandler:function(e,r){e===this.modalId&&(this.$_returnFocus=r||this.getActiveElement(),this.show())},hideHandler:function(e){e===this.modalId&&this.hide("event")},toggleHandler:function(e,r){e===this.modalId&&this.toggle(r)},modalListener:function(e){this.noStacking&&e.vueTarget!==this&&this.hide()},focusFirst:function(){var e=this;Ci&&as(function(){var r=e.$refs.modal,n=e.$refs.content,i=e.getActiveElement();if(r&&n&&!(i&&Di(n,i))){var a=e.$refs["ok-button"],o=e.$refs["cancel-button"],s=e.$refs["close-button"],l=e.autoFocusButton,f=l===D0&&a?a.$el||a:l===P0&&o?o.$el||o:l===M0&&s?s.$el||s:n;_i(f),f===n&&e.$nextTick(function(){r.scrollTop=0})}})},returnFocusTo:function(){var e=this.returnFocus||this.$_returnFocus||null;this.$_returnFocus=null,this.$nextTick(function(){e=ao(e)?Am(e):e,e&&(e=e.$el||e,_i(e))})},checkModalOverflow:function(){if(this.isVisible){var e=this.$refs.modal;this.isModalOverflowing=e.scrollHeight>document.documentElement.clientHeight}},makeModal:function(e){var r=e();if(!this.hideHeader){var n=this.normalizeSlot(Iue,this.slotScope);if(!n){var i=e();this.hideHeaderClose||(i=e(sfe,{props:{content:this.headerCloseContent,disabled:this.isTransitioning,ariaLabel:this.headerCloseLabel,textVariant:this.headerCloseVariant||this.headerTextVariant},on:{click:this.onClose},ref:"close-button"},[this.normalizeSlot($ue)])),n=[e(this.titleTag,{staticClass:"modal-title",class:this.titleClasses,attrs:{id:this.modalTitleId},domProps:this.hasNormalizedSlot(__)?{}:O0(this.titleHtml,this.title)},this.normalizeSlot(__,this.slotScope)),i]}r=e("header",{staticClass:"modal-header",class:this.headerClasses,attrs:{id:this.modalHeaderId},ref:"header"},[n])}var a=e("div",{staticClass:"modal-body",class:this.bodyClasses,attrs:{id:this.modalBodyId},ref:"body"},this.normalizeSlot(tu,this.slotScope)),o=e();if(!this.hideFooter){var s=this.normalizeSlot(Lue,this.slotScope);if(!s){var l=e();this.okOnly||(l=e(Ob,{props:{variant:this.cancelVariant,size:this.buttonSize,disabled:this.cancelDisabled||this.busy||this.isTransitioning},domProps:this.hasNormalizedSlot(F3)?{}:O0(this.cancelTitleHtml,this.cancelTitle),on:{click:this.onCancel},ref:"cancel-button"},this.normalizeSlot(F3)));var f=e(Ob,{props:{variant:this.okVariant,size:this.buttonSize,disabled:this.okDisabled||this.busy||this.isTransitioning},domProps:this.hasNormalizedSlot(z3)?{}:O0(this.okTitleHtml,this.okTitle),on:{click:this.onOk},ref:"ok-button"},this.normalizeSlot(z3));s=[l,f]}o=e("footer",{staticClass:"modal-footer",class:this.footerClasses,attrs:{id:this.modalFooterId},ref:"footer"},[s])}var d=e("div",{staticClass:"modal-content",class:this.contentClass,attrs:{id:this.modalContentId,tabindex:"-1"},ref:"content"},[r,a,o]),g=e(),b=e();this.isVisible&&!this.noEnforceFocus&&(g=e("span",{attrs:{tabindex:"0"},ref:"top-trap"}),b=e("span",{attrs:{tabindex:"0"},ref:"bottom-trap"}));var y=e("div",{staticClass:"modal-dialog",class:this.dialogClasses,on:{mousedown:this.onDialogMousedown},ref:"dialog"},[g,d,b]),k=e("div",{staticClass:"modal",class:this.modalClasses,style:this.modalStyles,attrs:this.computedModalAttrs,on:{keydown:this.onEsc,click:this.onClickOut},directives:[{name:"show",value:this.isVisible}],ref:"modal"},[y]);k=e("transition",{props:{enterClass:"",enterToClass:"",enterActiveClass:"",leaveClass:"",leaveActiveClass:"",leaveToClass:""},on:{beforeEnter:this.onBeforeEnter,enter:this.onEnter,afterEnter:this.onAfterEnter,beforeLeave:this.onBeforeLeave,leave:this.onLeave,afterLeave:this.onAfterLeave}},[k]);var C=e();return!this.hideBackdrop&&this.isVisible&&(C=e("div",{staticClass:"modal-backdrop",attrs:{id:this.modalBackdropId}},this.normalizeSlot(Due))),C=e(BO,{props:{noFade:this.noFade}},[C]),e("div",{style:this.modalOuterStyle,attrs:this.computedAttrs,key:"modal-outer-".concat(this[nd])},[k,C])}},render:function(e){return this.static?this.lazy&&this.isHidden?e():this.makeModal(e):this.isHidden?e():e(Ode,[this.makeModal(e)])}});function kL(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var Kde=function(e){return e=e==="left"?"start":e==="right"?"end":e,"justify-content-".concat(e)},Q8=Hn({align:Ce(gt),cardHeader:Ce(Et,!1),fill:Ce(Et,!1),justified:Ce(Et,!1),pills:Ce(Et,!1),small:Ce(Et,!1),tabs:Ce(Et,!1),tag:Ce(gt,"ul"),vertical:Ce(Et,!1)},zz),Jde=Vt.extend({name:zz,functional:!0,props:Q8,render:function(e,r){var n,i=r.props,a=r.data,o=r.children,s=i.tabs,l=i.pills,f=i.vertical,d=i.align,g=i.cardHeader;return e(i.tag,go(a,{staticClass:"nav",class:(n={"nav-tabs":s,"nav-pills":l&&!s,"card-header-tabs":!f&&g&&s,"card-header-pills":!f&&g&&l&&!s,"flex-column":f,"nav-fill":!f&&i.fill,"nav-justified":!f&&i.justified},kL(n,Kde(d),!f&&d),kL(n,"small",i.small),n)}),o)}}),Rp;function SL(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),r.push.apply(r,n)}return r}function CL(t){for(var e=1;er?r:n<1?1:n},TL=function(e){if(e.keyCode===gx)return ia(e,{immediatePropagation:!0}),e.currentTarget.click(),!1},ej=Hn(qa(CL(CL({},epe),{},{align:Ce(gt,"left"),ariaLabel:Ce(gt,"Pagination"),disabled:Ce(Et,!1),ellipsisClass:Ce(An),ellipsisText:Ce(gt,"…"),firstClass:Ce(An),firstNumber:Ce(Et,!1),firstText:Ce(gt,"«"),hideEllipsis:Ce(Et,!1),hideGotoEndButtons:Ce(Et,!1),labelFirstPage:Ce(gt,"Go to first page"),labelLastPage:Ce(gt,"Go to last page"),labelNextPage:Ce(gt,"Go to next page"),labelPage:Ce(kue,"Go to page"),labelPrevPage:Ce(gt,"Go to previous page"),lastClass:Ce(An),lastNumber:Ce(Et,!1),lastText:Ce(gt,"»"),limit:Ce(za,ZO,function(t){return kn(t,0)<1?(Cm('Prop "limit" must be a number greater than "0"',hx),!1):!0}),nextClass:Ce(An),nextText:Ce(gt,"›"),pageClass:Ce(An),pills:Ce(Et,!1),prevClass:Ce(An),prevText:Ce(gt,"‹"),size:Ce(gt)})),"pagination"),npe=Vt.extend({mixins:[Qde,xs],props:ej,data:function(){var e=kn(this[j2],0);return e=e>0?e:-1,{currentPage:e,localNumberOfPages:1,localLimit:ZO}},computed:{btnSize:function(){var e=this.size;return e?"pagination-".concat(e):""},alignment:function(){var e=this.align;return e==="center"?"justify-content-center":e==="end"||e==="right"?"justify-content-end":e==="fill"?"text-center":""},styleClass:function(){return this.pills?"b-pagination-pills":""},computedCurrentPage:function(){return OL(this.currentPage,this.localNumberOfPages)},paginationParams:function(){var e=this.localLimit,r=this.localNumberOfPages,n=this.computedCurrentPage,i=this.hideEllipsis,a=this.firstNumber,o=this.lastNumber,s=!1,l=!1,f=e,d=1;r<=e?f=r:nOv?((!i||o)&&(l=!0,f=e-(a?0:1)),f=kv(f,e)):r-n+2Ov?((!i||a)&&(s=!0,f=e-(o?0:1)),d=r-f+1):(e>Ov&&(f=e-(i?0:2),s=!!(!i||a),l=!!(!i||o)),d=n-hfe(f/2)),d<1?(d=1,s=!1):d>r-f&&(d=r-f+1,l=!1),s&&a&&d<4&&(f=f+2,d=1,s=!1);var g=d+f-1;return l&&o&&g>r-3&&(f=f+(g===r-2?2:3),l=!1),e<=Ov&&(a&&d===1?f=kv(f+1,r,e+1):o&&r===d+f-1&&(d=Hc(d-1,1),f=kv(r-d+1,r,e+1))),f=kv(f,r-d+1),{showFirstDots:s,showLastDots:l,numberOfLinks:f,startNumber:d}},pageList:function(){var e=this.paginationParams,r=e.numberOfLinks,n=e.startNumber,i=this.computedCurrentPage,a=rpe(n,r);if(a.length>3){var o=i-n,s="bv-d-xs-down-none";if(o===0)for(var l=3;lo+1;g--)a[g].classes=s}}return a}},watch:(Rp={},L0(Rp,j2,function(t,e){t!==e&&(this.currentPage=OL(t,this.localNumberOfPages))}),L0(Rp,"currentPage",function(e,r){e!==r&&this.$emit(tpe,e>0?e:null)}),L0(Rp,"limit",function(e,r){e!==r&&(this.localLimit=AL(e))}),Rp),created:function(){var e=this;this.localLimit=AL(this.limit),this.$nextTick(function(){e.currentPage=e.currentPage>e.localNumberOfPages?e.localNumberOfPages:e.currentPage})},methods:{handleKeyNav:function(e){var r=e.keyCode,n=e.shiftKey;this.isNav||(r===x8||r===HO?(ia(e,{propagation:!1}),n?this.focusFirst():this.focusPrev()):(r===w8||r===Ab)&&(ia(e,{propagation:!1}),n?this.focusLast():this.focusNext()))},getButtons:function(){return Bc("button.page-link, a.page-link",this.$el).filter(function(e){return Mf(e)})},focusCurrent:function(){var e=this;this.$nextTick(function(){var r=e.getButtons().find(function(n){return kn(Il(n,"aria-posinset"),0)===e.computedCurrentPage});_i(r)||e.focusFirst()})},focusFirst:function(){var e=this;this.$nextTick(function(){var r=e.getButtons().find(function(n){return!Xp(n)});_i(r)})},focusLast:function(){var e=this;this.$nextTick(function(){var r=e.getButtons().reverse().find(function(n){return!Xp(n)});_i(r)})},focusPrev:function(){var e=this;this.$nextTick(function(){var r=e.getButtons(),n=r.indexOf(kb());n>0&&!Xp(r[n-1])&&_i(r[n-1])})},focusNext:function(){var e=this;this.$nextTick(function(){var r=e.getButtons(),n=r.indexOf(kb());ns,Re=X<1?1:X>s?s:X,Be={disabled:ke,page:Re,index:Re-1},Xe=r.normalizeSlot(re,Be)||cs(le)||e(),Ne=e(ke?"span":o?Bg:"button",{staticClass:"page-link",class:{"flex-grow-1":!o&&!ke&&y},props:ke||!o?{}:r.linkProps(X),attrs:{role:o?null:"menuitem",type:o||ke?null:"button",tabindex:ke||o?null:"-1","aria-label":be,"aria-controls":r.ariaControls||null,"aria-disabled":ke?"true":null},on:ke?{}:{"!click":function(Ye){r.onClick(Ye,X)},keydown:TL}},[Xe]);return e("li",{key:pe,staticClass:"page-item",class:[{disabled:ke,"flex-fill":y,"d-flex":y&&!o&&!ke},te],attrs:{role:o?null:"presentation","aria-hidden":ke?"true":null}},[Ne])},M=function(X){return e("li",{staticClass:"page-item",class:["disabled","bv-d-xs-down-none",y?"flex-fill":"",r.ellipsisClass],attrs:{role:"separator"},key:"ellipsis-".concat(X?"last":"first")},[e("span",{staticClass:"page-link"},[r.normalizeSlot(Aue)||cs(r.ellipsisText)||e()])])},N=function(X,be){var re=X.number,le=C(re)&&!A,te=n?null:le||A&&be===0?"0":"-1",ae={role:o?null:"menuitemradio",type:o||n?null:"button","aria-disabled":n?"true":null,"aria-controls":r.ariaControls||null,"aria-label":nfe(i)?i(re):"".concat(Ai(i)?i():i," ").concat(re),"aria-checked":o?null:le?"true":"false","aria-current":o&&le?"page":null,"aria-posinset":o?null:re,"aria-setsize":o?null:s,tabindex:o?null:te},pe=cs(r.makePage(re)),ke={page:re,index:re-1,content:pe,active:le,disabled:n},Re=e(n?"span":o?Bg:"button",{props:n||!o?{}:r.linkProps(re),staticClass:"page-link",class:{"flex-grow-1":!o&&!n&&y},attrs:ae,on:n?{}:{"!click":function(Xe){r.onClick(Xe,re)},keydown:TL}},[r.normalizeSlot(Nue,ke)||pe]);return e("li",{staticClass:"page-item",class:[{disabled:n,active:le,"flex-fill":y,"d-flex":y&&!o&&!n},X.classes,r.pageClass],attrs:{role:o?null:"presentation"},key:"page-".concat(re)},[Re])},W=e();!this.firstNumber&&!this.hideGotoEndButtons&&(W=P(1,this.labelFirstPage,Tue,this.firstText,this.firstClass,1,"pagination-goto-first")),k.push(W),k.push(P(l-1,this.labelPrevPage,Fue,this.prevText,this.prevClass,1,"pagination-goto-prev")),k.push(this.firstNumber&&f[0]!==1?N({number:1},0):e()),k.push(g?M(!1):e()),this.pageList.forEach(function(G,X){var be=g&&r.firstNumber&&f[0]!==1?1:0;k.push(N(G,X+be))}),k.push(b?M(!0):e()),k.push(this.lastNumber&&f[f.length-1]!==s?N({number:s},-1):e()),k.push(P(l+1,this.labelNextPage,Rue,this.nextText,this.nextClass,s,"pagination-goto-next"));var z=e();!this.lastNumber&&!this.hideGotoEndButtons&&(z=P(s,this.labelLastPage,Mue,this.lastText,this.lastClass,s,"pagination-goto-last")),k.push(z);var U=e("ul",{staticClass:"pagination",class:["b-pagination",this.btnSize,this.alignment,this.styleClass],attrs:{role:o?null:"menubar","aria-disabled":n?"true":"false","aria-label":o?null:a||null},on:o?{}:{keydown:this.handleKeyNav},ref:"ul"},k);return o?e("nav",{attrs:{"aria-disabled":n?"true":null,"aria-hidden":n?"true":"false","aria-label":o&&a||null}},[U]):U}});function EL(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),r.push.apply(r,n)}return r}function PL(t){for(var e=1;ee.numberOfPages&&(this.currentPage=1)),this.localNumberOfPages=e.numberOfPages}},created:function(){var e=this;this.localNumberOfPages=this.numberOfPages;var r=kn(this[j2],0);r>0?this.currentPage=r:this.$nextTick(function(){e.currentPage=0})},methods:{onClick:function(e,r){var n=this;if(r!==this.currentPage){var i=e.target,a=new Lm(wue,{cancelable:!0,vueTarget:this,target:i});this.$emit(a.type,a,r),!a.defaultPrevented&&(this.currentPage=r,this.$emit(Hz,this.currentPage),this.$nextTick(function(){Mf(i)&&n.$el.contains(i)?_i(i):n.focusCurrent()}))}},makePage:function(e){return e},linkProps:function(){return{}}}}),ope={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left",TOPLEFT:"top",TOPRIGHT:"top",RIGHTTOP:"right",RIGHTBOTTOM:"right",BOTTOMLEFT:"bottom",BOTTOMRIGHT:"bottom",LEFTTOP:"left",LEFTBOTTOM:"left"},spe={AUTO:0,TOPLEFT:-1,TOP:0,TOPRIGHT:1,RIGHTTOP:-1,RIGHT:0,RIGHTBOTTOM:1,BOTTOMLEFT:-1,BOTTOM:0,BOTTOMRIGHT:1,LEFTTOP:-1,LEFT:0,LEFTBOTTOM:1},lpe={arrowPadding:Ce(za,6),boundary:Ce([jc,gt],"scrollParent"),boundaryPadding:Ce(za,5),fallbackPlacement:Ce(zg,"flip"),offset:Ce(za,0),placement:Ce(gt,"top"),target:Ce([jc,kz])},cpe=Vt.extend({name:cue,props:lpe,data:function(){return{noFade:!1,localShow:!0,attachment:this.getAttachment(this.placement)}},computed:{templateType:function(){return"unknown"},popperConfig:function(){var e=this,r=this.placement;return{placement:this.getAttachment(r),modifiers:{offset:{offset:this.getOffset(r)},flip:{behavior:this.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{padding:this.boundaryPadding,boundariesElement:this.boundary}},onCreate:function(i){i.originalPlacement!==i.placement&&e.popperPlacementChange(i)},onUpdate:function(i){e.popperPlacementChange(i)}}}},created:function(){var e=this;this.$_popper=null,this.localShow=!0,this.$on(lo,function(n){e.popperCreate(n)});var r=function(){e.$nextTick(function(){as(function(){e.$destroy()})})};this.$parent.$once(Jz,r),this.$once(na,r)},beforeMount:function(){this.attachment=this.getAttachment(this.placement)},updated:function(){this.updatePopper()},beforeDestroy:function(){this.destroyPopper()},destroyed:function(){var e=this.$el;e&&e.parentNode&&e.parentNode.removeChild(e)},methods:{hide:function(){this.localShow=!1},getAttachment:function(e){return ope[String(e).toUpperCase()]||"auto"},getOffset:function(e){if(!this.offset){var r=this.$refs.arrow||Am(".arrow",this.$el),n=Vh(El(r).width,0)+Vh(this.arrowPadding,0);switch(spe[String(e).toUpperCase()]||0){case 1:return"+50%p - ".concat(n,"px");case-1:return"-50%p + ".concat(n,"px");default:return 0}}return this.offset},popperCreate:function(e){this.destroyPopper(),this.$_popper=new N2(this.target,e,this.popperConfig)},destroyPopper:function(){this.$_popper&&this.$_popper.destroy(),this.$_popper=null},updatePopper:function(){this.$_popper&&this.$_popper.scheduleUpdate()},popperPlacementChange:function(e){this.attachment=this.getAttachment(e.placement)},renderTemplate:function(e){return e("div")}},render:function(e){var r=this,n=this.noFade;return e(BO,{props:{appear:!0,noFade:n},on:{beforeEnter:function(a){return r.$emit(lo,a)},afterEnter:function(a){return r.$emit(Zs,a)},beforeLeave:function(a){return r.$emit(Xs,a)},afterLeave:function(a){return r.$emit(na,a)}}},[this.localShow?this.renderTemplate(e):e()])}});function LL(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),r.push.apply(r,n)}return r}function IL(t){for(var e=1;e0&&arguments[0]!==void 0?arguments[0]:{},n=!1;Gn(RL).forEach(function(i){!Jc(r[i])&&e[i]!==r[i]&&(e[i]=r[i],i==="title"&&(n=!0))}),n&&this.localShow&&this.fixTitle()},createTemplateAndShow:function(){var e=this.getContainer(),r=this.getTemplate(),n=this.$_tip=new r({parent:this,propsData:{id:this.computedId,html:this.html,placement:this.placement,fallbackPlacement:this.fallbackPlacement,target:this.getPlacementTarget(),boundary:this.getBoundary(),offset:kn(this.offset,0),arrowPadding:kn(this.arrowPadding,0),boundaryPadding:kn(this.boundaryPadding,0)}});this.handleTemplateUpdate(),n.$once(lo,this.onTemplateShow),n.$once(Zs,this.onTemplateShown),n.$once(Xs,this.onTemplateHide),n.$once(na,this.onTemplateHidden),n.$once(Jz,this.destroyTemplate),n.$on(Wz,this.handleEvent),n.$on(Vz,this.handleEvent),n.$on(qz,this.handleEvent),n.$on(Gz,this.handleEvent),n.$mount(e.appendChild(document.createElement("div")))},hideTemplate:function(){this.$_tip&&this.$_tip.hide(),this.clearActiveTriggers(),this.$_hoverState=""},destroyTemplate:function(){this.setWhileOpenListeners(!1),this.clearHoverTimeout(),this.$_hoverState="",this.clearActiveTriggers(),this.localPlacementTarget=null;try{this.$_tip.$destroy()}catch{}this.$_tip=null,this.removeAriaDescribedby(),this.restoreTitle(),this.localShow=!1},getTemplateElement:function(){return this.$_tip?this.$_tip.$el:null},handleTemplateUpdate:function(){var e=this,r=this.$_tip;if(r){var n=["title","content","variant","customClass","noFade","interactive"];n.forEach(function(i){r[i]!==e[i]&&(r[i]=e[i])})}},show:function(){var e=this.getTarget();if(!(!e||!Di(document.body,e)||!Mf(e)||this.dropdownOpen()||(Vl(this.title)||this.title==="")&&(Vl(this.content)||this.content===""))&&!(this.$_tip||this.localShow)){this.localShow=!0;var r=this.buildEvent(lo,{cancelable:!0});if(this.emitEvent(r),r.defaultPrevented){this.destroyTemplate();return}this.fixTitle(),this.addAriaDescribedby(),this.createTemplateAndShow()}},hide:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,r=this.getTemplateElement();if(!r||!this.localShow){this.restoreTitle();return}var n=this.buildEvent(Xs,{cancelable:!e});this.emitEvent(n),!n.defaultPrevented&&this.hideTemplate()},forceHide:function(){var e=this.getTemplateElement();!e||!this.localShow||(this.setWhileOpenListeners(!1),this.clearHoverTimeout(),this.$_hoverState="",this.clearActiveTriggers(),this.$_tip&&(this.$_tip.noFade=!0),this.hide(!0))},enable:function(){this.$_enabled=!0,this.emitEvent(this.buildEvent(C0))},disable:function(){this.$_enabled=!1,this.emitEvent(this.buildEvent(S0))},onTemplateShow:function(){this.setWhileOpenListeners(!0)},onTemplateShown:function(){var e=this.$_hoverState;this.$_hoverState="",e==="out"&&this.leave(null),this.emitEvent(this.buildEvent(Zs))},onTemplateHide:function(){this.setWhileOpenListeners(!1)},onTemplateHidden:function(){this.destroyTemplate(),this.emitEvent(this.buildEvent(na))},getTarget:function(){var e=this.target;return ao(e)?e=B3(e.replace(/^#/,"")):Ai(e)?e=e():e&&(e=e.$el||e),ni(e)?e:null},getPlacementTarget:function(){return this.getTarget()},getTargetId:function(){var e=this.getTarget();return e&&e.id?e.id:null},getContainer:function(){var e=this.container?this.container.$el||this.container:!1,r=document.body,n=this.getTarget();return e===!1?jg(gpe,n)||r:ao(e)&&B3(e.replace(/^#/,""))||r},getBoundary:function(){return this.boundary?this.boundary.$el||this.boundary:"scrollParent"},isInModal:function(){var e=this.getTarget();return e&&jg(nj,e)},isDropdown:function(){var e=this.getTarget();return e&&FO(e,mpe)},dropdownOpen:function(){var e=this.getTarget();return this.isDropdown()&&e&&Am(vpe,e)},clearHoverTimeout:function(){clearTimeout(this.$_hoverTimeout),this.$_hoverTimeout=null},clearVisibilityInterval:function(){clearInterval(this.$_visibleInterval),this.$_visibleInterval=null},clearActiveTriggers:function(){for(var e in this.activeTrigger)this.activeTrigger[e]=!1},addAriaDescribedby:function(){var e=this.getTarget(),r=Il(e,"aria-describedby")||"";r=r.split(/\s+/).concat(this.computedId).join(" ").trim(),ns(e,"aria-describedby",r)},removeAriaDescribedby:function(){var e=this,r=this.getTarget(),n=Il(r,"aria-describedby")||"";n=n.split(/\s+/).filter(function(i){return i!==e.computedId}).join(" ").trim(),n?ns(r,"aria-describedby",n):id(r,"aria-describedby")},fixTitle:function(){var e=this.getTarget();if(ad(e,"title")){var r=Il(e,"title");ns(e,"title",""),r&&ns(e,Tv,r)}},restoreTitle:function(){var e=this.getTarget();if(ad(e,Tv)){var r=Il(e,Tv);id(e,Tv),r&&ns(e,"title",r)}},buildEvent:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return new Lm(e,P_({cancelable:!1,target:this.getTarget(),relatedTarget:this.getTemplateElement()||null,componentId:this.computedId,vueTarget:this},r))},emitEvent:function(e){var r=e.type;this.emitOnRoot(Fo(this.templateType,r),e),this.$emit(r,e)},listen:function(){var e=this,r=this.getTarget();r&&(this.setRootListener(!0),this.computedTriggers.forEach(function(n){n==="click"?$a(r,"click",e.handleEvent,Mn):n==="focus"?($a(r,"focusin",e.handleEvent,Mn),$a(r,"focusout",e.handleEvent,Mn)):n==="blur"?$a(r,"focusout",e.handleEvent,Mn):n==="hover"&&($a(r,"mouseenter",e.handleEvent,Mn),$a(r,"mouseleave",e.handleEvent,Mn))},this))},unListen:function(){var e=this,r=["click","focusin","focusout","mouseenter","mouseleave"],n=this.getTarget();this.setRootListener(!1),r.forEach(function(i){n&&ps(n,i,e.handleEvent,Mn)},this)},setRootListener:function(e){var r=this.$root;if(r){var n=e?"$on":"$off",i=this.templateType;r[n]($l(i,Xs),this.doHide),r[n]($l(i,lo),this.doShow),r[n]($l(i,T2),this.doDisable),r[n]($l(i,E2),this.doEnable)}},setWhileOpenListeners:function(e){this.setModalListener(e),this.setDropdownListener(e),this.visibleCheck(e),this.setOnTouchStartListener(e)},visibleCheck:function(e){var r=this;this.clearVisibilityInterval();var n=this.getTarget(),i=this.getTemplateElement();e&&(this.$_visibleInterval=setInterval(function(){i&&r.localShow&&(!n.parentNode||!Mf(n))&&r.forceHide()},100))},setModalListener:function(e){this.isInModal()&&this.$root[e?"$on":"$off"](dpe,this.forceHide)},setOnTouchStartListener:function(e){var r=this;"ontouchstart"in document.documentElement&&i8(document.body.children).forEach(function(n){M2(e,n,"mouseover",r.$_noop)})},setDropdownListener:function(e){var r=this.getTarget();!r||!this.$root||!this.isDropdown||r.__vue__&&r.__vue__[e?"$on":"$off"](Zs,this.forceHide)},handleEvent:function(e){var r=this.getTarget();if(!(!r||Xp(r)||!this.$_enabled||this.dropdownOpen())){var n=e.type,i=this.computedTriggers;if(n==="click"&&fa(i,"click"))this.click(e);else if(n==="mouseenter"&&fa(i,"hover"))this.enter(e);else if(n==="focusin"&&fa(i,"focus"))this.enter(e);else if(n==="focusout"&&(fa(i,"focus")||fa(i,"blur"))||n==="mouseleave"&&fa(i,"hover")){var a=this.getTemplateElement(),o=e.target,s=e.relatedTarget;if(a&&Di(a,o)&&Di(r,s)||a&&Di(r,o)&&Di(a,s)||a&&Di(a,o)&&Di(a,s)||Di(r,o)&&Di(r,s))return;this.leave(e)}}},doHide:function(e){(!e||this.getTargetId()===e||this.computedId===e)&&this.forceHide()},doShow:function(e){(!e||this.getTargetId()===e||this.computedId===e)&&this.show()},doDisable:function(e){(!e||this.getTargetId()===e||this.computedId===e)&&this.disable()},doEnable:function(e){(!e||this.getTargetId()===e||this.computedId===e)&&this.enable()},click:function(e){!this.$_enabled||this.dropdownOpen()||(_i(e.currentTarget),this.activeTrigger.click=!this.activeTrigger.click,this.isWithActiveTrigger?this.enter(null):this.leave(null))},toggle:function(){!this.$_enabled||this.dropdownOpen()||(this.localShow?this.leave(null):this.enter(null))},enter:function(){var e=this,r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;if(r&&(this.activeTrigger[r.type==="focusin"?"focus":"hover"]=!0),this.localShow||this.$_hoverState==="in"){this.$_hoverState="in";return}this.clearHoverTimeout(),this.$_hoverState="in",this.computedDelay.show?(this.fixTitle(),this.$_hoverTimeout=setTimeout(function(){e.$_hoverState==="in"?e.show():e.localShow||e.restoreTitle()},this.computedDelay.show)):this.show()},leave:function(){var e=this,r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;r&&(this.activeTrigger[r.type==="focusout"?"focus":"hover"]=!1,r.type==="focusout"&&fa(this.computedTriggers,"blur")&&(this.activeTrigger.click=!1,this.activeTrigger.hover=!1)),!this.isWithActiveTrigger&&(this.clearHoverTimeout(),this.$_hoverState="out",this.computedDelay.hide?this.$_hoverTimeout=setTimeout(function(){e.$_hoverState==="out"&&e.hide()},this.computedDelay.hide):this.hide())}}}),Pa,$u;function NL(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),r.push.apply(r,n)}return r}function bpe(t){for(var e=1;e0&&arguments[0]!==void 0?arguments[0]:!0;if(this.$_observer&&this.$_observer.disconnect(),this.$_observer=null,r){var n=function(){e.$nextTick(function(){as(function(){e.updateTabs()})})};this.$_observer=E8(this.$refs.content,n,{childList:!0,subtree:!1,attributes:!0,attributeFilter:["id"]})}},getTabs:function(){var e=this.registeredTabs.filter(function(i){return i.$children.filter(function(a){return a._isTab}).length===0}),r=[];if(Ci&&e.length>0){var n=e.map(function(i){return"#".concat(i.safeId())}).join(", ");r=Bc(n,this.$el).map(function(i){return i.id}).filter(so)}return wpe(e,function(i,a){return r.indexOf(i.safeId())-r.indexOf(a.safeId())})},updateTabs:function(){var e=this.getTabs(),r=e.indexOf(e.slice().reverse().find(function(i){return i.localActive&&!i.disabled}));if(r<0){var n=this.currentTab;n>=e.length?r=e.indexOf(e.slice().reverse().find(Ru)):e[n]&&!e[n].disabled&&(r=n)}r<0&&(r=e.indexOf(e.find(Ru))),e.forEach(function(i,a){i.localActive=a===r}),this.tabs=e,this.currentTab=r},getButtonForTab:function(e){return(this.$refs.buttons||[]).find(function(r){return r.tab===e})},updateButton:function(e){var r=this.getButtonForTab(e);r&&r.$forceUpdate&&r.$forceUpdate()},activateTab:function(e){var r=this.currentTab,n=this.tabs,i=!1;if(e){var a=n.indexOf(e);if(a!==r&&a>-1&&!e.disabled){var o=new Lm(mue,{cancelable:!0,vueTarget:this,componentId:this.safeId()});this.$emit(o.type,a,r,o),o.defaultPrevented||(this.currentTab=a,i=!0)}}return!i&&this[M_]!==r&&this.$emit(jL,r),i},deactivateTab:function(e){return e?this.activateTab(this.tabs.filter(function(r){return r!==e}).find(Ru)):!1},focusButton:function(e){var r=this;this.$nextTick(function(){_i(r.getButtonForTab(e))})},emitTabClick:function(e,r){fx(r)&&e&&e.$emit&&!e.disabled&&e.$emit(eu,r)},clickTab:function(e,r){this.activateTab(e),this.emitTabClick(e,r)},firstTab:function(e){var r=this.tabs.find(Ru);this.activateTab(r)&&e&&(this.focusButton(r),this.emitTabClick(r,e))},previousTab:function(e){var r=Hc(this.currentTab,0),n=this.tabs.slice(0,r).reverse().find(Ru);this.activateTab(n)&&e&&(this.focusButton(n),this.emitTabClick(n,e))},nextTab:function(e){var r=Hc(this.currentTab,-1),n=this.tabs.slice(r+1).find(Ru);this.activateTab(n)&&e&&(this.focusButton(n),this.emitTabClick(n,e))},lastTab:function(e){var r=this.tabs.slice().reverse().find(Ru);this.activateTab(r)&&e&&(this.focusButton(r),this.emitTabClick(r,e))}},render:function(e){var r=this,n=this.align,i=this.card,a=this.end,o=this.fill,s=this.firstTab,l=this.justified,f=this.lastTab,d=this.nextTab,g=this.noKeyNav,b=this.noNavStyle,y=this.pills,k=this.previousTab,C=this.small,A=this.tabs,P=this.vertical,M=A.find(function(be){return be.localActive&&!be.disabled}),N=A.find(function(be){return!be.disabled}),W=A.map(function(be,re){var le,te=be.safeId,ae=null;return g||(ae=-1,(be===M||!M&&be===N)&&(ae=null)),e(Spe,{props:{controls:te?te():null,id:be.controlledBy||(te?te("_BV_tab_button_"):null),noKeyNav:g,posInSet:re+1,setSize:A.length,tab:be,tabIndex:ae},on:(le={},$s(le,eu,function(pe){r.clickTab(be,pe)}),$s(le,Yz,s),$s(le,Zz,k),$s(le,Xz,d),$s(le,Uz,f),le),key:be[nd]||re,ref:"buttons",refInFor:!0})}),z=e(Jde,{class:this.localNavClass,attrs:{role:"tablist",id:this.safeId("_BV_tab_controls_")},props:{fill:o,justified:l,align:n,tabs:!b&&!y,pills:!b&&y,vertical:P,small:C,cardHeader:i&&!P},ref:"nav"},[this.normalizeSlot(jue)||e(),W,this.normalizeSlot(zue)||e()]);z=e("div",{class:[{"card-header":i&&!P&&!a,"card-footer":i&&!P&&a,"col-auto":P},this.navWrapperClass],key:"bv-tabs-nav"},[z]);var U=this.normalizeSlot()||[],G=e();U.length===0&&(G=e("div",{class:["tab-pane","active",{"card-body":i}],key:"bv-empty-tab"},this.normalizeSlot(Oue)));var X=e("div",{staticClass:"tab-content",class:[{col:P},this.contentClass],attrs:{id:this.safeId("_BV_tab_container_")},key:"bv-content",ref:"content"},[U,G]);return e(this.tag,{staticClass:"tabs",class:{row:P,"no-gutters":P&&i},attrs:{id:this.safeId()}},[a?X:e(),z,a?e():X])}}),Co,Np;function BL(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),r.push.apply(r,n)}return r}function HL(t){for(var e=1;e - * @license MIT - */var GL;function Ype(){return GL||(GL=1,function(t){(function(r){t.exports=r()})(function(){if(typeof window>"u"||!window.document)return function(){throw new Error("Sortable.js requires a window with a document")};var r,n,i,a,o,s,l,f,d,g,b,y,k,C,A,P,M,N={},W,z,U,G=/\s+/g,X=/left|right|inline/,be="Sortable"+new Date().getTime(),re=window,le=re.document,te=re.parseInt,ae=re.jQuery||re.Zepto,pe=re.Polymer,ke=!1,Re="draggable"in le.createElement("div"),Be=function(Te){return navigator.userAgent.match(/Trident.*rv[ :]?11\./)?!1:(Te=le.createElement("x"),Te.style.cssText="pointer-events:auto",Te.style.pointerEvents==="auto")}(),Xe=!1,Ne=Math.abs,He=Math.min,Ye=[],et=[],ct=Pt(function(Te,je,Ue){if(Ue&&je.scroll){var xt=Ue[be],bt,sr,Ot=je.scrollSensitivity,zt=je.scrollSpeed,Rt=Te.clientX,Wt=Te.clientY,Vr=window.innerWidth,Dr=window.innerHeight,xr,Yt,Ur,fr;if(d!==Ue&&(f=je.scroll,d=Ue,g=je.scrollFn,f===!0)){f=Ue;do if(f.offsetWidth-1:Rt==bt)}}var Ue={},xt=Te.group;(!xt||typeof xt!="object")&&(xt={name:xt}),Ue.name=xt.name,Ue.checkPull=je(xt.pull,!0),Ue.checkPut=je(xt.put),Ue.revertClone=xt.revertClone,Te.group=Ue};function qe(Te,je){if(!(Te&&Te.nodeType&&Te.nodeType===1))throw"Sortable: `el` must be HTMLElement, and not "+{}.toString.call(Te);this.el=Te,this.options=je=dr({},je),Te[be]=this;var Ue={group:Math.random(),sort:!0,disabled:!1,store:null,handle:null,scroll:!0,scrollSensitivity:30,scrollSpeed:10,draggable:/[uo]l/i.test(Te.nodeName)?"li":">*",ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,setData:function(sr,Ot){sr.setData("Text",Ot.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0}};for(var xt in Ue)!(xt in je)&&(je[xt]=Ue[xt]);yt(je);for(var bt in this)bt.charAt(0)==="_"&&typeof this[bt]=="function"&&(this[bt]=this[bt].bind(this));this.nativeDraggable=je.forceFallback?!1:Re,It(Te,"mousedown",this._onTapStart),It(Te,"touchstart",this._onTapStart),It(Te,"pointerdown",this._onTapStart),this.nativeDraggable&&(It(Te,"dragover",this),It(Te,"dragenter",this)),et.push(this._onDragOver),je.store&&this.sort(je.store.get(this))}qe.prototype={constructor:qe,_onTapStart:function(Te){var je=this,Ue=this.el,xt=this.options,bt=xt.preventOnFilter,sr=Te.type,Ot=Te.touches&&Te.touches[0],zt=(Ot||Te).target,Rt=Te.target.shadowRoot&&Te.path&&Te.path[0]||zt,Wt=xt.filter,Vr;if(ui(Ue),!r&&!(/mousedown|pointerdown/.test(sr)&&Te.button!==0||xt.disabled)&&(zt=vt(zt,xt.draggable,Ue),!!zt&&l!==zt)){if(Vr=ur(zt,xt.draggable),typeof Wt=="function"){if(Wt.call(this,Te,zt,this)){Xt(je,Rt,"filter",zt,Ue,Vr),bt&&Te.preventDefault();return}}else if(Wt&&(Wt=Wt.split(",").some(function(Dr){if(Dr=vt(Rt,Dr.trim(),Ue),Dr)return Xt(je,Dr,"filter",zt,Ue,Vr),!0}),Wt)){bt&&Te.preventDefault();return}xt.handle&&!vt(Rt,xt.handle,Ue)||this._prepareDragStart(Te,Ot,zt,Vr)}},_prepareDragStart:function(Te,je,Ue,xt){var bt=this,sr=bt.el,Ot=bt.options,zt=sr.ownerDocument,Rt;Ue&&!r&&Ue.parentNode===sr&&(W=Te,o=sr,r=Ue,n=r.parentNode,s=r.nextSibling,l=Ue,P=Ot.group,C=xt,this._lastX=(je||Te).clientX,this._lastY=(je||Te).clientY,r.style["will-change"]="transform",Rt=function(){bt._disableDelayedDrag(),r.draggable=bt.nativeDraggable,Qt(r,Ot.chosenClass,!0),bt._triggerDragStart(Te,je),Xt(bt,o,"choose",r,o,C)},Ot.ignore.split(",").forEach(function(Wt){ar(r,Wt.trim(),Pr)}),It(zt,"mouseup",bt._onDrop),It(zt,"touchend",bt._onDrop),It(zt,"touchcancel",bt._onDrop),It(zt,"pointercancel",bt._onDrop),It(zt,"selectstart",bt),Ot.delay?(It(zt,"mouseup",bt._disableDelayedDrag),It(zt,"touchend",bt._disableDelayedDrag),It(zt,"touchcancel",bt._disableDelayedDrag),It(zt,"mousemove",bt._disableDelayedDrag),It(zt,"touchmove",bt._disableDelayedDrag),It(zt,"pointermove",bt._disableDelayedDrag),bt._dragStartTimer=setTimeout(Rt,Ot.delay)):Rt())},_disableDelayedDrag:function(){var Te=this.el.ownerDocument;clearTimeout(this._dragStartTimer),Lt(Te,"mouseup",this._disableDelayedDrag),Lt(Te,"touchend",this._disableDelayedDrag),Lt(Te,"touchcancel",this._disableDelayedDrag),Lt(Te,"mousemove",this._disableDelayedDrag),Lt(Te,"touchmove",this._disableDelayedDrag),Lt(Te,"pointermove",this._disableDelayedDrag)},_triggerDragStart:function(Te,je){je=je||(Te.pointerType=="touch"?Te:null),je?(W={target:r,clientX:je.clientX,clientY:je.clientY},this._onDragStart(W,"touch")):this.nativeDraggable?(It(r,"dragend",this),It(o,"dragstart",this._onDragStart)):this._onDragStart(W,!0);try{le.selection?setTimeout(function(){le.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(){if(o&&r){var Te=this.options;Qt(r,Te.ghostClass,!0),Qt(r,Te.dragClass,!1),qe.active=this,Xt(this,o,"start",r,o,C)}else this._nulling()},_emulateDragOver:function(){if(z){if(this._lastX===z.clientX&&this._lastY===z.clientY)return;this._lastX=z.clientX,this._lastY=z.clientY,Be||Ht(i,"display","none");var Te=le.elementFromPoint(z.clientX,z.clientY),je=Te,Ue=et.length;if(je)do{if(je[be]){for(;Ue--;)et[Ue]({clientX:z.clientX,clientY:z.clientY,target:Te,rootEl:je});break}Te=je}while(je=je.parentNode);Be||Ht(i,"display","")}},_onTouchMove:function(Te){if(W){var je=this.options,Ue=je.fallbackTolerance,xt=je.fallbackOffset,bt=Te.touches?Te.touches[0]:Te,sr=bt.clientX-W.clientX+xt.x,Ot=bt.clientY-W.clientY+xt.y,zt=Te.touches?"translate3d("+sr+"px,"+Ot+"px,0)":"translate("+sr+"px,"+Ot+"px)";if(!qe.active){if(Ue&&He(Ne(bt.clientX-this._lastX),Ne(bt.clientY-this._lastY))r.offsetWidth,Oe=Ue.offsetHeight>r.offsetHeight,xe=(Ur?(Te.clientX-bt.left)/xr:(Te.clientY-bt.top)/Yt)>.5,Ae=Ue.nextElementSibling,Ie=!1;if(Ur){var at=r.offsetTop,Ve=Ue.offsetTop;at===Ve?Ie=Ue.previousElementSibling===r&&!fr||xe&&fr:Ue.previousElementSibling===r||r.previousElementSibling===Ue?Ie=(Te.clientY-bt.top)/Yt>.5:Ie=Ve>at}else Vr||(Ie=Ae!==r&&!Oe||xe&&Oe);var ht=yr(o,je,r,xt,Ue,bt,Te,Ie);ht!==!1&&((ht===1||ht===-1)&&(Ie=ht===1),Xe=!0,setTimeout(er,30),lt(Rt,Wt),r.contains(je)||(Ie&&!Ae?je.appendChild(r):Ue.parentNode.insertBefore(r,Ie?Ae:Ue)),n=r.parentNode,this._animate(xt,r),this._animate(bt,Ue))}}},_animate:function(Te,je){var Ue=this.options.animation;if(Ue){var xt=je.getBoundingClientRect();Te.nodeType===1&&(Te=Te.getBoundingClientRect()),Ht(je,"transition","none"),Ht(je,"transform","translate3d("+(Te.left-xt.left)+"px,"+(Te.top-xt.top)+"px,0)"),je.offsetWidth,Ht(je,"transition","all "+Ue+"ms"),Ht(je,"transform","translate3d(0,0,0)"),clearTimeout(je.animated),je.animated=setTimeout(function(){Ht(je,"transition",""),Ht(je,"transform",""),je.animated=!1},Ue)}},_offUpEvents:function(){var Te=this.el.ownerDocument;Lt(le,"touchmove",this._onTouchMove),Lt(le,"pointermove",this._onTouchMove),Lt(Te,"mouseup",this._onDrop),Lt(Te,"touchend",this._onDrop),Lt(Te,"pointerup",this._onDrop),Lt(Te,"touchcancel",this._onDrop),Lt(Te,"pointercancel",this._onDrop),Lt(Te,"selectstart",this)},_onDrop:function(Te){var je=this.el,Ue=this.options;clearInterval(this._loopId),clearInterval(N.pid),clearTimeout(this._dragStartTimer),Lt(le,"mousemove",this._onTouchMove),this.nativeDraggable&&(Lt(le,"drop",this),Lt(je,"dragstart",this._onDragStart)),this._offUpEvents(),Te&&(U&&(Te.preventDefault(),!Ue.dropBubble&&Te.stopPropagation()),i&&i.parentNode&&i.parentNode.removeChild(i),(o===n||qe.active.lastPullMode!=="clone")&&a&&a.parentNode&&a.parentNode.removeChild(a),r&&(this.nativeDraggable&&Lt(r,"dragend",this),Pr(r),r.style["will-change"]="",Qt(r,this.options.ghostClass,!1),Qt(r,this.options.chosenClass,!1),Xt(this,o,"unchoose",r,o,C),o!==n?(A=ur(r,Ue.draggable),A>=0&&(Xt(null,n,"add",r,o,C,A),Xt(this,o,"remove",r,o,C,A),Xt(null,n,"sort",r,o,C,A),Xt(this,o,"sort",r,o,C,A))):r.nextSibling!==s&&(A=ur(r,Ue.draggable),A>=0&&(Xt(this,o,"update",r,o,C,A),Xt(this,o,"sort",r,o,C,A))),qe.active&&((A==null||A===-1)&&(A=C),Xt(this,o,"end",r,o,C,A),this.save()))),this._nulling()},_nulling:function(){o=r=n=i=s=a=l=f=d=W=z=U=A=b=y=M=P=qe.active=null,Ye.forEach(function(Te){Te.checked=!0}),Ye.length=0},handleEvent:function(Te){switch(Te.type){case"drop":case"dragend":this._onDrop(Te);break;case"dragover":case"dragenter":r&&(this._onDragOver(Te),Ut(Te));break;case"selectstart":Te.preventDefault();break}},toArray:function(){for(var Te=[],je,Ue=this.el.children,xt=0,bt=Ue.length,sr=this.options;xt*"&&Te.parentNode===Ue||Gr(Te,je))return Te;while(Te=Ft(Te))}return null}function Ft(Te){var je=Te.host;return je&&je.nodeType?je:Te.parentNode}function Ut(Te){Te.dataTransfer&&(Te.dataTransfer.dropEffect="move"),Te.preventDefault()}function It(Te,je,Ue){Te.addEventListener(je,Ue,ke)}function Lt(Te,je,Ue){Te.removeEventListener(je,Ue,ke)}function Qt(Te,je,Ue){if(Te)if(Te.classList)Te.classList[Ue?"add":"remove"](je);else{var xt=(" "+Te.className+" ").replace(G," ").replace(" "+je+" "," ");Te.className=(xt+(Ue?" "+je:"")).replace(G," ")}}function Ht(Te,je,Ue){var xt=Te&&Te.style;if(xt){if(Ue===void 0)return le.defaultView&&le.defaultView.getComputedStyle?Ue=le.defaultView.getComputedStyle(Te,""):Te.currentStyle&&(Ue=Te.currentStyle),je===void 0?Ue:Ue[je];je in xt||(je="-webkit-"+je),xt[je]=Ue+(typeof Ue=="string"?"":"px")}}function ar(Te,je,Ue){if(Te){var xt=Te.getElementsByTagName(je),bt=0,sr=xt.length;if(Ue)for(;bt5||je.clientX-(xt.left+xt.width)>5}function Mr(Te){for(var je=Te.tagName+Te.className+Te.src+Te.href+Te.textContent,Ue=je.length,xt=0;Ue--;)xt+=je.charCodeAt(Ue);return xt.toString(36)}function ur(Te,je){var Ue=0;if(!Te||!Te.parentNode)return-1;for(;Te&&(Te=Te.previousElementSibling);)Te.nodeName.toUpperCase()!=="TEMPLATE"&&(je===">*"||Gr(Te,je))&&Ue++;return Ue}function Gr(Te,je){if(Te){je=je.split(".");var Ue=je.shift().toUpperCase(),xt=new RegExp("\\s("+je.join("|")+")(?=\\s)","g");return(Ue===""||Te.nodeName.toUpperCase()==Ue)&&(!je.length||((" "+Te.className+" ").match(xt)||[]).length==je.length)}return!1}function Pt(Te,je){var Ue,xt;return function(){Ue===void 0&&(Ue=arguments,xt=this,setTimeout(function(){Ue.length===1?Te.call(xt,Ue[0]):Te.apply(xt,Ue),Ue=void 0},je))}}function dr(Te,je){if(Te&&je)for(var Ue in je)je.hasOwnProperty(Ue)&&(Te[Ue]=je[Ue]);return Te}function Bt(Te){return ae?ae(Te).clone(!0)[0]:pe&&pe.dom?pe.dom(Te).cloneNode(!0):Te.cloneNode(!0)}function ui(Te){for(var je=Te.getElementsByTagName("input"),Ue=je.length;Ue--;){var xt=je[Ue];xt.checked&&Ye.push(xt)}}It(le,"touchmove",function(Te){qe.active&&Te.preventDefault()});try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:function(){ke={capture:!1,passive:!1}}}))}catch{}return qe.utils={on:It,off:Lt,css:Ht,find:ar,is:function(Te,je){return!!vt(Te,je,Te)},extend:dr,throttle:Pt,closest:vt,toggleClass:Qt,clone:Bt,index:ur},qe.create=function(Te,je){return new qe(Te,je)},qe.version="1.6.1",qe})}(D_)),D_.exports}(function(t,e){var r=Object.assign||function(i){for(var a=1;aU-1?U:z[W]},getComponent:function(){return this.$slots.default[0].componentInstance},resetTransitionData:function(W){if(!(!this.noTransitionOnDrag||!this.transitionMode)){var z=this.getChildrenNodes();z[W].data=null;var U=this.getComponent();U.children=[],U.kept=void 0}},onDragStart:function(W){this.context=this.getUnderlyingVm(W.item),W.item._underlying_vm_=this.clone(this.context.element),A=W.item},onDragAdd:function(W){var z=W.item._underlying_vm_;if(z!==void 0){s(W.item);var U=this.getVmIndex(W.newIndex);this.spliceList(U,0,z),this.computeIndexes();var G={element:z,newIndex:U};this.emitChanges({added:G})}},onDragRemove:function(W){if(l(this.rootContainer,W.item,W.oldIndex),this.isCloning){s(W.clone);return}var z=this.context.index;this.spliceList(z,1);var U={element:this.context.element,oldIndex:z};this.resetTransitionData(z),this.emitChanges({removed:U})},onDragUpdate:function(W){s(W.item),l(W.from,W.item,W.oldIndex);var z=this.context.index,U=this.getVmIndex(W.newIndex);this.updatePosition(z,U);var G={element:this.context.element,oldIndex:z,newIndex:U};this.emitChanges({moved:G})},computeFutureIndex:function(W,z){if(!W.element)return 0;var U=[].concat(n(z.to.children)).filter(function(re){return re.style.display!=="none"}),G=U.indexOf(z.related),X=W.component.getVmIndex(G),be=U.indexOf(A)!=-1;return be||!z.willInsertAfter?X:X+1},onDragMove:function(W,z){var U=this.move;if(!U||!this.realList)return!0;var G=this.getRelatedContextFromMoveEvent(W),X=this.context,be=this.computeFutureIndex(G,W);return r(X,{futureIndex:be}),r(W,{relatedContext:G,draggedContext:X}),U(W,z)},onDragEnd:function(W){this.computeIndexes(),A=null}}};return M}{var a=Ype();t.exports=i(a)}})()})(aj);var Wpe=aj.exports;const Ikt=ti(Wpe);function Vpe(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var rl=Vpe,Upe=typeof Dn=="object"&&Dn&&Dn.Object===Object&&Dn,oj=Upe,qpe=oj,Gpe=typeof self=="object"&&self&&self.Object===Object&&self,Xpe=qpe||Gpe||Function("return this")(),ws=Xpe,Zpe=ws,Kpe=function(){return Zpe.Date.now()},Jpe=Kpe,Qpe=/\s/;function ege(t){for(var e=t.length;e--&&Qpe.test(t.charAt(e)););return e}var tge=ege,rge=tge,nge=/^\s+/;function ige(t){return t&&t.slice(0,rge(t)+1).replace(nge,"")}var age=ige,oge=ws,sge=oge.Symbol,_x=sge,XL=_x,sj=Object.prototype,lge=sj.hasOwnProperty,cge=sj.toString,Fp=XL?XL.toStringTag:void 0;function uge(t){var e=lge.call(t,Fp),r=t[Fp];try{t[Fp]=void 0;var n=!0}catch{}var i=cge.call(t);return n&&(e?t[Fp]=r:delete t[Fp]),i}var fge=uge,hge=Object.prototype,dge=hge.toString;function pge(t){return dge.call(t)}var gge=pge,ZL=_x,mge=fge,vge=gge,bge="[object Null]",yge="[object Undefined]",KL=ZL?ZL.toStringTag:void 0;function xge(t){return t==null?t===void 0?yge:bge:KL&&KL in Object(t)?mge(t):vge(t)}var Zf=xge;function wge(t){return t!=null&&typeof t=="object"}var pu=wge,_ge=Zf,kge=pu,Sge="[object Symbol]";function Cge(t){return typeof t=="symbol"||kge(t)&&_ge(t)==Sge}var kx=Cge,Age=age,JL=rl,Oge=kx,QL=0/0,Tge=/^[-+]0x[0-9a-f]+$/i,Ege=/^0b[01]+$/i,Pge=/^0o[0-7]+$/i,Mge=parseInt;function Dge(t){if(typeof t=="number")return t;if(Oge(t))return QL;if(JL(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=JL(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=Age(t);var r=Ege.test(t);return r||Pge.test(t)?Mge(t.slice(2),r?2:8):Tge.test(t)?QL:+t}var lj=Dge,Lge=rl,L_=Jpe,eI=lj,Ige="Expected a function",$ge=Math.max,Rge=Math.min;function Nge(t,e,r){var n,i,a,o,s,l,f=0,d=!1,g=!1,b=!0;if(typeof t!="function")throw new TypeError(Ige);e=eI(e)||0,Lge(r)&&(d=!!r.leading,g="maxWait"in r,a=g?$ge(eI(r.maxWait)||0,e):a,b="trailing"in r?!!r.trailing:b);function y(U){var G=n,X=i;return n=i=void 0,f=U,o=t.apply(X,G),o}function k(U){return f=U,s=setTimeout(P,e),d?y(U):o}function C(U){var G=U-l,X=U-f,be=e-G;return g?Rge(be,a-X):be}function A(U){var G=U-l,X=U-f;return l===void 0||G>=e||G<0||g&&X>=a}function P(){var U=L_();if(A(U))return M(U);s=setTimeout(P,C(U))}function M(U){return s=void 0,b&&n?y(U):(n=i=void 0,o)}function N(){s!==void 0&&clearTimeout(s),f=0,n=l=i=s=void 0}function W(){return s===void 0?o:M(L_())}function z(){var U=L_(),G=A(U);if(n=arguments,i=this,l=U,G){if(s===void 0)return k(l);if(g)return clearTimeout(s),s=setTimeout(P,e),y(l)}return s===void 0&&(s=setTimeout(P,e)),o}return z.cancel=N,z.flush=W,z}var cj=Nge;const $kt=ti(cj);var Fge=cj,zge=rl,jge="Expected a function";function Bge(t,e,r){var n=!0,i=!0;if(typeof t!="function")throw new TypeError(jge);return zge(r)&&(n="leading"in r?!!r.leading:n,i="trailing"in r?!!r.trailing:i),Fge(t,e,{leading:n,maxWait:e,trailing:i})}var Hge=Bge;const Rkt=ti(Hge);var KO={exports:{}},uj=function(e,r){return function(){for(var i=new Array(arguments.length),a=0;a"u"}function Wge(t){return t!==null&&!H2(t)&&t.constructor!==null&&!H2(t.constructor)&&typeof t.constructor.isBuffer=="function"&&t.constructor.isBuffer(t)}function Vge(t){return Vd.call(t)==="[object ArrayBuffer]"}function Uge(t){return typeof FormData<"u"&&t instanceof FormData}function qge(t){var e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&t.buffer instanceof ArrayBuffer,e}function Gge(t){return typeof t=="string"}function Xge(t){return typeof t=="number"}function hj(t){return t!==null&&typeof t=="object"}function Zge(t){return Vd.call(t)==="[object Date]"}function Kge(t){return Vd.call(t)==="[object File]"}function Jge(t){return Vd.call(t)==="[object Blob]"}function dj(t){return Vd.call(t)==="[object Function]"}function Qge(t){return hj(t)&&dj(t.pipe)}function eme(t){return typeof URLSearchParams<"u"&&t instanceof URLSearchParams}function tme(t){return t.replace(/^\s*/,"").replace(/\s*$/,"")}function rme(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function Sx(t,e){if(!(t===null||typeof t>"u"))if(typeof t!="object"&&(t=[t]),fj(t))for(var r=0,n=t.length;r"u"||(Ch.isArray(l)?f=f+"[]":l=[l],Ch.forEach(l,function(g){Ch.isDate(g)?g=g.toISOString():Ch.isObject(g)&&(g=JSON.stringify(g)),a.push(tI(f)+"="+tI(g))}))}),i=a.join("&")}if(i){var o=e.indexOf("#");o!==-1&&(e=e.slice(0,o)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e},ime=mo;function Cx(){this.handlers=[]}Cx.prototype.use=function(e,r){return this.handlers.push({fulfilled:e,rejected:r}),this.handlers.length-1};Cx.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)};Cx.prototype.forEach=function(e){ime.forEach(this.handlers,function(n){n!==null&&e(n)})};var ame=Cx,ome=mo,sme=function(e,r,n){return ome.forEach(n,function(a){e=a(e,r)}),e},I_,rI;function mj(){return rI||(rI=1,I_=function(e){return!!(e&&e.__CANCEL__)}),I_}var lme=mo,cme=function(e,r){lme.forEach(e,function(i,a){a!==r&&a.toUpperCase()===r.toUpperCase()&&(e[r]=i,delete e[a])})},$_,nI;function ume(){return nI||(nI=1,$_=function(e,r,n,i,a){return e.config=r,n&&(e.code=n),e.request=i,e.response=a,e.isAxiosError=!0,e.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:this.config,code:this.code}},e}),$_}var R_,iI;function vj(){if(iI)return R_;iI=1;var t=ume();return R_=function(r,n,i,a,o){var s=new Error(r);return t(s,n,i,a,o)},R_}var N_,aI;function fme(){if(aI)return N_;aI=1;var t=vj();return N_=function(r,n,i){var a=i.config.validateStatus;!a||a(i.status)?r(i):n(t("Request failed with status code "+i.status,i.config,null,i.request,i))},N_}var F_,oI;function hme(){return oI||(oI=1,F_=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}),F_}var z_,sI;function dme(){return sI||(sI=1,z_=function(e,r){return r?e.replace(/\/+$/,"")+"/"+r.replace(/^\/+/,""):e}),z_}var j_,lI;function pme(){if(lI)return j_;lI=1;var t=hme(),e=dme();return j_=function(n,i){return n&&!t(i)?e(n,i):i},j_}var B_,cI;function gme(){if(cI)return B_;cI=1;var t=mo,e=["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"];return B_=function(n){var i={},a,o,s;return n&&t.forEach(n.split(` -`),function(f){if(s=f.indexOf(":"),a=t.trim(f.substr(0,s)).toLowerCase(),o=t.trim(f.substr(s+1)),a){if(i[a]&&e.indexOf(a)>=0)return;a==="set-cookie"?i[a]=(i[a]?i[a]:[]).concat([o]):i[a]=i[a]?i[a]+", "+o:o}}),i},B_}var H_,uI;function mme(){if(uI)return H_;uI=1;var t=mo;return H_=t.isStandardBrowserEnv()?function(){var r=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a"),i;function a(o){var s=o;return r&&(n.setAttribute("href",s),s=n.href),n.setAttribute("href",s),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:n.pathname.charAt(0)==="/"?n.pathname:"/"+n.pathname}}return i=a(window.location.href),function(s){var l=t.isString(s)?a(s):s;return l.protocol===i.protocol&&l.host===i.host}}():function(){return function(){return!0}}(),H_}var Ev=mo,bj=Ev.isStandardBrowserEnv()?function(){return{write:function(r,n,i,a,o,s){var l=[];l.push(r+"="+encodeURIComponent(n)),Ev.isNumber(i)&&l.push("expires="+new Date(i).toGMTString()),Ev.isString(a)&&l.push("path="+a),Ev.isString(o)&&l.push("domain="+o),s===!0&&l.push("secure"),document.cookie=l.join("; ")},read:function(r){var n=document.cookie.match(new RegExp("(^|;\\s*)("+r+")=([^;]*)"));return n?decodeURIComponent(n[3]):null},remove:function(r){this.write(r,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}();const Nkt=ti(bj);var Y_,fI;function hI(){if(fI)return Y_;fI=1;var t=mo,e=fme(),r=gj,n=pme(),i=gme(),a=mme(),o=vj();return Y_=function(l){return new Promise(function(d,g){var b=l.data,y=l.headers;t.isFormData(b)&&delete y["Content-Type"];var k=new XMLHttpRequest;if(l.auth){var C=l.auth.username||"",A=l.auth.password||"";y.Authorization="Basic "+btoa(C+":"+A)}var P=n(l.baseURL,l.url);if(k.open(l.method.toUpperCase(),r(P,l.params,l.paramsSerializer),!0),k.timeout=l.timeout,k.onreadystatechange=function(){if(!(!k||k.readyState!==4)&&!(k.status===0&&!(k.responseURL&&k.responseURL.indexOf("file:")===0))){var z="getAllResponseHeaders"in k?i(k.getAllResponseHeaders()):null,U=!l.responseType||l.responseType==="text"?k.responseText:k.response,G={data:U,status:k.status,statusText:k.statusText,headers:z,config:l,request:k};e(d,g,G),k=null}},k.onabort=function(){k&&(g(o("Request aborted",l,"ECONNABORTED",k)),k=null)},k.onerror=function(){g(o("Network Error",l,null,k)),k=null},k.ontimeout=function(){var z="timeout of "+l.timeout+"ms exceeded";l.timeoutErrorMessage&&(z=l.timeoutErrorMessage),g(o(z,l,"ECONNABORTED",k)),k=null},t.isStandardBrowserEnv()){var M=bj,N=(l.withCredentials||a(P))&&l.xsrfCookieName?M.read(l.xsrfCookieName):void 0;N&&(y[l.xsrfHeaderName]=N)}if("setRequestHeader"in k&&t.forEach(y,function(z,U){typeof b>"u"&&U.toLowerCase()==="content-type"?delete y[U]:k.setRequestHeader(U,z)}),t.isUndefined(l.withCredentials)||(k.withCredentials=!!l.withCredentials),l.responseType)try{k.responseType=l.responseType}catch(W){if(l.responseType!=="json")throw W}typeof l.onDownloadProgress=="function"&&k.addEventListener("progress",l.onDownloadProgress),typeof l.onUploadProgress=="function"&&k.upload&&k.upload.addEventListener("progress",l.onUploadProgress),l.cancelToken&&l.cancelToken.promise.then(function(z){k&&(k.abort(),g(z),k=null)}),b===void 0&&(b=null),k.send(b)})},Y_}var Da=mo,dI=cme,vme={"Content-Type":"application/x-www-form-urlencoded"};function pI(t,e){!Da.isUndefined(t)&&Da.isUndefined(t["Content-Type"])&&(t["Content-Type"]=e)}function bme(){var t;return(typeof XMLHttpRequest<"u"||typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]")&&(t=hI()),t}var Ax={adapter:bme(),transformRequest:[function(e,r){return dI(r,"Accept"),dI(r,"Content-Type"),Da.isFormData(e)||Da.isArrayBuffer(e)||Da.isBuffer(e)||Da.isStream(e)||Da.isFile(e)||Da.isBlob(e)?e:Da.isArrayBufferView(e)?e.buffer:Da.isURLSearchParams(e)?(pI(r,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):Da.isObject(e)?(pI(r,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if(typeof e=="string")try{e=JSON.parse(e)}catch{}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(e){return e>=200&&e<300}};Ax.headers={common:{Accept:"application/json, text/plain, */*"}};Da.forEach(["delete","get","head"],function(e){Ax.headers[e]={}});Da.forEach(["post","put","patch"],function(e){Ax.headers[e]=Da.merge(vme)});var yj=Ax,gI=mo,W_=sme,yme=mj(),xme=yj;function V_(t){t.cancelToken&&t.cancelToken.throwIfRequested()}var wme=function(e){V_(e),e.headers=e.headers||{},e.data=W_(e.data,e.headers,e.transformRequest),e.headers=gI.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),gI.forEach(["delete","get","head","post","put","patch","common"],function(i){delete e.headers[i]});var r=e.adapter||xme.adapter;return r(e).then(function(i){return V_(e),i.data=W_(i.data,i.headers,e.transformResponse),i},function(i){return yme(i)||(V_(e),i&&i.response&&(i.response.data=W_(i.response.data,i.response.headers,e.transformResponse))),Promise.reject(i)})},fc=mo,xj=function(e,r){r=r||{};var n={},i=["url","method","params","data"],a=["headers","auth","proxy"],o=["baseURL","url","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"];fc.forEach(i,function(d){typeof r[d]<"u"&&(n[d]=r[d])}),fc.forEach(a,function(d){fc.isObject(r[d])?n[d]=fc.deepMerge(e[d],r[d]):typeof r[d]<"u"?n[d]=r[d]:fc.isObject(e[d])?n[d]=fc.deepMerge(e[d]):typeof e[d]<"u"&&(n[d]=e[d])}),fc.forEach(o,function(d){typeof r[d]<"u"?n[d]=r[d]:typeof e[d]<"u"&&(n[d]=e[d])});var s=i.concat(a).concat(o),l=Object.keys(r).filter(function(d){return s.indexOf(d)===-1});return fc.forEach(l,function(d){typeof r[d]<"u"?n[d]=r[d]:typeof e[d]<"u"&&(n[d]=e[d])}),n},Ib=mo,_me=gj,mI=ame,kme=wme,wj=xj;function Im(t){this.defaults=t,this.interceptors={request:new mI,response:new mI}}Im.prototype.request=function(e){typeof e=="string"?(e=arguments[1]||{},e.url=arguments[0]):e=e||{},e=wj(this.defaults,e),e.method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var r=[kme,void 0],n=Promise.resolve(e);for(this.interceptors.request.forEach(function(a){r.unshift(a.fulfilled,a.rejected)}),this.interceptors.response.forEach(function(a){r.push(a.fulfilled,a.rejected)});r.length;)n=n.then(r.shift(),r.shift());return n};Im.prototype.getUri=function(e){return e=wj(this.defaults,e),_me(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")};Ib.forEach(["delete","get","head","options"],function(e){Im.prototype[e]=function(r,n){return this.request(Ib.merge(n||{},{method:e,url:r}))}});Ib.forEach(["post","put","patch"],function(e){Im.prototype[e]=function(r,n,i){return this.request(Ib.merge(i||{},{method:e,url:r,data:n}))}});var Sme=Im,U_,vI;function _j(){if(vI)return U_;vI=1;function t(e){this.message=e}return t.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},t.prototype.__CANCEL__=!0,U_=t,U_}var q_,bI;function Cme(){if(bI)return q_;bI=1;var t=_j();function e(r){if(typeof r!="function")throw new TypeError("executor must be a function.");var n;this.promise=new Promise(function(o){n=o});var i=this;r(function(o){i.reason||(i.reason=new t(o),n(i.reason))})}return e.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},e.source=function(){var n,i=new e(function(o){n=o});return{token:i,cancel:n}},q_=e,q_}var G_,yI;function Ame(){return yI||(yI=1,G_=function(e){return function(n){return e.apply(null,n)}}),G_}var xI=mo,Ome=uj,I0=Sme,Tme=xj,Eme=yj;function kj(t){var e=new I0(t),r=Ome(I0.prototype.request,e);return xI.extend(r,I0.prototype,e),xI.extend(r,e),r}var Qs=kj(Eme);Qs.Axios=I0;Qs.create=function(e){return kj(Tme(Qs.defaults,e))};Qs.Cancel=_j();Qs.CancelToken=Cme();Qs.isCancel=mj();Qs.all=function(e){return Promise.all(e)};Qs.spread=Ame();KO.exports=Qs;KO.exports.default=Qs;var Pme=KO.exports,Mme=Pme;const Fkt=ti(Mme);var Dme=String.prototype.replace,Lme=/%20/g,X_={RFC1738:"RFC1738",RFC3986:"RFC3986"},JO={default:X_.RFC3986,formatters:{RFC1738:function(t){return Dme.call(t,Lme,"+")},RFC3986:function(t){return String(t)}},RFC1738:X_.RFC1738,RFC3986:X_.RFC3986},Ime=JO,Z_=Object.prototype.hasOwnProperty,Yu=Array.isArray,Is=function(){for(var t=[],e=0;e<256;++e)t.push("%"+((e<16?"0":"")+e.toString(16)).toUpperCase());return t}(),$me=function(e){for(;e.length>1;){var r=e.pop(),n=r.obj[r.prop];if(Yu(n)){for(var i=[],a=0;a=48&&f<=57||f>=65&&f<=90||f>=97&&f<=122||a===Ime.RFC1738&&(f===40||f===41)){s+=o.charAt(l);continue}if(f<128){s=s+Is[f];continue}if(f<2048){s=s+(Is[192|f>>6]+Is[128|f&63]);continue}if(f<55296||f>=57344){s=s+(Is[224|f>>12]+Is[128|f>>6&63]+Is[128|f&63]);continue}l+=1,f=65536+((f&1023)<<10|o.charCodeAt(l)&1023),s+=Is[240|f>>18]+Is[128|f>>12&63]+Is[128|f>>6&63]+Is[128|f&63]}return s},jme=function(e){for(var r=[{obj:{o:e},prop:"o"}],n=[],i=0;i"u")return W;var z;if(n==="comma"&&Ju(C))z=[{value:C.length>0?C.join(",")||null:void 0}];else if(Ju(s))z=s;else{var U=Object.keys(C);z=l?U.sort(l):U}for(var G=0;G"u"?Bi.allowDots:!!e.allowDots,charset:r,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:Bi.charsetSentinel,delimiter:typeof e.delimiter>"u"?Bi.delimiter:e.delimiter,encode:typeof e.encode=="boolean"?e.encode:Bi.encode,encoder:typeof e.encoder=="function"?e.encoder:Bi.encoder,encodeValuesOnly:typeof e.encodeValuesOnly=="boolean"?e.encodeValuesOnly:Bi.encodeValuesOnly,filter:a,format:n,formatter:i,serializeDate:typeof e.serializeDate=="function"?e.serializeDate:Bi.serializeDate,skipNulls:typeof e.skipNulls=="boolean"?e.skipNulls:Bi.skipNulls,sort:typeof e.sort=="function"?e.sort:null,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:Bi.strictNullHandling}},Jme=function(t,e){var r=t,n=Kme(e),i,a;typeof n.filter=="function"?(a=n.filter,r=a("",r)):Ju(n.filter)&&(a=n.filter,i=a);var o=[];if(typeof r!="object"||r===null)return"";var s;e&&e.arrayFormat in wI?s=e.arrayFormat:e&&"indices"in e?s=e.indices?"indices":"repeat":s="indices";var l=wI[s];i||(i=Object.keys(r)),n.sort&&i.sort(n.sort);for(var f=0;f0?b+g:""},kd=Cj,V2=Object.prototype.hasOwnProperty,Qme=Array.isArray,ji={allowDots:!1,allowPrototypes:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decoder:kd.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},eve=function(t){return t.replace(/&#(\d+);/g,function(e,r){return String.fromCharCode(parseInt(r,10))})},Oj=function(t,e){return t&&typeof t=="string"&&e.comma&&t.indexOf(",")>-1?t.split(","):t},tve="utf8=%26%2310003%3B",rve="utf8=%E2%9C%93",nve=function(e,r){var n={},i=r.ignoreQueryPrefix?e.replace(/^\?/,""):e,a=r.parameterLimit===1/0?void 0:r.parameterLimit,o=i.split(r.delimiter,a),s=-1,l,f=r.charset;if(r.charsetSentinel)for(l=0;l-1&&(k=Qme(k)?[k]:k),V2.call(n,y)?n[y]=kd.combine(n[y],k):n[y]=k}return n},ive=function(t,e,r,n){for(var i=n?e:Oj(e,r),a=t.length-1;a>=0;--a){var o,s=t[a];if(s==="[]"&&r.parseArrays)o=[].concat(i);else{o=r.plainObjects?Object.create(null):{};var l=s.charAt(0)==="["&&s.charAt(s.length-1)==="]"?s.slice(1,-1):s,f=parseInt(l,10);!r.parseArrays&&l===""?o={0:i}:!isNaN(f)&&s!==l&&String(f)===l&&f>=0&&r.parseArrays&&f<=r.arrayLimit?(o=[],o[f]=i):l!=="__proto__"&&(o[l]=i)}i=o}return i},ave=function(e,r,n,i){if(e){var a=n.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,o=/(\[[^[\]]*])/,s=/(\[[^[\]]*])/g,l=n.depth>0&&o.exec(a),f=l?a.slice(0,l.index):a,d=[];if(f){if(!n.plainObjects&&V2.call(Object.prototype,f)&&!n.allowPrototypes)return;d.push(f)}for(var g=0;n.depth>0&&(l=s.exec(a))!==null&&g"u"?ji.charset:e.charset;return{allowDots:typeof e.allowDots>"u"?ji.allowDots:!!e.allowDots,allowPrototypes:typeof e.allowPrototypes=="boolean"?e.allowPrototypes:ji.allowPrototypes,arrayLimit:typeof e.arrayLimit=="number"?e.arrayLimit:ji.arrayLimit,charset:r,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:ji.charsetSentinel,comma:typeof e.comma=="boolean"?e.comma:ji.comma,decoder:typeof e.decoder=="function"?e.decoder:ji.decoder,delimiter:typeof e.delimiter=="string"||kd.isRegExp(e.delimiter)?e.delimiter:ji.delimiter,depth:typeof e.depth=="number"||e.depth===!1?+e.depth:ji.depth,ignoreQueryPrefix:e.ignoreQueryPrefix===!0,interpretNumericEntities:typeof e.interpretNumericEntities=="boolean"?e.interpretNumericEntities:ji.interpretNumericEntities,parameterLimit:typeof e.parameterLimit=="number"?e.parameterLimit:ji.parameterLimit,parseArrays:e.parseArrays!==!1,plainObjects:typeof e.plainObjects=="boolean"?e.plainObjects:ji.plainObjects,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:ji.strictNullHandling}},sve=function(t,e){var r=ove(e);if(t===""||t===null||typeof t>"u")return r.plainObjects?Object.create(null):{};for(var n=typeof t=="string"?nve(t,r):t,i=r.plainObjects?Object.create(null):{},a=Object.keys(n),o=0;o. - * All Rights Reserved. Apache Software License 2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License") - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */(function(t,e){(function(r){function n(){console.log.apply(console,arguments)}var i={id:null,caseSensitive:!1,include:[],shouldSort:!0,searchFn:l,sortFn:function(f,d){return f.score-d.score},getFn:o,keys:[],verbose:!1,tokenize:!1,matchAllTokens:!1,tokenSeparator:/ +/g,minMatchCharLength:1,findAllMatches:!1};function a(f,d){var g;this.list=f,this.options=d=d||{};for(g in i)i.hasOwnProperty(g)&&(typeof i[g]=="boolean"?this.options[g]=g in d?d[g]:i[g]:this.options[g]=d[g]||i[g])}a.VERSION="2.7.3",a.prototype.set=function(f){return this.list=f,f},a.prototype.search=function(f){this.options.verbose&&n(` -Search term:`,f,` -`),this.pattern=f,this.results=[],this.resultMap={},this._keyMap=null,this._prepareSearchers(),this._startSearch(),this._computeScore(),this._sort();var d=this._format();return d},a.prototype._prepareSearchers=function(){var f=this.options,d=this.pattern,g=f.searchFn,b=d.split(f.tokenSeparator),y=0,k=b.length;if(this.options.tokenize)for(this.tokenSearchers=[];y1)throw new Error("Key weight has to be > 0 and <= 1");C=C.name}else this._keyMap[C]={weight:1};this._analyze(C,d(P,C,[]),P,M)}},a.prototype._analyze=function(f,d,g,b){var y=this.options,k,C,A=!1,P,M,N,W,z,U,G,X,be,re,le,te,ae;if(d!=null){C=[];var pe=0;if(typeof d=="string"){if(k=d.split(y.tokenSeparator),y.verbose&&n(`--------- -Key:`,f),this.options.tokenize){for(te=0;te=this.tokenSearchers.length:!0,y.verbose&&n("Check Matches",le),(A||z.isMatch)&&le&&(P=this.resultMap[b],P?P.output.push({key:f,score:N,matchedIndices:z.matchedIndices}):(this.resultMap[b]={item:g,output:[{key:f,score:N,matchedIndices:z.matchedIndices}]},this.results.push(this.resultMap[b])))}else if(s(d))for(te=0;te0){if(W={item:N.item},P.indexOf("matches")!==-1)for(U=N.output,W.matches=[],z=0;zd.maxPatternLength){if(te=f.match(new RegExp(this.pattern.replace(d.tokenSeparator,"|"))),ae=!!te,ae)for(ke=[],g=0,Re=te.length;g=z;b--)if(be=this.patternAlphabet[f.charAt(b-1)],be&&(pe[b-1]=1),G[b]=(G[b+1]<<1|1)&be,g!==0&&(G[b]|=(X[b+1]|X[b])<<1|1|X[b+1]),G[b]&this.matchmask&&(re=this._bitapScore(g,b-1),re<=A)){if(A=re,P=b-1,le.push(P),P<=C)break;z=Math.max(1,2*C-P)}if(this._bitapScore(g+1,C)>A)break;X=G}return ke=this._getMatchedIndices(pe),{isMatch:P>=0,score:re===0?.001:re,matchedIndices:ke}},l.prototype._getMatchedIndices=function(f){for(var d=[],g=-1,b=-1,y=0,k,C=f.length;y=this.options.minMatchCharLength&&d.push([g,b]),g=-1);return f[y-1]&&y-1-g+1>=this.options.minMatchCharLength&&d.push([g,y-1]),d},t.exports=a})()})(Tj);var hve=Tj.exports;const jkt=ti(hve);var Ej;function ir(){return Ej.apply(null,arguments)}function dve(t){Ej=t}function gs(t){return t instanceof Array||Object.prototype.toString.call(t)==="[object Array]"}function ug(t){return t!=null&&Object.prototype.toString.call(t)==="[object Object]"}function pve(t){if(Object.getOwnPropertyNames)return Object.getOwnPropertyNames(t).length===0;var e;for(e in t)if(t.hasOwnProperty(e))return!1;return!0}function Qi(t){return t===void 0}function Df(t){return typeof t=="number"||Object.prototype.toString.call(t)==="[object Number]"}function Ox(t){return t instanceof Date||Object.prototype.toString.call(t)==="[object Date]"}function Pj(t,e){var r=[],n;for(n=0;n>>0,n=0;n0)for(r=0;r0?"future":"past"];return il(r)?r(e):r.replace(/%s/i,e)}var fg={};function la(t,e){var r=t.toLowerCase();fg[r]=fg[r+"s"]=fg[e]=t}function Wo(t){return typeof t=="string"?fg[t]||fg[t.toLowerCase()]:void 0}function rT(t){var e={},r,n;for(n in t)li(t,n)&&(r=Wo(n),r&&(e[r]=t[n]));return e}var $j={};function ca(t,e){$j[t]=e}function Eve(t){var e=[];for(var r in t)e.push({unit:r,priority:$j[r]});return e.sort(function(n,i){return n.priority-i.priority}),e}function Ul(t,e,r){var n=""+Math.abs(t),i=e-n.length,a=t>=0;return(a?r?"+":"":"-")+Math.pow(10,Math.max(0,i)).toString().substr(1)+n}var Rj=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,Pv=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Q_={},od={};function Ar(t,e,r,n){var i=n;typeof n=="string"&&(i=function(){return this[n]()}),t&&(od[t]=i),e&&(od[e[0]]=function(){return Ul(i.apply(this,arguments),e[1],e[2])}),r&&(od[r]=function(){return this.localeData().ordinal(i.apply(this,arguments),t)})}function Pve(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function Mve(t){var e=t.match(Rj),r,n;for(r=0,n=e.length;r=0&&Pv.test(t);)t=t.replace(Pv,n),Pv.lastIndex=0,r-=1;return t}var Fj=/\d/,vo=/\d\d/,zj=/\d{3}/,nT=/\d{4}/,Ex=/[+-]?\d{6}/,Ln=/\d\d?/,jj=/\d\d\d\d?/,Bj=/\d\d\d\d\d\d?/,Px=/\d{1,3}/,iT=/\d{1,4}/,Mx=/[+-]?\d{1,6}/,Dve=/\d+/,Dx=/[+-]?\d+/,Lve=/Z|[+-]\d\d:?\d\d/gi,Lx=/Z|[+-]\d\d(?::?\d\d)?/gi,Ive=/[+-]?\d+(\.\d{1,3})?/,Rm=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,X2={};function hr(t,e,r){X2[t]=il(e)?e:function(n,i){return n&&r?r:e}}function $ve(t,e){return li(X2,t)?X2[t](e._strict,e._locale):new RegExp(Rve(t))}function Rve(t){return gf(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,r,n,i,a){return r||n||i||a}))}function gf(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var Z2={};function In(t,e){var r,n=e;for(typeof t=="string"&&(t=[t]),Df(e)&&(n=function(i,a){a[e]=Wr(i)}),r=0;r68?1900:2e3)};var Hj=Ud("FullYear",!0);function jve(){return Ix(this.year())}function Ud(t,e){return function(r){return r!=null?(Yj(this,t,r),ir.updateOffset(this,e),this):$b(this,t)}}function $b(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function Yj(t,e,r){t.isValid()&&!isNaN(r)&&(e==="FullYear"&&Ix(t.year())?t._d["set"+(t._isUTC?"UTC":"")+e](r,t.month(),$x(r,t.month())):t._d["set"+(t._isUTC?"UTC":"")+e](r))}function Bve(t){return t=Wo(t),il(this[t])?this[t]():this}function Hve(t,e){if(typeof t=="object"){t=rT(t);for(var r=Eve(t),n=0;n=0&&isFinite(s.getFullYear())&&s.setFullYear(t),s}function Yg(t){var e=new Date(Date.UTC.apply(null,arguments));return t<100&&t>=0&&isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t),e}function Rb(t,e,r){var n=7+e-r,i=(7+Yg(t,0,n).getUTCDay()-e)%7;return-i+n-1}function Xj(t,e,r,n,i){var a=(7+r-n)%7,o=Rb(t,n,i),s=1+7*(e-1)+a+o,l,f;return s<=0?(l=t-1,f=hg(l)+s):s>hg(t)?(l=t+1,f=s-hg(t)):(l=t,f=s),{year:l,dayOfYear:f}}function Wg(t,e,r){var n=Rb(t.year(),e,r),i=Math.floor((t.dayOfYear()-n-1)/7)+1,a,o;return i<1?(o=t.year()-1,a=i+mf(o,e,r)):i>mf(t.year(),e,r)?(a=i-mf(t.year(),e,r),o=t.year()+1):(o=t.year(),a=i),{week:a,year:o}}function mf(t,e,r){var n=Rb(t,e,r),i=Rb(t+1,e,r);return(hg(t)-n+i)/7}Ar("w",["ww",2],"wo","week");Ar("W",["WW",2],"Wo","isoWeek");la("week","w");la("isoWeek","W");ca("week",5);ca("isoWeek",5);hr("w",Ln);hr("ww",Ln,vo);hr("W",Ln);hr("WW",Ln,vo);Nm(["w","ww","W","WW"],function(t,e,r,n){e[n.substr(0,1)]=Wr(t)});function t0e(t){return Wg(t,this._week.dow,this._week.doy).week}var r0e={dow:0,doy:6};function n0e(){return this._week.dow}function i0e(){return this._week.doy}function a0e(t){var e=this.localeData().week(this);return t==null?e:this.add((t-e)*7,"d")}function o0e(t){var e=Wg(this,1,4).week;return t==null?e:this.add((t-e)*7,"d")}Ar("d",0,"do","day");Ar("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)});Ar("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)});Ar("dddd",0,0,function(t){return this.localeData().weekdays(this,t)});Ar("e",0,0,"weekday");Ar("E",0,0,"isoWeekday");la("day","d");la("weekday","e");la("isoWeekday","E");ca("day",11);ca("weekday",11);ca("isoWeekday",11);hr("d",Ln);hr("e",Ln);hr("E",Ln);hr("dd",function(t,e){return e.weekdaysMinRegex(t)});hr("ddd",function(t,e){return e.weekdaysShortRegex(t)});hr("dddd",function(t,e){return e.weekdaysRegex(t)});Nm(["dd","ddd","dddd"],function(t,e,r,n){var i=r._locale.weekdaysParse(t,n,r._strict);i!=null?e.d=i:Br(r).invalidWeekday=t});Nm(["d","e","E"],function(t,e,r,n){e[n]=Wr(t)});function s0e(t,e){return typeof t!="string"?t:isNaN(t)?(t=e.weekdaysParse(t),typeof t=="number"?t:null):parseInt(t,10)}function l0e(t,e){return typeof t=="string"?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}var c0e="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_");function u0e(t,e){return t?gs(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]:gs(this._weekdays)?this._weekdays:this._weekdays.standalone}var Zj="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_");function f0e(t){return t?this._weekdaysShort[t.day()]:this._weekdaysShort}var h0e="Su_Mo_Tu_We_Th_Fr_Sa".split("_");function d0e(t){return t?this._weekdaysMin[t.day()]:this._weekdaysMin}function p0e(t,e,r){var n,i,a,o=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],n=0;n<7;++n)a=nl([2e3,1]).day(n),this._minWeekdaysParse[n]=this.weekdaysMin(a,"").toLocaleLowerCase(),this._shortWeekdaysParse[n]=this.weekdaysShort(a,"").toLocaleLowerCase(),this._weekdaysParse[n]=this.weekdays(a,"").toLocaleLowerCase();return r?e==="dddd"?(i=oi.call(this._weekdaysParse,o),i!==-1?i:null):e==="ddd"?(i=oi.call(this._shortWeekdaysParse,o),i!==-1?i:null):(i=oi.call(this._minWeekdaysParse,o),i!==-1?i:null):e==="dddd"?(i=oi.call(this._weekdaysParse,o),i!==-1||(i=oi.call(this._shortWeekdaysParse,o),i!==-1)?i:(i=oi.call(this._minWeekdaysParse,o),i!==-1?i:null)):e==="ddd"?(i=oi.call(this._shortWeekdaysParse,o),i!==-1||(i=oi.call(this._weekdaysParse,o),i!==-1)?i:(i=oi.call(this._minWeekdaysParse,o),i!==-1?i:null)):(i=oi.call(this._minWeekdaysParse,o),i!==-1||(i=oi.call(this._weekdaysParse,o),i!==-1)?i:(i=oi.call(this._shortWeekdaysParse,o),i!==-1?i:null))}function g0e(t,e,r){var n,i,a;if(this._weekdaysParseExact)return p0e.call(this,t,e,r);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),n=0;n<7;n++){if(i=nl([2e3,1]).day(n),r&&!this._fullWeekdaysParse[n]&&(this._fullWeekdaysParse[n]=new RegExp("^"+this.weekdays(i,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[n]=new RegExp("^"+this.weekdaysShort(i,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[n]=new RegExp("^"+this.weekdaysMin(i,"").replace(".",".?")+"$","i")),this._weekdaysParse[n]||(a="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[n]=new RegExp(a.replace(".",""),"i")),r&&e==="dddd"&&this._fullWeekdaysParse[n].test(t))return n;if(r&&e==="ddd"&&this._shortWeekdaysParse[n].test(t))return n;if(r&&e==="dd"&&this._minWeekdaysParse[n].test(t))return n;if(!r&&this._weekdaysParse[n].test(t))return n}}function m0e(t){if(!this.isValid())return t!=null?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return t!=null?(t=s0e(t,this.localeData()),this.add(t-e,"d")):e}function v0e(t){if(!this.isValid())return t!=null?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return t==null?e:this.add(t-e,"d")}function b0e(t){if(!this.isValid())return t!=null?this:NaN;if(t!=null){var e=l0e(t,this.localeData());return this.day(this.day()%7?e:e-7)}else return this.day()||7}var y0e=Rm;function x0e(t){return this._weekdaysParseExact?(li(this,"_weekdaysRegex")||aT.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(li(this,"_weekdaysRegex")||(this._weekdaysRegex=y0e),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)}var w0e=Rm;function _0e(t){return this._weekdaysParseExact?(li(this,"_weekdaysRegex")||aT.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(li(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=w0e),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}var k0e=Rm;function S0e(t){return this._weekdaysParseExact?(li(this,"_weekdaysRegex")||aT.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(li(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=k0e),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function aT(){function t(d,g){return g.length-d.length}var e=[],r=[],n=[],i=[],a,o,s,l,f;for(a=0;a<7;a++)o=nl([2e3,1]).day(a),s=this.weekdaysMin(o,""),l=this.weekdaysShort(o,""),f=this.weekdays(o,""),e.push(s),r.push(l),n.push(f),i.push(s),i.push(l),i.push(f);for(e.sort(t),r.sort(t),n.sort(t),i.sort(t),a=0;a<7;a++)r[a]=gf(r[a]),n[a]=gf(n[a]),i[a]=gf(i[a]);this._weekdaysRegex=new RegExp("^("+i.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+n.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+r.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+e.join("|")+")","i")}function oT(){return this.hours()%12||12}function C0e(){return this.hours()||24}Ar("H",["HH",2],0,"hour");Ar("h",["hh",2],0,oT);Ar("k",["kk",2],0,C0e);Ar("hmm",0,0,function(){return""+oT.apply(this)+Ul(this.minutes(),2)});Ar("hmmss",0,0,function(){return""+oT.apply(this)+Ul(this.minutes(),2)+Ul(this.seconds(),2)});Ar("Hmm",0,0,function(){return""+this.hours()+Ul(this.minutes(),2)});Ar("Hmmss",0,0,function(){return""+this.hours()+Ul(this.minutes(),2)+Ul(this.seconds(),2)});function Kj(t,e){Ar(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}Kj("a",!0);Kj("A",!1);la("hour","h");ca("hour",13);function Jj(t,e){return e._meridiemParse}hr("a",Jj);hr("A",Jj);hr("H",Ln);hr("h",Ln);hr("k",Ln);hr("HH",Ln,vo);hr("hh",Ln,vo);hr("kk",Ln,vo);hr("hmm",jj);hr("hmmss",Bj);hr("Hmm",jj);hr("Hmmss",Bj);In(["H","HH"],ki);In(["k","kk"],function(t,e,r){var n=Wr(t);e[ki]=n===24?0:n});In(["a","A"],function(t,e,r){r._isPm=r._locale.isPM(t),r._meridiem=t});In(["h","hh"],function(t,e,r){e[ki]=Wr(t),Br(r).bigHour=!0});In("hmm",function(t,e,r){var n=t.length-2;e[ki]=Wr(t.substr(0,n)),e[ss]=Wr(t.substr(n)),Br(r).bigHour=!0});In("hmmss",function(t,e,r){var n=t.length-4,i=t.length-2;e[ki]=Wr(t.substr(0,n)),e[ss]=Wr(t.substr(n,2)),e[Nl]=Wr(t.substr(i)),Br(r).bigHour=!0});In("Hmm",function(t,e,r){var n=t.length-2;e[ki]=Wr(t.substr(0,n)),e[ss]=Wr(t.substr(n))});In("Hmmss",function(t,e,r){var n=t.length-4,i=t.length-2;e[ki]=Wr(t.substr(0,n)),e[ss]=Wr(t.substr(n,2)),e[Nl]=Wr(t.substr(i))});function A0e(t){return(t+"").toLowerCase().charAt(0)==="p"}var O0e=/[ap]\.?m?\.?/i;function T0e(t,e,r){return t>11?r?"pm":"PM":r?"am":"AM"}var E0e=Ud("Hours",!0),Qj={calendar:vve,longDateFormat:yve,invalidDate:wve,ordinal:kve,dayOfMonthOrdinalParse:Sve,relativeTime:Ave,months:Wve,monthsShort:Vj,week:r0e,weekdays:c0e,weekdaysMin:h0e,weekdaysShort:Zj,meridiemParse:O0e},si={},zp={},Nb;function SI(t){return t&&t.toLowerCase().replace("_","-")}function P0e(t){for(var e=0,r,n,i,a;e0;){if(i=eB(a.slice(0,r).join("-")),i)return i;if(n&&n.length>=r&&Mj(a,n,!0)>=r-1)break;r--}e++}return null}function eB(t){var e=null;if(!si[t]&&typeof module<"u"&&module&&module.exports)try{e=Nb._abbr;var r=require;r("./locale/"+t),qd(e)}catch{}return si[t]}function qd(t,e){var r;return t&&(Qi(e)?r=mu(t):r=sT(t,e),r&&(Nb=r)),Nb._abbr}function sT(t,e){if(e!==null){var r=Qj;if(e.abbr=t,si[t]!=null)Lj("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),r=si[t]._config;else if(e.parentLocale!=null)if(si[e.parentLocale]!=null)r=si[e.parentLocale]._config;else return zp[e.parentLocale]||(zp[e.parentLocale]=[]),zp[e.parentLocale].push({name:t,config:e}),null;return si[t]=new tT(Ij(r,e)),zp[t]&&zp[t].forEach(function(n){sT(n.name,n.config)}),qd(t),si[t]}else return delete si[t],null}function M0e(t,e){if(e!=null){var r,n=Qj;si[t]!=null&&(n=si[t]._config),e=Ij(n,e),r=new tT(e),r.parentLocale=si[t],si[t]=r,qd(t)}else si[t]!=null&&(si[t].parentLocale!=null?si[t]=si[t].parentLocale:si[t]!=null&&delete si[t]);return si[t]}function mu(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return Nb;if(!gs(t)){if(e=eB(t),e)return e;t=[t]}return P0e(t)}function D0e(){return q2(si)}function lT(t){var e,r=t._a;return r&&Br(t).overflow===-2&&(e=r[Rl]<0||r[Rl]>11?Rl:r[Bs]<1||r[Bs]>$x(r[us],r[Rl])?Bs:r[ki]<0||r[ki]>24||r[ki]===24&&(r[ss]!==0||r[Nl]!==0||r[Qu]!==0)?ki:r[ss]<0||r[ss]>59?ss:r[Nl]<0||r[Nl]>59?Nl:r[Qu]<0||r[Qu]>999?Qu:-1,Br(t)._overflowDayOfYear&&(eBs)&&(e=Bs),Br(t)._overflowWeeks&&e===-1&&(e=Fve),Br(t)._overflowWeekday&&e===-1&&(e=zve),Br(t).overflow=e),t}function $h(t,e,r){return t??e??r}function L0e(t){var e=new Date(ir.now());return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}function cT(t){var e,r,n=[],i,a;if(!t._d){for(i=L0e(t),t._w&&t._a[Bs]==null&&t._a[Rl]==null&&I0e(t),t._dayOfYear!=null&&(a=$h(t._a[us],i[us]),(t._dayOfYear>hg(a)||t._dayOfYear===0)&&(Br(t)._overflowDayOfYear=!0),r=Yg(a,0,t._dayOfYear),t._a[Rl]=r.getUTCMonth(),t._a[Bs]=r.getUTCDate()),e=0;e<3&&t._a[e]==null;++e)t._a[e]=n[e]=i[e];for(;e<7;e++)t._a[e]=n[e]=t._a[e]==null?e===2?1:0:t._a[e];t._a[ki]===24&&t._a[ss]===0&&t._a[Nl]===0&&t._a[Qu]===0&&(t._nextDay=!0,t._a[ki]=0),t._d=(t._useUTC?Yg:e0e).apply(null,n),t._tzm!=null&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[ki]=24),t._w&&typeof t._w.d<"u"&&t._w.d!==t._d.getDay()&&(Br(t).weekdayMismatch=!0)}}function I0e(t){var e,r,n,i,a,o,s,l;if(e=t._w,e.GG!=null||e.W!=null||e.E!=null)a=1,o=4,r=$h(e.GG,t._a[us],Wg(Xn(),1,4).year),n=$h(e.W,1),i=$h(e.E,1),(i<1||i>7)&&(l=!0);else{a=t._locale._week.dow,o=t._locale._week.doy;var f=Wg(Xn(),a,o);r=$h(e.gg,t._a[us],f.year),n=$h(e.w,f.week),e.d!=null?(i=e.d,(i<0||i>6)&&(l=!0)):e.e!=null?(i=e.e+a,(e.e<0||e.e>6)&&(l=!0)):i=a}n<1||n>mf(r,a,o)?Br(t)._overflowWeeks=!0:l!=null?Br(t)._overflowWeekday=!0:(s=Xj(r,n,i,a,o),t._a[us]=s.year,t._dayOfYear=s.dayOfYear)}var $0e=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,R0e=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,N0e=/Z|[+-]\d\d(?::?\d\d)?/,Mv=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],ek=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],F0e=/^\/?Date\((\-?\d+)/i;function tB(t){var e,r,n=t._i,i=$0e.exec(n)||R0e.exec(n),a,o,s,l;if(i){for(Br(t).iso=!0,e=0,r=Mv.length;e0&&Br(t).unusedInput.push(o),e=e.slice(e.indexOf(n)+n.length),l+=n.length),od[a]?(n?Br(t).empty=!1:Br(t).unusedTokens.push(a),Nve(a,n,t)):t._strict&&!n&&Br(t).unusedTokens.push(a);Br(t).charsLeftOver=s-l,e.length>0&&Br(t).unusedInput.push(e),t._a[ki]<=12&&Br(t).bigHour===!0&&t._a[ki]>0&&(Br(t).bigHour=void 0),Br(t).parsedDateParts=t._a.slice(0),Br(t).meridiem=t._meridiem,t._a[ki]=q0e(t._locale,t._a[ki],t._meridiem),cT(t),lT(t)}function q0e(t,e,r){var n;return r==null?e:t.meridiemHour!=null?t.meridiemHour(e,r):(t.isPM!=null&&(n=t.isPM(r),n&&e<12&&(e+=12),!n&&e===12&&(e=0)),e)}function G0e(t){var e,r,n,i,a;if(t._f.length===0){Br(t).invalidFormat=!0,t._d=new Date(NaN);return}for(i=0;ithis?this:t:Tx()});function aB(t,e){var r,n;if(e.length===1&&gs(e[0])&&(e=e[0]),!e.length)return Xn();for(r=e[0],n=1;nthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function pbe(){if(!Qi(this._isDSTShifted))return this._isDSTShifted;var t={};if(eT(t,this),t=nB(t),t._a){var e=t._isUTC?nl(t._a):Xn(t._a);this._isDSTShifted=this.isValid()&&Mj(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function gbe(){return this.isValid()?!this._isUTC:!1}function mbe(){return this.isValid()?this._isUTC:!1}function sB(){return this.isValid()?this._isUTC&&this._offset===0:!1}var vbe=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,bbe=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function _s(t,e){var r=t,n=null,i,a,o;return K2(t)?r={ms:t._milliseconds,d:t._days,M:t._months}:Df(t)?(r={},e?r[e]=t:r.milliseconds=t):(n=vbe.exec(t))?(i=n[1]==="-"?-1:1,r={y:0,d:Wr(n[Bs])*i,h:Wr(n[ki])*i,m:Wr(n[ss])*i,s:Wr(n[Nl])*i,ms:Wr(J2(n[Qu]*1e3))*i}):(n=bbe.exec(t))?(i=n[1]==="-"?-1:(n[1]==="+",1),r={y:Nu(n[2],i),M:Nu(n[3],i),w:Nu(n[4],i),d:Nu(n[5],i),h:Nu(n[6],i),m:Nu(n[7],i),s:Nu(n[8],i)}):r==null?r={}:typeof r=="object"&&("from"in r||"to"in r)&&(o=ybe(Xn(r.from),Xn(r.to)),r={},r.ms=o.milliseconds,r.M=o.months),a=new Rx(r),K2(t)&&li(t,"_locale")&&(a._locale=t._locale),a}_s.fn=Rx.prototype;_s.invalid=abe;function Nu(t,e){var r=t&&parseFloat(t.replace(",","."));return(isNaN(r)?0:r)*e}function CI(t,e){var r={milliseconds:0,months:0};return r.months=e.month()-t.month()+(e.year()-t.year())*12,t.clone().add(r.months,"M").isAfter(e)&&--r.months,r.milliseconds=+e-+t.clone().add(r.months,"M"),r}function ybe(t,e){var r;return t.isValid()&&e.isValid()?(e=hT(e,t),t.isBefore(e)?r=CI(t,e):(r=CI(e,t),r.milliseconds=-r.milliseconds,r.months=-r.months),r):{milliseconds:0,months:0}}function lB(t,e){return function(r,n){var i,a;return n!==null&&!isNaN(+n)&&(Lj(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),a=r,r=n,n=a),r=typeof r=="string"?+r:r,i=_s(r,n),cB(this,i,t),this}}function cB(t,e,r,n){var i=e._milliseconds,a=J2(e._days),o=J2(e._months);t.isValid()&&(n=n??!0,o&&Uj(t,$b(t,"Month")+o*r),a&&Yj(t,"Date",$b(t,"Date")+a*r),i&&t._d.setTime(t._d.valueOf()+i*r),n&&ir.updateOffset(t,a||o))}var xbe=lB(1,"add"),wbe=lB(-1,"subtract");function _be(t,e){var r=t.diff(e,"days",!0);return r<-6?"sameElse":r<-1?"lastWeek":r<0?"lastDay":r<1?"sameDay":r<2?"nextDay":r<7?"nextWeek":"sameElse"}function kbe(t,e){var r=t||Xn(),n=hT(r,this).startOf("day"),i=ir.calendarFormat(this,n)||"sameElse",a=e&&(il(e[i])?e[i].call(this,r):e[i]);return this.format(a||this.localeData().calendar(i,this,Xn(r)))}function Sbe(){return new $m(this)}function Cbe(t,e){var r=gu(t)?t:Xn(t);return this.isValid()&&r.isValid()?(e=Wo(Qi(e)?"millisecond":e),e==="millisecond"?this.valueOf()>r.valueOf():r.valueOf()9999?G2(t,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):il(Date.prototype.toISOString)?this.toDate().toISOString():G2(t,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function Ibe(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=this.utcOffset()===0?"moment.utc":"moment.parseZone",e="Z");var r="["+t+'("]',n=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",i="-MM-DD[T]HH:mm:ss.SSS",a=e+'[")]';return this.format(r+n+i+a)}function $be(t){t||(t=this.isUtc()?ir.defaultFormatUtc:ir.defaultFormat);var e=G2(this,t);return this.localeData().postformat(e)}function Rbe(t,e){return this.isValid()&&(gu(t)&&t.isValid()||Xn(t).isValid())?_s({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function Nbe(t){return this.from(Xn(),t)}function Fbe(t,e){return this.isValid()&&(gu(t)&&t.isValid()||Xn(t).isValid())?_s({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function zbe(t){return this.to(Xn(),t)}function uB(t){var e;return t===void 0?this._locale._abbr:(e=mu(t),e!=null&&(this._locale=e),this)}var fB=Yo("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return t===void 0?this.localeData():this.locale(t)});function hB(){return this._locale}function jbe(t){switch(t=Wo(t),t){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return t==="week"&&this.weekday(0),t==="isoWeek"&&this.isoWeekday(1),t==="quarter"&&this.month(Math.floor(this.month()/3)*3),this}function Bbe(t){return t=Wo(t),t===void 0||t==="millisecond"?this:(t==="date"&&(t="day"),this.startOf(t).add(1,t==="isoWeek"?"week":t).subtract(1,"ms"))}function Hbe(){return this._d.valueOf()-(this._offset||0)*6e4}function Ybe(){return Math.floor(this.valueOf()/1e3)}function Wbe(){return new Date(this.valueOf())}function Vbe(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]}function Ube(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}}function qbe(){return this.isValid()?this.toISOString():null}function Gbe(){return QO(this)}function Xbe(){return Mc({},Br(this))}function Zbe(){return Br(this).overflow}function Kbe(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}Ar(0,["gg",2],0,function(){return this.weekYear()%100});Ar(0,["GG",2],0,function(){return this.isoWeekYear()%100});function Nx(t,e){Ar(0,[t,t.length],0,e)}Nx("gggg","weekYear");Nx("ggggg","weekYear");Nx("GGGG","isoWeekYear");Nx("GGGGG","isoWeekYear");la("weekYear","gg");la("isoWeekYear","GG");ca("weekYear",1);ca("isoWeekYear",1);hr("G",Dx);hr("g",Dx);hr("GG",Ln,vo);hr("gg",Ln,vo);hr("GGGG",iT,nT);hr("gggg",iT,nT);hr("GGGGG",Mx,Ex);hr("ggggg",Mx,Ex);Nm(["gggg","ggggg","GGGG","GGGGG"],function(t,e,r,n){e[n.substr(0,2)]=Wr(t)});Nm(["gg","GG"],function(t,e,r,n){e[n]=ir.parseTwoDigitYear(t)});function Jbe(t){return dB.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Qbe(t){return dB.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)}function eye(){return mf(this.year(),1,4)}function tye(){var t=this.localeData()._week;return mf(this.year(),t.dow,t.doy)}function dB(t,e,r,n,i){var a;return t==null?Wg(this,n,i).year:(a=mf(t,n,i),e>a&&(e=a),rye.call(this,t,e,r,n,i))}function rye(t,e,r,n,i){var a=Xj(t,e,r,n,i),o=Yg(a.year,0,a.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}Ar("Q",0,"Qo","quarter");la("quarter","Q");ca("quarter",7);hr("Q",Fj);In("Q",function(t,e){e[Rl]=(Wr(t)-1)*3});function nye(t){return t==null?Math.ceil((this.month()+1)/3):this.month((t-1)*3+this.month()%3)}Ar("D",["DD",2],"Do","date");la("date","D");ca("date",9);hr("D",Ln);hr("DD",Ln,vo);hr("Do",function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient});In(["D","DD"],Bs);In("Do",function(t,e){e[Bs]=Wr(t.match(Ln)[0])});var pB=Ud("Date",!0);Ar("DDD",["DDDD",3],"DDDo","dayOfYear");la("dayOfYear","DDD");ca("dayOfYear",4);hr("DDD",Px);hr("DDDD",zj);In(["DDD","DDDD"],function(t,e,r){r._dayOfYear=Wr(t)});function iye(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return t==null?e:this.add(t-e,"d")}Ar("m",["mm",2],0,"minute");la("minute","m");ca("minute",14);hr("m",Ln);hr("mm",Ln,vo);In(["m","mm"],ss);var aye=Ud("Minutes",!1);Ar("s",["ss",2],0,"second");la("second","s");ca("second",15);hr("s",Ln);hr("ss",Ln,vo);In(["s","ss"],Nl);var oye=Ud("Seconds",!1);Ar("S",0,0,function(){return~~(this.millisecond()/100)});Ar(0,["SS",2],0,function(){return~~(this.millisecond()/10)});Ar(0,["SSS",3],0,"millisecond");Ar(0,["SSSS",4],0,function(){return this.millisecond()*10});Ar(0,["SSSSS",5],0,function(){return this.millisecond()*100});Ar(0,["SSSSSS",6],0,function(){return this.millisecond()*1e3});Ar(0,["SSSSSSS",7],0,function(){return this.millisecond()*1e4});Ar(0,["SSSSSSSS",8],0,function(){return this.millisecond()*1e5});Ar(0,["SSSSSSSSS",9],0,function(){return this.millisecond()*1e6});la("millisecond","ms");ca("millisecond",16);hr("S",Px,Fj);hr("SS",Px,vo);hr("SSS",Px,zj);var Dc;for(Dc="SSSS";Dc.length<=9;Dc+="S")hr(Dc,Dve);function sye(t,e){e[Qu]=Wr(("0."+t)*1e3)}for(Dc="S";Dc.length<=9;Dc+="S")In(Dc,sye);var lye=Ud("Milliseconds",!1);Ar("z",0,0,"zoneAbbr");Ar("zz",0,0,"zoneName");function cye(){return this._isUTC?"UTC":""}function uye(){return this._isUTC?"Coordinated Universal Time":""}var $t=$m.prototype;$t.add=xbe;$t.calendar=kbe;$t.clone=Sbe;$t.diff=Mbe;$t.endOf=Bbe;$t.format=$be;$t.from=Rbe;$t.fromNow=Nbe;$t.to=Fbe;$t.toNow=zbe;$t.get=Bve;$t.invalidAt=Zbe;$t.isAfter=Cbe;$t.isBefore=Abe;$t.isBetween=Obe;$t.isSame=Tbe;$t.isSameOrAfter=Ebe;$t.isSameOrBefore=Pbe;$t.isValid=Gbe;$t.lang=fB;$t.locale=uB;$t.localeData=hB;$t.max=Q0e;$t.min=J0e;$t.parsingFlags=Xbe;$t.set=Hve;$t.startOf=jbe;$t.subtract=wbe;$t.toArray=Vbe;$t.toObject=Ube;$t.toDate=Wbe;$t.toISOString=Lbe;$t.inspect=Ibe;$t.toJSON=qbe;$t.toString=Dbe;$t.unix=Ybe;$t.valueOf=Hbe;$t.creationData=Kbe;$t.year=Hj;$t.isLeapYear=jve;$t.weekYear=Jbe;$t.isoWeekYear=Qbe;$t.quarter=$t.quarters=nye;$t.month=qj;$t.daysInMonth=Xve;$t.week=$t.weeks=a0e;$t.isoWeek=$t.isoWeeks=o0e;$t.weeksInYear=tye;$t.isoWeeksInYear=eye;$t.date=pB;$t.day=$t.days=m0e;$t.weekday=v0e;$t.isoWeekday=b0e;$t.dayOfYear=iye;$t.hour=$t.hours=E0e;$t.minute=$t.minutes=aye;$t.second=$t.seconds=oye;$t.millisecond=$t.milliseconds=lye;$t.utcOffset=sbe;$t.utc=cbe;$t.local=ube;$t.parseZone=fbe;$t.hasAlignedHourOffset=hbe;$t.isDST=dbe;$t.isLocal=gbe;$t.isUtcOffset=mbe;$t.isUtc=sB;$t.isUTC=sB;$t.zoneAbbr=cye;$t.zoneName=uye;$t.dates=Yo("dates accessor is deprecated. Use date instead.",pB);$t.months=Yo("months accessor is deprecated. Use month instead",qj);$t.years=Yo("years accessor is deprecated. Use year instead",Hj);$t.zone=Yo("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",lbe);$t.isDSTShifted=Yo("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",pbe);function fye(t){return Xn(t*1e3)}function hye(){return Xn.apply(null,arguments).parseZone()}function gB(t){return t}var Tn=tT.prototype;Tn.calendar=bve;Tn.longDateFormat=xve;Tn.invalidDate=_ve;Tn.ordinal=Cve;Tn.preparse=gB;Tn.postformat=gB;Tn.relativeTime=Ove;Tn.pastFuture=Tve;Tn.set=mve;Tn.months=Vve;Tn.monthsShort=Uve;Tn.monthsParse=Gve;Tn.monthsRegex=Qve;Tn.monthsShortRegex=Kve;Tn.week=t0e;Tn.firstDayOfYear=i0e;Tn.firstDayOfWeek=n0e;Tn.weekdays=u0e;Tn.weekdaysMin=d0e;Tn.weekdaysShort=f0e;Tn.weekdaysParse=g0e;Tn.weekdaysRegex=x0e;Tn.weekdaysShortRegex=_0e;Tn.weekdaysMinRegex=S0e;Tn.isPM=A0e;Tn.meridiem=T0e;function Fb(t,e,r,n){var i=mu(),a=nl().set(n,e);return i[r](a,t)}function mB(t,e,r){if(Df(t)&&(e=t,t=void 0),t=t||"",e!=null)return Fb(t,e,r,"month");var n,i=[];for(n=0;n<12;n++)i[n]=Fb(t,n,r,"month");return i}function dT(t,e,r,n){typeof t=="boolean"?(Df(e)&&(r=e,e=void 0),e=e||""):(e=t,r=e,t=!1,Df(e)&&(r=e,e=void 0),e=e||"");var i=mu(),a=t?i._week.dow:0;if(r!=null)return Fb(e,(r+a)%7,n,"day");var o,s=[];for(o=0;o<7;o++)s[o]=Fb(e,(o+a)%7,n,"day");return s}function dye(t,e){return mB(t,e,"months")}function pye(t,e){return mB(t,e,"monthsShort")}function gye(t,e,r){return dT(t,e,r,"weekdays")}function mye(t,e,r){return dT(t,e,r,"weekdaysShort")}function vye(t,e,r){return dT(t,e,r,"weekdaysMin")}qd("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,r=Wr(t%100/10)===1?"th":e===1?"st":e===2?"nd":e===3?"rd":"th";return t+r}});ir.lang=Yo("moment.lang is deprecated. Use moment.locale instead.",qd);ir.langData=Yo("moment.langData is deprecated. Use moment.localeData instead.",mu);var xl=Math.abs;function bye(){var t=this._data;return this._milliseconds=xl(this._milliseconds),this._days=xl(this._days),this._months=xl(this._months),t.milliseconds=xl(t.milliseconds),t.seconds=xl(t.seconds),t.minutes=xl(t.minutes),t.hours=xl(t.hours),t.months=xl(t.months),t.years=xl(t.years),this}function vB(t,e,r,n){var i=_s(e,r);return t._milliseconds+=n*i._milliseconds,t._days+=n*i._days,t._months+=n*i._months,t._bubble()}function yye(t,e){return vB(this,t,e,1)}function xye(t,e){return vB(this,t,e,-1)}function AI(t){return t<0?Math.floor(t):Math.ceil(t)}function wye(){var t=this._milliseconds,e=this._days,r=this._months,n=this._data,i,a,o,s,l;return t>=0&&e>=0&&r>=0||t<=0&&e<=0&&r<=0||(t+=AI(eC(r)+e)*864e5,e=0,r=0),n.milliseconds=t%1e3,i=Po(t/1e3),n.seconds=i%60,a=Po(i/60),n.minutes=a%60,o=Po(a/60),n.hours=o%24,e+=Po(o/24),l=Po(bB(e)),r+=l,e-=AI(eC(l)),s=Po(r/12),r%=12,n.days=e,n.months=r,n.years=s,this}function bB(t){return t*4800/146097}function eC(t){return t*146097/4800}function _ye(t){if(!this.isValid())return NaN;var e,r,n=this._milliseconds;if(t=Wo(t),t==="month"||t==="year")return e=this._days+n/864e5,r=this._months+bB(e),t==="month"?r:r/12;switch(e=this._days+Math.round(eC(this._months)),t){case"week":return e/7+n/6048e5;case"day":return e+n/864e5;case"hour":return e*24+n/36e5;case"minute":return e*1440+n/6e4;case"second":return e*86400+n/1e3;case"millisecond":return Math.floor(e*864e5)+n;default:throw new Error("Unknown unit "+t)}}function kye(){return this.isValid()?this._milliseconds+this._days*864e5+this._months%12*2592e6+Wr(this._months/12)*31536e6:NaN}function vu(t){return function(){return this.as(t)}}var Sye=vu("ms"),Cye=vu("s"),Aye=vu("m"),Oye=vu("h"),Tye=vu("d"),Eye=vu("w"),Pye=vu("M"),Mye=vu("y");function Dye(){return _s(this)}function Lye(t){return t=Wo(t),this.isValid()?this[t+"s"]():NaN}function Kf(t){return function(){return this.isValid()?this._data[t]:NaN}}var Iye=Kf("milliseconds"),$ye=Kf("seconds"),Rye=Kf("minutes"),Nye=Kf("hours"),Fye=Kf("days"),zye=Kf("months"),jye=Kf("years");function Bye(){return Po(this.days()/7)}var mc=Math.round,js={ss:44,s:45,m:45,h:22,d:26,M:11};function Hye(t,e,r,n,i){return i.relativeTime(e||1,!!r,t,n)}function Yye(t,e,r){var n=_s(t).abs(),i=mc(n.as("s")),a=mc(n.as("m")),o=mc(n.as("h")),s=mc(n.as("d")),l=mc(n.as("M")),f=mc(n.as("y")),d=i<=js.ss&&["s",i]||i0,d[4]=r,Hye.apply(null,d)}function Wye(t){return t===void 0?mc:typeof t=="function"?(mc=t,!0):!1}function Vye(t,e){return js[t]===void 0?!1:e===void 0?js[t]:(js[t]=e,t==="s"&&(js.ss=e-1),!0)}function Uye(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),r=Yye(this,!t,e);return t&&(r=e.pastFuture(+this,r)),e.postformat(r)}var rk=Math.abs;function Ah(t){return(t>0)-(t<0)||+t}function Fx(){if(!this.isValid())return this.localeData().invalidDate();var t=rk(this._milliseconds)/1e3,e=rk(this._days),r=rk(this._months),n,i,a;n=Po(t/60),i=Po(n/60),t%=60,n%=60,a=Po(r/12),r%=12;var o=a,s=r,l=e,f=i,d=n,g=t?t.toFixed(3).replace(/\.?0+$/,""):"",b=this.asSeconds();if(!b)return"P0D";var y=b<0?"-":"",k=Ah(this._months)!==Ah(b)?"-":"",C=Ah(this._days)!==Ah(b)?"-":"",A=Ah(this._milliseconds)!==Ah(b)?"-":"";return y+"P"+(o?k+o+"Y":"")+(s?k+s+"M":"")+(l?C+l+"D":"")+(f||d||g?"T":"")+(f?A+f+"H":"")+(d?A+d+"M":"")+(g?A+g+"S":"")}var en=Rx.prototype;en.isValid=ibe;en.abs=bye;en.add=yye;en.subtract=xye;en.as=_ye;en.asMilliseconds=Sye;en.asSeconds=Cye;en.asMinutes=Aye;en.asHours=Oye;en.asDays=Tye;en.asWeeks=Eye;en.asMonths=Pye;en.asYears=Mye;en.valueOf=kye;en._bubble=wye;en.clone=Dye;en.get=Lye;en.milliseconds=Iye;en.seconds=$ye;en.minutes=Rye;en.hours=Nye;en.days=Fye;en.weeks=Bye;en.months=zye;en.years=jye;en.humanize=Uye;en.toISOString=Fx;en.toString=Fx;en.toJSON=Fx;en.locale=uB;en.localeData=hB;en.toIsoString=Yo("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Fx);en.lang=fB;Ar("X",0,0,"unix");Ar("x",0,0,"valueOf");hr("x",Dx);hr("X",Ive);In("X",function(t,e,r){r._d=new Date(parseFloat(t,10)*1e3)});In("x",function(t,e,r){r._d=new Date(Wr(t))});//! moment.js -//! version : 2.19.1 -//! authors : Tim Wood, Iskren Chernev, Moment.js contributors -//! license : MIT -//! momentjs.com -ir.version="2.19.1";dve(Xn);ir.fn=$t;ir.min=ebe;ir.max=tbe;ir.now=rbe;ir.utc=nl;ir.unix=fye;ir.months=dye;ir.isDate=Ox;ir.locale=qd;ir.invalid=Tx;ir.duration=_s;ir.isMoment=gu;ir.weekdays=gye;ir.parseZone=hye;ir.localeData=mu;ir.isDuration=K2;ir.monthsShort=pye;ir.weekdaysMin=vye;ir.defineLocale=sT;ir.updateLocale=M0e;ir.locales=D0e;ir.weekdaysShort=mye;ir.normalizeUnits=Wo;ir.relativeTimeRounding=Wye;ir.relativeTimeThreshold=Vye;ir.calendarFormat=_be;ir.prototype=$t;var yB={exports:{}};(function(t,e){(function(r){var n=/^(b|B)$/,i={iec:{bits:["b","Kib","Mib","Gib","Tib","Pib","Eib","Zib","Yib"],bytes:["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"]},jedec:{bits:["b","Kb","Mb","Gb","Tb","Pb","Eb","Zb","Yb"],bytes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"]}},a={iec:["","kibi","mebi","gibi","tebi","pebi","exbi","zebi","yobi"],jedec:["","kilo","mega","giga","tera","peta","exa","zetta","yotta"]};function o(s){var l,f,d,g,b,y,k,C,A,P,M,N,W,z,U,G=10?o(a(s),9007199254740991):0}},function(r,n,i){var a=i(11),o=i(23),s=i(28),l=i(19),f=i(64);r.exports=function(d,g){var b=d==1,y=d==2,k=d==3,C=d==4,A=d==6,P=d==5||A,M=g||f;return function(N,W,z){for(var U,G,X=s(N),be=o(X),re=a(W,z,3),le=l(be.length),te=0,ae=b?M(N,le):y?M(N,0):void 0;le>te;te++)if((P||te in be)&&(U=be[te],G=re(U,te,X),d)){if(b)ae[te]=G;else if(G)switch(d){case 3:return!0;case 5:return U;case 6:return te;case 2:ae.push(U)}else if(C)return!1}return A?-1:k||C?C:ae}}},function(r,n,i){var a=i(5),o=i(0).document,s=a(o)&&a(o.createElement);r.exports=function(l){return s?o.createElement(l):{}}},function(r,n){r.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(r,n,i){var a=i(9);r.exports=Object("z").propertyIsEnumerable(0)?Object:function(o){return a(o)=="String"?o.split(""):Object(o)}},function(r,n){r.exports=!1},function(r,n){r.exports=function(i,a){return{enumerable:!(1&i),configurable:!(2&i),writable:!(4&i),value:a}}},function(r,n,i){var a=i(13).f,o=i(12),s=i(1)("toStringTag");r.exports=function(l,f,d){l&&!o(l=d?l:l.prototype,s)&&a(l,s,{configurable:!0,value:f})}},function(r,n,i){var a=i(49)("keys"),o=i(30);r.exports=function(s){return a[s]||(a[s]=o(s))}},function(r,n,i){var a=i(16);r.exports=function(o){return Object(a(o))}},function(r,n,i){var a=i(5);r.exports=function(o,s){if(!a(o))return o;var l,f;if(s&&typeof(l=o.toString)=="function"&&!a(f=l.call(o))||typeof(l=o.valueOf)=="function"&&!a(f=l.call(o))||!s&&typeof(l=o.toString)=="function"&&!a(f=l.call(o)))return f;throw TypeError("Can't convert object to primitive value")}},function(r,n){var i=0,a=Math.random();r.exports=function(o){return"Symbol(".concat(o===void 0?"":o,")_",(++i+a).toString(36))}},function(r,n,i){var a=i(0),o=i(12),s=i(9),l=i(67),f=i(29),d=i(7),g=i(77).f,b=i(45).f,y=i(13).f,k=i(51).trim,C=a.Number,A=C,P=C.prototype,M=s(i(44)(P))=="Number",N="trim"in String.prototype,W=function(X){var be=f(X,!1);if(typeof be=="string"&&be.length>2){be=N?be.trim():k(be,3);var re,le,te,ae=be.charCodeAt(0);if(ae===43||ae===45){if((re=be.charCodeAt(2))===88||re===120)return NaN}else if(ae===48){switch(be.charCodeAt(1)){case 66:case 98:le=2,te=49;break;case 79:case 111:le=8,te=55;break;default:return+be}for(var pe,ke=be.slice(2),Re=0,Be=ke.length;Rete)return NaN;return parseInt(ke,le)}}return+be};if(!C(" 0o1")||!C("0b1")||C("+0x1")){C=function(X){var be=arguments.length<1?0:X,re=this;return re instanceof C&&(M?d(function(){P.valueOf.call(re)}):s(re)!="Number")?l(new A(W(be)),re,C):W(be)};for(var z,U=i(4)?g(A):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),G=0;U.length>G;G++)o(A,z=U[G])&&!o(C,z)&&y(C,z,b(A,z));C.prototype=P,P.constructor=C,i(6)(a,"Number",C)}},function(r,n,i){function a(le){return le!==0&&(!(!Array.isArray(le)||le.length!==0)||!le)}function o(le){return function(){return!le.apply(void 0,arguments)}}function s(le,te){return le===void 0&&(le="undefined"),le===null&&(le="null"),le===!1&&(le="false"),le.toString().toLowerCase().indexOf(te.trim())!==-1}function l(le,te,ae,pe){return le.filter(function(ke){return s(pe(ke,ae),te)})}function f(le){return le.filter(function(te){return!te.$isLabel})}function d(le,te){return function(ae){return ae.reduce(function(pe,ke){return ke[le]&&ke[le].length?(pe.push({$groupLabel:ke[te],$isLabel:!0}),pe.concat(ke[le])):pe},[])}}function g(le,te,ae,pe,ke){return function(Re){return Re.map(function(Be){var Xe;if(!Be[ae])return console.warn("Options passed to vue-multiselect do not contain groups, despite the config."),[];var Ne=l(Be[ae],le,te,ke);return Ne.length?(Xe={},i.i(A.a)(Xe,pe,Be[pe]),i.i(A.a)(Xe,ae,Ne),Xe):[]})}}var b=i(59),y=i(54),k=(i.n(y),i(95)),C=(i.n(k),i(31)),A=(i.n(C),i(58)),P=i(91),M=(i.n(P),i(98)),N=(i.n(M),i(92)),W=(i.n(N),i(88)),z=(i.n(W),i(97)),U=(i.n(z),i(89)),G=(i.n(U),i(96)),X=(i.n(G),i(93)),be=(i.n(X),i(90)),re=(i.n(be),function(){for(var le=arguments.length,te=new Array(le),ae=0;ae-1},isSelected:function(le){var te=this.trackBy?le[this.trackBy]:le;return this.valueKeys.indexOf(te)>-1},getOptionLabel:function(le){if(a(le))return"";if(le.isTag)return le.label;if(le.$isLabel)return le.$groupLabel;var te=this.customLabel(le,this.label);return a(te)?"":te},select:function(le,te){if(le.$isLabel&&this.groupSelect)return void this.selectGroup(le);if(!(this.blockKeys.indexOf(te)!==-1||this.disabled||le.$isDisabled||le.$isLabel)&&(!this.max||!this.multiple||this.internalValue.length!==this.max)&&(te!=="Tab"||this.pointerDirty)){if(le.isTag)this.$emit("tag",le.label,this.id),this.search="",this.closeOnSelect&&!this.multiple&&this.deactivate();else{if(this.isSelected(le))return void(te!=="Tab"&&this.removeElement(le));this.$emit("select",le,this.id),this.multiple?this.$emit("input",this.internalValue.concat([le]),this.id):this.$emit("input",le,this.id),this.clearOnSelect&&(this.search="")}this.closeOnSelect&&this.deactivate()}},selectGroup:function(le){var te=this,ae=this.options.find(function(Re){return Re[te.groupLabel]===le.$groupLabel});if(ae)if(this.wholeGroupSelected(ae)){this.$emit("remove",ae[this.groupValues],this.id);var pe=this.internalValue.filter(function(Re){return ae[te.groupValues].indexOf(Re)===-1});this.$emit("input",pe,this.id)}else{var ke=ae[this.groupValues].filter(o(this.isSelected));this.$emit("select",ke,this.id),this.$emit("input",this.internalValue.concat(ke),this.id)}},wholeGroupSelected:function(le){return le[this.groupValues].every(this.isSelected)},removeElement:function(le){var te=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(!this.disabled){if(!this.allowEmpty&&this.internalValue.length<=1)return void this.deactivate();var ae=i.i(b.a)(le)==="object"?this.valueKeys.indexOf(le[this.trackBy]):this.valueKeys.indexOf(le);if(this.$emit("remove",le,this.id),this.multiple){var pe=this.internalValue.slice(0,ae).concat(this.internalValue.slice(ae+1));this.$emit("input",pe,this.id)}else this.$emit("input",null,this.id);this.closeOnSelect&&te&&this.deactivate()}},removeLastElement:function(){this.blockKeys.indexOf("Delete")===-1&&this.search.length===0&&Array.isArray(this.internalValue)&&this.removeElement(this.internalValue[this.internalValue.length-1],!1)},activate:function(){var le=this;this.isOpen||this.disabled||(this.adjustPosition(),this.groupValues&&this.pointer===0&&this.filteredOptions.length&&(this.pointer=1),this.isOpen=!0,this.searchable?(this.preserveSearch||(this.search=""),this.$nextTick(function(){return le.$refs.search.focus()})):this.$el.focus(),this.$emit("open",this.id))},deactivate:function(){this.isOpen&&(this.isOpen=!1,this.searchable?this.$refs.search.blur():this.$el.blur(),this.preserveSearch||(this.search=""),this.$emit("close",this.getValue(),this.id))},toggle:function(){this.isOpen?this.deactivate():this.activate()},adjustPosition:function(){if(typeof window<"u"){var le=this.$el.getBoundingClientRect().top,te=window.innerHeight-this.$el.getBoundingClientRect().bottom;te>this.maxHeight||te>le||this.openDirection==="below"||this.openDirection==="bottom"?(this.prefferedOpenDirection="below",this.optimizedHeight=Math.min(te-40,this.maxHeight)):(this.prefferedOpenDirection="above",this.optimizedHeight=Math.min(le-40,this.maxHeight))}}}}},function(r,n,i){var a=i(54),o=(i.n(a),i(31));i.n(o),n.a={data:function(){return{pointer:0,pointerDirty:!1}},props:{showPointer:{type:Boolean,default:!0},optionHeight:{type:Number,default:40}},computed:{pointerPosition:function(){return this.pointer*this.optionHeight},visibleElements:function(){return this.optimizedHeight/this.optionHeight}},watch:{filteredOptions:function(){this.pointerAdjust()},isOpen:function(){this.pointerDirty=!1}},methods:{optionHighlight:function(s,l){return{"multiselect__option--highlight":s===this.pointer&&this.showPointer,"multiselect__option--selected":this.isSelected(l)}},groupHighlight:function(s,l){var f=this;if(!this.groupSelect)return["multiselect__option--group","multiselect__option--disabled"];var d=this.options.find(function(g){return g[f.groupLabel]===l.$groupLabel});return["multiselect__option--group",{"multiselect__option--highlight":s===this.pointer&&this.showPointer},{"multiselect__option--group-selected":this.wholeGroupSelected(d)}]},addPointerElement:function(){var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"Enter",l=s.key;this.filteredOptions.length>0&&this.select(this.filteredOptions[this.pointer],l),this.pointerReset()},pointerForward:function(){this.pointer0?(this.pointer--,this.$refs.list.scrollTop>=this.pointerPosition&&(this.$refs.list.scrollTop=this.pointerPosition),this.filteredOptions[this.pointer]&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerBackward()):this.filteredOptions[this.pointer]&&this.filteredOptions[0].$isLabel&&!this.groupSelect&&this.pointerForward(),this.pointerDirty=!0},pointerReset:function(){this.closeOnSelect&&(this.pointer=0,this.$refs.list&&(this.$refs.list.scrollTop=0))},pointerAdjust:function(){this.pointer>=this.filteredOptions.length-1&&(this.pointer=this.filteredOptions.length?this.filteredOptions.length-1:0),this.filteredOptions.length>0&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerForward()},pointerSet:function(s){this.pointer=s,this.pointerDirty=!0}}}},function(r,n,i){var a=i(36),o=i(74),s=i(15),l=i(18);r.exports=i(72)(Array,"Array",function(f,d){this._t=l(f),this._i=0,this._k=d},function(){var f=this._t,d=this._k,g=this._i++;return!f||g>=f.length?(this._t=void 0,o(1)):d=="keys"?o(0,g):d=="values"?o(0,f[g]):o(0,[g,f[g]])},"values"),s.Arguments=s.Array,a("keys"),a("values"),a("entries")},function(r,n,i){var a=i(31),o=(i.n(a),i(32)),s=i(33);n.a={name:"vue-multiselect",mixins:[o.a,s.a],props:{name:{type:String,default:""},selectLabel:{type:String,default:"Press enter to select"},selectGroupLabel:{type:String,default:"Press enter to select group"},selectedLabel:{type:String,default:"Selected"},deselectLabel:{type:String,default:"Press enter to remove"},deselectGroupLabel:{type:String,default:"Press enter to deselect group"},showLabels:{type:Boolean,default:!0},limit:{type:Number,default:99999},maxHeight:{type:Number,default:300},limitText:{type:Function,default:function(l){return"and ".concat(l," more")}},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},openDirection:{type:String,default:""},showNoOptions:{type:Boolean,default:!0},showNoResults:{type:Boolean,default:!0},tabindex:{type:Number,default:0}},computed:{isSingleLabelVisible:function(){return this.singleValue&&(!this.isOpen||!this.searchable)&&!this.visibleValues.length},isPlaceholderVisible:function(){return!(this.internalValue.length||this.searchable&&this.isOpen)},visibleValues:function(){return this.multiple?this.internalValue.slice(0,this.limit):[]},singleValue:function(){return this.internalValue[0]},deselectLabelText:function(){return this.showLabels?this.deselectLabel:""},deselectGroupLabelText:function(){return this.showLabels?this.deselectGroupLabel:""},selectLabelText:function(){return this.showLabels?this.selectLabel:""},selectGroupLabelText:function(){return this.showLabels?this.selectGroupLabel:""},selectedLabelText:function(){return this.showLabels?this.selectedLabel:""},inputStyle:function(){if(this.searchable||this.multiple&&this.value&&this.value.length)return this.isOpen?{width:"auto"}:{width:"0",position:"absolute",padding:"0"}},contentStyle:function(){return this.options.length?{display:"inline-block"}:{display:"block"}},isAbove:function(){return this.openDirection==="above"||this.openDirection==="top"||this.openDirection!=="below"&&this.openDirection!=="bottom"&&this.prefferedOpenDirection==="above"},showSearchInput:function(){return this.searchable&&(!this.hasSingleSelectedSlot||!this.visibleSingleValue&&this.visibleSingleValue!==0||this.isOpen)}}}},function(r,n,i){var a=i(1)("unscopables"),o=Array.prototype;o[a]==null&&i(8)(o,a,{}),r.exports=function(s){o[a][s]=!0}},function(r,n,i){var a=i(18),o=i(19),s=i(85);r.exports=function(l){return function(f,d,g){var b,y=a(f),k=o(y.length),C=s(g,k);if(l&&d!=d){for(;k>C;)if((b=y[C++])!=b)return!0}else for(;k>C;C++)if((l||C in y)&&y[C]===d)return l||C||0;return!l&&-1}}},function(r,n,i){var a=i(9),o=i(1)("toStringTag"),s=a(function(){return arguments}())=="Arguments",l=function(f,d){try{return f[d]}catch{}};r.exports=function(f){var d,g,b;return f===void 0?"Undefined":f===null?"Null":typeof(g=l(d=Object(f),o))=="string"?g:s?a(d):(b=a(d))=="Object"&&typeof d.callee=="function"?"Arguments":b}},function(r,n,i){var a=i(2);r.exports=function(){var o=a(this),s="";return o.global&&(s+="g"),o.ignoreCase&&(s+="i"),o.multiline&&(s+="m"),o.unicode&&(s+="u"),o.sticky&&(s+="y"),s}},function(r,n,i){var a=i(0).document;r.exports=a&&a.documentElement},function(r,n,i){r.exports=!i(4)&&!i(7)(function(){return Object.defineProperty(i(21)("div"),"a",{get:function(){return 7}}).a!=7})},function(r,n,i){var a=i(9);r.exports=Array.isArray||function(o){return a(o)=="Array"}},function(r,n,i){function a(s){var l,f;this.promise=new s(function(d,g){if(l!==void 0||f!==void 0)throw TypeError("Bad Promise constructor");l=d,f=g}),this.resolve=o(l),this.reject=o(f)}var o=i(14);r.exports.f=function(s){return new a(s)}},function(r,n,i){var a=i(2),o=i(76),s=i(22),l=i(27)("IE_PROTO"),f=function(){},d=function(){var g,b=i(21)("iframe"),y=s.length;for(b.style.display="none",i(40).appendChild(b),b.src="javascript:",g=b.contentWindow.document,g.open(),g.write(" diff --git a/resources/assets/js/components/LeftNav.vue b/resources/assets/js/components/LeftNav.vue deleted file mode 100644 index 00f302a95..000000000 --- a/resources/assets/js/components/LeftNav.vue +++ /dev/null @@ -1,112 +0,0 @@ - - - diff --git a/resources/assets/js/components/TemplateRenderer.vue b/resources/assets/js/components/TemplateRenderer.vue deleted file mode 100644 index 46b80b7ae..000000000 --- a/resources/assets/js/components/TemplateRenderer.vue +++ /dev/null @@ -1,40 +0,0 @@ - - - diff --git a/resources/assets/js/components/dev/UnknownField.vue b/resources/assets/js/components/dev/UnknownField.vue deleted file mode 100644 index c23511764..000000000 --- a/resources/assets/js/components/dev/UnknownField.vue +++ /dev/null @@ -1,23 +0,0 @@ - - - - - \ No newline at end of file diff --git a/resources/assets/js/components/index.js b/resources/assets/js/components/index.js deleted file mode 100644 index 712efad7c..000000000 --- a/resources/assets/js/components/index.js +++ /dev/null @@ -1,3 +0,0 @@ - -export { default as TemplateRenderer } from './TemplateRenderer.vue'; -export { default as UnknownField } from './dev/UnknownField.vue'; diff --git a/resources/assets/js/consts.js b/resources/assets/js/consts.js deleted file mode 100644 index 7b9ae2128..000000000 --- a/resources/assets/js/consts.js +++ /dev/null @@ -1,9 +0,0 @@ - -function getBaseUrl() { - const meta = document.head.querySelector('meta[name=base-url]'); - return meta ? `/${meta.content}` : '/sharp'; -} - -export let BASE_URL = getBaseUrl(); -export let API_PATH = `${BASE_URL}/api`; -export let UPLOAD_URL = `${API_PATH}/upload`; \ No newline at end of file diff --git a/resources/assets/js/directives/emptyClass.js b/resources/assets/js/directives/emptyClass.js deleted file mode 100644 index 90665080c..000000000 --- a/resources/assets/js/directives/emptyClass.js +++ /dev/null @@ -1,23 +0,0 @@ -function isHidden(vnode) { - if(vnode.text) { - return vnode.text.trim().length === 0; - } - if(vnode.elm instanceof HTMLElement) { - return vnode.elm.style.display === 'none'; - } - return !vnode.tag; -} - -function emptyClass(el, { value }, vnode) { - if(!vnode.children.length || vnode.children.every(vnode => isHidden(vnode))) { - el.classList.add(value); - } - else { - el.classList.remove(value); - } -} - -export default { - inserted:emptyClass, - componentUpdated:emptyClass -} \ No newline at end of file diff --git a/resources/assets/js/directives/index.js b/resources/assets/js/directives/index.js deleted file mode 100644 index 32782e5ef..000000000 --- a/resources/assets/js/directives/index.js +++ /dev/null @@ -1,4 +0,0 @@ - -export { default as emptyClass } from './emptyClass'; -export { default as maxlength } from './maxlength'; -export { default as sticky } from './sticky'; diff --git a/resources/assets/js/directives/maxlength.js b/resources/assets/js/directives/maxlength.js deleted file mode 100644 index cbd854ae1..000000000 --- a/resources/assets/js/directives/maxlength.js +++ /dev/null @@ -1,5 +0,0 @@ -export default function(el,{ value }) { - if(value) { - el.setAttribute('maxlength', value); - } -} \ No newline at end of file diff --git a/resources/assets/js/directives/sticky.js b/resources/assets/js/directives/sticky.js deleted file mode 100644 index 2685175b4..000000000 --- a/resources/assets/js/directives/sticky.js +++ /dev/null @@ -1,84 +0,0 @@ -import throttle from 'lodash/throttle'; -import Vue from "vue"; - -class StickyObserver { - /** - * @type HTMLElement - */ - el; - /** - * @type HTMLElement - */ - sentinel; - /** - * @type Function - */ - listener; - - position; - - constructor(el) { - this.el = el; - this.listener = throttle(() => this.refresh(), 50); - this.sentinel = document.createElement('div'); - this.scrollContainer = el.closest('.modal') ?? window; - this.position = window.getComputedStyle(el).bottom !== 'auto' ? 'bottom' : 'top'; - - this.sentinel.dataset.stickySentinel = true; - if(this.position === 'bottom') { - this.el.parentElement.insertBefore(this.sentinel, this.el.nextSibling); - } else { - this.el.parentElement.insertBefore(this.sentinel, this.el); - } - this.scrollContainer.addEventListener('scroll', this.listener); - window.addEventListener('resize', this.listener); - Vue.nextTick(() => this.refresh()); - } - - destroy() { - this.el = null; - this.sentinel.remove(); - this.scrollContainer.removeEventListener('scroll', this.listener); - window.removeEventListener('resize', this.listener); - } - - refresh() { - if(!this.el) { - return; - } - const rect = this.el.getBoundingClientRect(); - const anchor = this.el.querySelector('[data-sticky-anchor]'); - - if(this.position === 'bottom') { - this.setStuck(rect.bottom < this.sentinel.getBoundingClientRect().bottom); - } else { - this.setStuck(rect.top > this.sentinel.getBoundingClientRect().top); - } - - if(anchor) { - this.el.style.setProperty('--sticky-offset', `${rect.top - anchor.getBoundingClientRect().top}px`); - } - } - - setStuck(stuck) { - this.el.classList.toggle('stuck', stuck); - this.el.dispatchEvent(new CustomEvent('stuck-change', { detail:stuck })); - } -} - -export default { - inserted(el, { value, expression }) { - if(value || !expression) { - el._stickyObserver = new StickyObserver(el); - } - }, - update(el, { value }) { - if(value && !el._stickyObserver) { - el._stickyObserver = new StickyObserver(el); - } - el._stickyObserver?.refresh(); - }, - unbind(el) { - el._stickyObserver?.destroy(); - }, -} diff --git a/resources/assets/js/index.js b/resources/assets/js/index.js deleted file mode 100644 index f7d1aa206..000000000 --- a/resources/assets/js/index.js +++ /dev/null @@ -1,18 +0,0 @@ - -export { api, apiUrl, getXsrfToken, handleErrorAlert, getErrorMessage } from './api'; -export { lang } from './util/i18n'; -export { search } from './util/search'; -export * from './util/querystring'; -export * from './util/log'; -export * from './util/file'; -export * from './consts'; -export { showAlert, showConfirm, showDeleteConfirm } from './util/dialogs'; -export { getBackUrl, entitiesMatch } from './util/breadcrumb'; -export { isCustomField, resolveCustomField } from './util/fields'; -export { handleNotifications } from './util/notifications'; -export { withLoadingOverlay } from './util/loading'; -export { getUniqueId } from './util/id'; -export { ignoreVueElement } from './util/vue'; -export { formUrl } from 'sharp-form/src/util/url'; -export { showUrl } from 'sharp-show/src/util/url'; -export { listUrl } from 'sharp-entity-list/src/util/url'; diff --git a/resources/assets/js/mixins/ConfigNode.js b/resources/assets/js/mixins/ConfigNode.js deleted file mode 100644 index 6ba8486a7..000000000 --- a/resources/assets/js/mixins/ConfigNode.js +++ /dev/null @@ -1,16 +0,0 @@ -import Identifier from './Identifier'; - -export default { - mixins: [Identifier], - props: { - configIdentifier:{ - type:String, - required:true - } - }, - computed: { - mergedConfigIdentifier() { - return this.getMergedIdentifier('mergedConfigIdentifier', this.configIdentifier); - } - } -} diff --git a/resources/assets/js/mixins/DynamicView.js b/resources/assets/js/mixins/DynamicView.js deleted file mode 100644 index ec6f497f5..000000000 --- a/resources/assets/js/mixins/DynamicView.js +++ /dev/null @@ -1,60 +0,0 @@ -import { handleNotifications } from "../util/notifications"; - -export const withAxiosInterceptors = { - inject: ['axiosInstance'], - methods: { - showLoading() { - this.$store.dispatch('setLoading', true); - }, - hideLoading() { - this.$store.dispatch('setLoading', false); - }, - installInterceptors() { - this.axiosInstance.interceptors.request.use(config => { - this.showLoading(); - return config; - }, error => Promise.reject(error)); - - this.axiosInstance.interceptors.response.use(response => { - this.hideLoading(); - return response; - }, error => { - this.hideLoading(); - return Promise.reject(error); - }); - }, - }, - created() { - if(!this.synchronous) { - this.installInterceptors(); - this.showLoading(); - } - } -}; - -export default { - mixins: [withAxiosInterceptors], - inject: ['axiosInstance'], - - data() { - return { - data: null, - layout: null, - } - }, - methods: { - get() { - return this.axiosInstance.get(this.apiPath, { - params: this.apiParams - }) - .then(response => { - this.mount(response.data); - handleNotifications(response.data.notifications); - return Promise.resolve(response); - }); - }, - post(endpoint = this.apiPath, data = this.data, config) { - return this.axiosInstance.post(endpoint, data, config); - }, - } -} diff --git a/resources/assets/js/mixins/ErrorNode.js b/resources/assets/js/mixins/ErrorNode.js deleted file mode 100644 index 00fe40195..000000000 --- a/resources/assets/js/mixins/ErrorNode.js +++ /dev/null @@ -1,16 +0,0 @@ -import Identifier from './Identifier'; - -export default { - mixins: [Identifier], - props:{ - errorIdentifier:{ - type:[String, Number], - required:true - } - }, - computed: { - mergedErrorIdentifier() { - return this.getMergedIdentifier('mergedErrorIdentifier', this.errorIdentifier); - } - } -} diff --git a/resources/assets/js/mixins/Identifier.js b/resources/assets/js/mixins/Identifier.js deleted file mode 100644 index eed9403a1..000000000 --- a/resources/assets/js/mixins/Identifier.js +++ /dev/null @@ -1,16 +0,0 @@ -export default { - methods : { - getMergedIdentifier(prop, curId) { - let ascendant = this.$parent; - while(ascendant && typeof ascendant[prop] === 'undefined') { - ascendant = ascendant.$parent; - } - let ascendantIdentifier = ''; - if(ascendant?.[prop]) { - ascendantIdentifier = ascendant[prop]+'.'; - } - - return `${ascendantIdentifier}${curId}`; - } - } -} diff --git a/resources/assets/js/mixins/Localization.js b/resources/assets/js/mixins/Localization.js deleted file mode 100644 index 91ceabd02..000000000 --- a/resources/assets/js/mixins/Localization.js +++ /dev/null @@ -1,21 +0,0 @@ -import { lang } from '../index'; - -export default { - computed: { - language() { - return document.documentElement.lang; - } - }, - methods: { - l: lang - } -} -export let LocalizationBase = baseKey => { - return { - methods: { - lSub(key) { - return lang(`${baseKey}.${key}`) - } - } - } -}; \ No newline at end of file diff --git a/resources/assets/js/mixins/Responsive.js b/resources/assets/js/mixins/Responsive.js deleted file mode 100644 index b857e3a05..000000000 --- a/resources/assets/js/mixins/Responsive.js +++ /dev/null @@ -1,35 +0,0 @@ -import debounce from 'lodash/debounce'; - -export default function (breakpoint='sm') { - return { - data() { - return { - isViewportSmall: false, - } - }, - methods: { - $_responsiveUpdate() { - let { offsetWidth } = this.$_testElm; - this.isViewportSmall = !!offsetWidth; - } - }, - created() { - let id = `viewport-down-${breakpoint}`; - this.$_testElm = document.getElementById(id); - - if(!this.$_testElm) { - this.$_testElm = document.createElement('div'); - this.$_testElm.id = id; - this.$_testElm.classList.add(`d-${breakpoint}-none`); - document.body.appendChild(this.$_testElm); - } - - this.$_responsiveUpdate(); - this.$_debouncedRespnsiveUpdate = debounce(this.$_responsiveUpdate, 300); - window.addEventListener('resize', this.$_debouncedRespnsiveUpdate); - }, - destroyed() { - window.removeEventListener('resize', this.$_debouncedRespnsiveUpdate); - } - } -} \ No newline at end of file diff --git a/resources/assets/js/mixins/__mocks__/DynamicView.js b/resources/assets/js/mixins/__mocks__/DynamicView.js deleted file mode 100644 index 46c55ae36..000000000 --- a/resources/assets/js/mixins/__mocks__/DynamicView.js +++ /dev/null @@ -1,6 +0,0 @@ -export default { - methods: { - get: jest.fn(() => Promise.resolve()), - post: jest.fn(() => Promise.resolve()), - } -} \ No newline at end of file diff --git a/resources/assets/js/mixins/__mocks__/Localization.js b/resources/assets/js/mixins/__mocks__/Localization.js deleted file mode 100644 index 895e7f75b..000000000 --- a/resources/assets/js/mixins/__mocks__/Localization.js +++ /dev/null @@ -1,17 +0,0 @@ -const mockLangImplementation = localeKey => `{{ ${localeKey} }}`; - -export default { - methods: { - l: mockLangImplementation - } -} - -export function LocalizationBase(baseKey) { - return { - methods: { - lSub(key) { - return mockLangImplementation(`${baseKey}.${key}`) - } - } - } -} diff --git a/resources/assets/js/mixins/index.js b/resources/assets/js/mixins/index.js deleted file mode 100644 index 513602764..000000000 --- a/resources/assets/js/mixins/index.js +++ /dev/null @@ -1,7 +0,0 @@ -export { default as ErrorNode } from './ErrorNode'; -export { default as Identifier } from './Identifier'; -export { default as Localization, LocalizationBase } from './Localization'; -export { default as Responsive } from './Responsive'; -export { default as ConfigNode } from './ConfigNode'; -export { default as DynamicView, withAxiosInterceptors } from './DynamicView'; -export { default as withCommands } from './page/with-commands'; diff --git a/resources/assets/js/mixins/page/with-commands.js b/resources/assets/js/mixins/page/with-commands.js deleted file mode 100644 index 36d1c7397..000000000 --- a/resources/assets/js/mixins/page/with-commands.js +++ /dev/null @@ -1,165 +0,0 @@ -import { parseBlobJSONContent, getFileName } from "../../util/request"; -import { lang, withLoadingOverlay } from "../../index"; -import { showConfirm, showAlert } from "../../util/dialogs"; - -export default { - data() { - return { - currentCommand: null, - commandViewContent: null, - commandEndpoints: { - postCommand: null, - getForm: null, - }, - commandFormProps: { - loading: false, - }, - } - }, - computed: { - commandFormListeners() { - return { - 'submit': this.handleCommandFormSubmitClicked, - 'close': this.handleCommandFormClosed, - 'update:loading': loading => { - this.commandFormProps.loading = loading; - }, - } - }, - }, - methods: { - transformCommandForm(form) { - return { - ...form, - layout: { tabs: [{ columns: [{fields:form.layout}] }] } - }; - }, - downloadCommandFile(response) { - let $link = document.createElement('a'); - this.$el.appendChild($link); - $link.href = URL.createObjectURL(response.data); - $link.download = getFileName(response.headers); - $link.click(); - }, - async handleCommandResponse(response) { - if(response.data.type !== 'application/json') { - this.downloadCommandFile(response); - return null; - } - const data = await parseBlobJSONContent(response.data); - await this.handleCommandActionRequested(data.action, data); - return data; - }, - /** - * @param {import('sharp-commands').CommandFormModal} commandForm - */ - async postCommandForm(commandForm) { - const { postCommand } = this.commandEndpoints; - const response = await commandForm.submit({ - postFn: data => postCommand({ data, command_step: this.currentCommand.step }), - }); - const data = await this.handleCommandResponse(response); - - if(data?.action === 'step') { - this.currentCommand = { - ...this.currentCommand, - step: data.step, - }; - await this.showCommandForm(this.currentCommand); - } else { - this.currentCommand = null; - } - }, - async getCommandForm() { - const { getForm } = this.commandEndpoints; - - if(this.currentCommand) { - this.commandFormProps.loading = true; - return getForm({ command_step: this.currentCommand.step }) - .finally(() => { - this.commandFormProps.loading = false; - }); - } - - return withLoadingOverlay(getForm()); - }, - async showCommandForm(command) { - const form = await this.getCommandForm(); - this.currentCommand = { - ...command, - form: this.transformCommandForm(form), - }; - }, - async sendCommand(command, { postCommand, getForm }) { - this.commandEndpoints = { postCommand, getForm }; - - if(command.has_form) { - return this.showCommandForm(command); - } - - if(command.confirmation) { - if(! await showConfirm(command.confirmation)) { - return; - } - } - - try { - let response = await withLoadingOverlay(postCommand()); - await this.handleCommandResponse(response); - } catch(e) { - console.error(e); - } - }, - - /** mixin API */ - addCommandActionHandlers(handlers) { - this.commandHandlers = { - ...this.commandHandlers, - ...handlers, - }; - }, - async handleCommandActionRequested(action, data) { - const handler = this.commandHandlers[action]; - - if(handler) { - await handler(data); - } - }, - - /** Command actions handlers */ - async handleReloadCommand() { - await this.init(); - }, - async handleInfoCommand(data) { - await showAlert(data.message, { - title: lang('modals.command.info.title'), - }); - }, - handleViewCommand(data) { - this.commandViewContent = data.html; - }, - handleLinkCommand(data) { - window.location.href = data.link; - }, - - /** Events */ - handleCommandFormSubmitClicked(commandForm) { - this.postCommandForm(commandForm); - }, - handleCommandFormClosed() { - this.currentCommand = null; - }, - handleCommandViewPanelClosed() { - this.commandViewContent = null; - }, - }, - created() { - // default handlers - this.addCommandActionHandlers({ - 'reload': this.handleReloadCommand, - 'info': this.handleInfoCommand, - 'link': this.handleLinkCommand, - 'view': this.handleViewCommand, - }); - }, -} diff --git a/resources/assets/js/package.json b/resources/assets/js/package.json deleted file mode 100644 index 22faf6226..000000000 --- a/resources/assets/js/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "sharp", - "private": true, - "version": "1.0.0", - "main": "index.js" -} diff --git a/resources/assets/js/polyfill.js b/resources/assets/js/polyfill.js deleted file mode 100644 index 495734cb6..000000000 --- a/resources/assets/js/polyfill.js +++ /dev/null @@ -1,10 +0,0 @@ -import 'core-js/features/array/includes'; -import 'core-js/features/array/flat'; -import 'core-js/features/string/includes'; -import 'core-js/features/string/match-all'; -import 'core-js/features/object/entries'; -import 'core-js/features/object/from-entries'; -import 'core-js/features/object/values'; -import 'core-js/features/url'; -import 'core-js/es/symbol'; -import 'core-js/es/set'; diff --git a/resources/assets/js/router/index.js b/resources/assets/js/router/index.js deleted file mode 100644 index 3400b6700..000000000 --- a/resources/assets/js/router/index.js +++ /dev/null @@ -1,41 +0,0 @@ -import VueRouter from 'vue-router'; -import routes from "./routes"; -import { BASE_URL } from "../consts"; -import { parseQuery, stringifyQuery } from '../util/querystring'; - -let currentRouter = null; - -export function router(fresh) { - if(!currentRouter || fresh) { - return currentRouter = new VueRouter({ - mode: 'history', - routes, - base: `${BASE_URL}/`, - parseQuery, - stringifyQuery, - }) - } - return currentRouter; -} - -export function routeUrl(location, { append }={}) { - let { href, route } = router().resolve(location); - if(append) { - const currentPath = router().currentRoute.path.replace(/\/$/, ''); - const resolved = router().resolve(currentPath + route.fullPath); - href = resolved.href; - } - return href; -} - -export function getReferrerRoute() { - if(!document.referrer) { - return; - } - const referrerUrl = new URL(document.referrer); - if(referrerUrl.origin !== location.origin) { - return; - } - const { route } = router().resolve(referrerUrl.pathname + referrerUrl.search); - return route; -} diff --git a/resources/assets/js/router/routes.js b/resources/assets/js/router/routes.js deleted file mode 100644 index 9d7b5a744..000000000 --- a/resources/assets/js/router/routes.js +++ /dev/null @@ -1,3 +0,0 @@ -export default [ - // dynamically added foreach packages, cf. /packages/[name]/routes -] \ No newline at end of file diff --git a/resources/assets/js/sharp.js b/resources/assets/js/sharp.js deleted file mode 100644 index 7e847e003..000000000 --- a/resources/assets/js/sharp.js +++ /dev/null @@ -1,62 +0,0 @@ -import './polyfill'; -import Vue from 'vue'; -import Vuex from 'vuex'; -import VueRouter from 'vue-router'; -import { install as VueGoogleMaps } from './vendor/vue2-google-maps'; -import Notifications from 'vue-notification'; - -import SharpCommands from 'sharp-commands'; -import SharpDashboard from 'sharp-dashboard'; -import SharpEntityList from 'sharp-entity-list'; -import SharpFilters from 'sharp-filters'; -import SharpForm from 'sharp-form'; -import SharpShow from 'sharp-show'; -import SharpUI from 'sharp-ui'; -import SharpSearch from 'sharp-search'; - -import ActionView from './components/ActionView.vue'; -import LeftNav from './components/LeftNav.vue'; -import { - NavSection, - NavItem, -} from 'sharp-ui'; - -import { store as getStore } from './store/store'; -import { router as getRouter } from "./router"; - -Vue.use(Notifications); -Vue.use(VueGoogleMaps, { - installComponents: false -}); - -Vue.use(VueRouter); -Vue.use(Vuex); - -const router = getRouter(); -const store = getStore(); - -Vue.use(SharpCommands, { store, router }); -Vue.use(SharpDashboard, { store, router }); -Vue.use(SharpEntityList, { store, router }); -Vue.use(SharpFilters, { store, router }); -Vue.use(SharpForm, { store, router }); -Vue.use(SharpShow, { store, router }); -Vue.use(SharpUI, { store, router }); -Vue.use(SharpSearch, { store, router }); - - -Vue.component('sharp-action-view', ActionView); -Vue.component('sharp-left-nav', LeftNav); -Vue.component('sharp-nav-section', NavSection); -Vue.component('sharp-nav-item', NavItem); - -new Vue({ - el: "#sharp-app", - - store, - router, -}); - - - - diff --git a/resources/assets/js/store/index.js b/resources/assets/js/store/index.js deleted file mode 100644 index 02d415edb..000000000 --- a/resources/assets/js/store/index.js +++ /dev/null @@ -1,35 +0,0 @@ - -export default { - state: { - loading: false, - dialogs: [], - currentEntity: null, - }, - mutations: { - setLoading(state, loading) { - state.loading = !!loading; - }, - setDialogs(state, dialogs) { - state.dialogs = dialogs; - }, - setCurrentEntity(state, entity) { - state.currentEntity = entity; - } - }, - getters: { - isLoading(state) { - return !!state.loading; - }, - }, - actions: { - setLoading({ commit }, loading) { - commit('setLoading', loading); - }, - setDialogs({ commit }, dialogs) { - commit('setDialogs', dialogs); - }, - setCurrentEntity({ commit }, entity) { - commit('setCurrentEntity', entity); - } - }, -} diff --git a/resources/assets/js/store/store.js b/resources/assets/js/store/store.js deleted file mode 100644 index 23b305540..000000000 --- a/resources/assets/js/store/store.js +++ /dev/null @@ -1,11 +0,0 @@ -import Vuex from "vuex"; -import storeModule from './index'; - -let currentStore = null; - -export function store() { - if(!currentStore) { - return currentStore = new Vuex.Store(storeModule); - } - return currentStore; -} \ No newline at end of file diff --git a/resources/assets/js/util/breadcrumb.js b/resources/assets/js/util/breadcrumb.js deleted file mode 100644 index 1957a366c..000000000 --- a/resources/assets/js/util/breadcrumb.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export function getBackUrl(breadcrumb) { - const item = breadcrumb[breadcrumb.length - 2]; - return item ? item.url : null; -} - -export function entitiesMatch(entityKeyA, entityKeyB) { - if(!entityKeyA || !entityKeyB) { - return false; - } - return entityKeyA.replace(/:(.*)/, '') === entityKeyB.replace(/:(.*)/, ''); -} diff --git a/resources/assets/js/util/dialogs.js b/resources/assets/js/util/dialogs.js deleted file mode 100644 index e14f52e6e..000000000 --- a/resources/assets/js/util/dialogs.js +++ /dev/null @@ -1,59 +0,0 @@ -import { store } from "../store/store"; -import { lang } from "./i18n"; - -let modalId = 0; - -export function showDialog({ text, okCallback = ()=>{}, okCloseOnly, isError, ...props }) { - const id = modalId++; - - return new Promise((resolve, reject) => { - store().dispatch('setDialogs', [ - ...store().state.dialogs, - { - id, - props: { - ...props, - okOnly: okCloseOnly, - noCloseOnBackdrop: okCloseOnly, - noCloseOnEsc: okCloseOnly, - visible: true, - isError - }, - okCallback: () => resolve(true), - hiddenCallback: () => { - store().dispatch('setDialogs', store().state.dialogs.filter(dialog => dialog.id !== id)); - resolve(false); - }, - text, - } - ]); - }); -} - -export function showAlert(message, { title, ...props } = {}) { - return showDialog({ - okCloseOnly: true, - text: message, - title, - ...props - }); -} - -export function showConfirm(message, { title, ...props } = {}) { - return showDialog({ - text: message, - title, - size: 'sm', - hideHeader: true, - okTitle: lang('modals.confirm.ok_button'), - bodyClass: 'pt-4', - ...props - }); -} - -export function showDeleteConfirm(message) { - return showConfirm(message, { - okTitle: lang('modals.confirm.delete.ok_button'), - okVariant: 'danger', - }); -} diff --git a/resources/assets/js/util/fields.js b/resources/assets/js/util/fields.js deleted file mode 100644 index abd680fc7..000000000 --- a/resources/assets/js/util/fields.js +++ /dev/null @@ -1,19 +0,0 @@ -import Vue from 'vue'; -import { logError } from "./log"; - -const customFieldRE = /^custom-(.+)$/; - -export function isCustomField(type) { - return customFieldRE.test(type); -} - -export function resolveCustomField(type) { - const [_, name] = type.match(customFieldRE) || []; - const component = name - ? Vue.options.components[`SharpCustomField_${name}`] - : null; - if(!component) { - logError(`unknown custom field type '${type}', make sure you register it correctly (https://sharp.code16.fr/docs/guide/custom-form-fields.html#register-the-custom-field)`); - } - return component; -} \ No newline at end of file diff --git a/resources/assets/js/util/file.js b/resources/assets/js/util/file.js deleted file mode 100644 index 2ca0f0356..000000000 --- a/resources/assets/js/util/file.js +++ /dev/null @@ -1,34 +0,0 @@ -import filesize from 'filesize'; - - -function getLocale() { - return (navigator.language || '').slice(0, 2) || 'en'; -} - -function getSymbols(locale) { - if(locale === 'fr') { - return { - KB: 'Ko', - MB: 'Mo', - } - } -} - -// https://github.com/avoidwork/filesize.js -export function filesizeLabel(bytes) { - const locale = getLocale(); - const exponent = Math.max(filesize(bytes, { output: 'exponent' }), 1); - const resolvedBytes = Math.max(bytes, 128); - const label = filesize(resolvedBytes, { - standard: 'jedec', - round: 2, - exponent, - locale: true, - symbols: getSymbols(locale), - }); - - if(bytes < 128) { - return `< ${label}`; - } - return label; -} \ No newline at end of file diff --git a/resources/assets/js/util/i18n.js b/resources/assets/js/util/i18n.js deleted file mode 100644 index 4afb68a65..000000000 --- a/resources/assets/js/util/i18n.js +++ /dev/null @@ -1,14 +0,0 @@ - -export function lang(key, defaultLabel) { - const message = window.i18n?.[key]; - - if(message) { - return message; - } - - if(defaultLabel !== undefined) { - return defaultLabel; - } - - return key; -} diff --git a/resources/assets/js/util/id.js b/resources/assets/js/util/id.js deleted file mode 100644 index e106847c3..000000000 --- a/resources/assets/js/util/id.js +++ /dev/null @@ -1,4 +0,0 @@ - -export function getUniqueId(vm) { - return vm.uid || vm._uid; -} diff --git a/resources/assets/js/util/loading.js b/resources/assets/js/util/loading.js deleted file mode 100644 index 8ad9b6aa8..000000000 --- a/resources/assets/js/util/loading.js +++ /dev/null @@ -1,9 +0,0 @@ -import { store } from "../store/store"; - - -export function withLoadingOverlay(request) { - store().dispatch('setLoading', true); - return request.finally(() => { - store().dispatch('setLoading', false); - }); -} diff --git a/resources/assets/js/util/notifications.js b/resources/assets/js/util/notifications.js deleted file mode 100644 index 51001e32b..000000000 --- a/resources/assets/js/util/notifications.js +++ /dev/null @@ -1,17 +0,0 @@ -import Vue from 'vue'; - - -export function showNotification({ level, title, message, autoHide }) { - Vue.notify({ - title, - type: level, - text: message, - duration: autoHide ? 4000 : -1 - }); -} - -export function handleNotifications(notifications) { - setTimeout(() => { - notifications?.forEach?.(notification => showNotification(notification)); - }, 500); -} diff --git a/resources/assets/js/util/querystring.js b/resources/assets/js/util/querystring.js deleted file mode 100644 index fa51cab59..000000000 --- a/resources/assets/js/util/querystring.js +++ /dev/null @@ -1,44 +0,0 @@ -import qs from 'qs'; -import moment from 'moment'; - -const RANGE_DATE_FORMAT = 'YYYYMMDD'; - -export function stringifyQuery(query) { - return qs.stringify(query, { addQueryPrefix: true, skipNulls: true }); -} - -export function parseQuery(query) { - return qs.parse(query, { ignoreQueryPrefix: true, strictNullHandling: true }); -} - -export function parseRange(rangeStr) { - const [start, end] = (rangeStr || '').split('..'); - return { - start: start - ? moment(start, RANGE_DATE_FORMAT).toDate() - : null, - end: end - ? moment(end, RANGE_DATE_FORMAT).toDate() - : null, - } -} - -export function serializeRange(range) { - if(typeof range === 'string') { - return range; - } - - let start = (range || {}).start; - let end = (range || {}).end; - - if(start) { - start = moment(start).format(RANGE_DATE_FORMAT); - } - if(end) { - end = moment(end).format(RANGE_DATE_FORMAT); - } - - return start || end - ? `${start || ''}..${end || ''}` - : null; -} \ No newline at end of file diff --git a/resources/assets/js/util/request.js b/resources/assets/js/util/request.js deleted file mode 100644 index 84cd55f4d..000000000 --- a/resources/assets/js/util/request.js +++ /dev/null @@ -1,22 +0,0 @@ - -export function parseBlobJSONContent(blob) { - return new Promise(resolve => { - let reader = new FileReader(); - reader.addEventListener("loadend", function() { - resolve(JSON.parse(reader.result)); - }); - reader.readAsText(blob); - }); -} - -export function getFileName(headers={}) { - let { ['content-disposition']: disposition } = headers; - if (disposition && disposition.includes('attachment')) { - let filenameRE = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/; - let matches = filenameRE.exec(disposition); - if (matches != null && matches[1]) { - return matches[1].replace(/['"]/g, ''); - } - } - return null; -} \ No newline at end of file diff --git a/resources/assets/js/util/search.js b/resources/assets/js/util/search.js deleted file mode 100644 index 5cc8bbe09..000000000 --- a/resources/assets/js/util/search.js +++ /dev/null @@ -1,25 +0,0 @@ -import Fuse from 'fuse.js'; - -const defaultOptions = { - caseSensitive: false, - include: [], - minMatchCharLength: 1, - shouldSort: true, - tokenize: true, - matchAllTokens: false, - findAllMatches: false, - id: null, - keys: ['value'], - location: 0, - threshold: 0.0, - distance: 0, - maxPatternLength: 64, -} - -export function search(list, query, { searchKeys } = {}) { - const fuse = new Fuse(list, { - ...defaultOptions, - keys: searchKeys, - }); - return fuse.search(query); -} \ No newline at end of file diff --git a/resources/assets/js/util/vue.js b/resources/assets/js/util/vue.js deleted file mode 100644 index f20becae2..000000000 --- a/resources/assets/js/util/vue.js +++ /dev/null @@ -1,8 +0,0 @@ -import Vue from "vue"; - - -export function ignoreVueElement(tag) { - if(tag && !Vue.config.ignoredElements.includes(tag)) { - Vue.config.ignoredElements.push(tag); - } -} diff --git a/resources/assets/js/vendor/vue2-google-maps/components/infoWindow.vue b/resources/assets/js/vendor/vue2-google-maps/components/infoWindow.vue deleted file mode 100755 index 4e2a303c2..000000000 --- a/resources/assets/js/vendor/vue2-google-maps/components/infoWindow.vue +++ /dev/null @@ -1,13 +0,0 @@ -/* vim: set softtabstop=2 shiftwidth=2 expandtab : */ - - - - diff --git a/resources/assets/js/vendor/vue2-google-maps/components/infoWindowImpl.js b/resources/assets/js/vendor/vue2-google-maps/components/infoWindowImpl.js deleted file mode 100755 index f5d6e433c..000000000 --- a/resources/assets/js/vendor/vue2-google-maps/components/infoWindowImpl.js +++ /dev/null @@ -1,82 +0,0 @@ -import mapElementFactory from './mapElementFactory.js' - -const props = { - options: { - type: Object, - required: false, - default () { - return {} - } - }, - position: { - type: Object, - twoWay: true, - }, - zIndex: { - type: Number, - twoWay: true, - } -} - -const events = [ - 'domready', - 'closeclick', - 'content_changed', -] - -export default mapElementFactory({ - mappedProps: props, - events, - name: 'infoWindow', - ctr: () => google.maps.InfoWindow, - props: { - opened: { - type: Boolean, - default: true, - }, - }, - - inject: { - '$markerPromise': { - default: null, - } - }, - - mounted () { - const el = this.$refs.flyaway - el.parentNode.removeChild(el) - }, - - beforeCreate (options) { - options.content = this.$refs.flyaway - - if (this.$markerPromise) { - delete options.position - return this.$markerPromise.then(mo => { - this.$markerObject = mo - return mo - }) - } - }, - - methods: { - _openInfoWindow () { - if (this.opened) { - if (this.$markerObject !== null) { - this.$infoWindowObject.open(this.$map, this.$markerObject) - } else { - this.$infoWindowObject.open(this.$map) - } - } else { - this.$infoWindowObject.close() - } - }, - }, - - afterCreate () { - this._openInfoWindow() - this.$watch('opened', () => { - this._openInfoWindow() - }) - } -}) diff --git a/resources/assets/js/vendor/vue2-google-maps/components/map.vue b/resources/assets/js/vendor/vue2-google-maps/components/map.vue deleted file mode 100755 index 35b60aeba..000000000 --- a/resources/assets/js/vendor/vue2-google-maps/components/map.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - - - diff --git a/resources/assets/js/vendor/vue2-google-maps/components/mapElementFactory.js b/resources/assets/js/vendor/vue2-google-maps/components/mapElementFactory.js deleted file mode 100755 index c38b79236..000000000 --- a/resources/assets/js/vendor/vue2-google-maps/components/mapElementFactory.js +++ /dev/null @@ -1,149 +0,0 @@ -import bindEvents from '../utils/bindEvents.js' -import {bindProps, getPropsValues} from '../utils/bindProps.js' -import MapElementMixin from './mapElementMixin' - -/** - * - * @param {Object} options - * @param {Object} options.mappedProps - Definitions of props - * @param {Object} options.mappedProps.PROP.type - Value type - * @param {Boolean} options.mappedProps.PROP.twoWay - * - Whether the prop has a corresponding PROP_changed - * event - * @param {Boolean} options.mappedProps.PROP.noBind - * - If true, do not apply the default bindProps / bindEvents. - * However it will still be added to the list of component props - * @param {Object} options.props - Regular Vue-style props. - * Note: must be in the Object form because it will be - * merged with the `mappedProps` - * - * @param {Object} options.events - Google Maps API events - * that are not bound to a corresponding prop - * @param {String} options.name - e.g. `polyline` - * @param {=> String} options.ctr - constructor, e.g. - * `google.maps.Polyline`. However, since this is not - * generally available during library load, this becomes - * a function instead, e.g. () => google.maps.Polyline - * which will be called only after the API has been loaded - * @param {(MappedProps, OtherVueProps) => Array} options.ctrArgs - - * If the constructor in `ctr` needs to be called with - * arguments other than a single `options` object, e.g. for - * GroundOverlay, we call `new GroundOverlay(url, bounds, options)` - * then pass in a function that returns the argument list as an array - * - * Otherwise, the constructor will be called with an `options` object, - * with property and values merged from: - * - * 1. the `options` property, if any - * 2. a `map` property with the Google Maps - * 3. all the properties passed to the component in `mappedProps` - * @param {Object => Any} options.beforeCreate - - * Hook to modify the options passed to the initializer - * @param {(options.ctr, Object) => Any} options.afterCreate - - * Hook called when - * - */ -export default function (options) { - const { - mappedProps, - name, - ctr, - ctrArgs, - events, - beforeCreate, - afterCreate, - props, - ...rest - } = options - - const promiseName = `$${name}Promise` - const instanceName = `$${name}Object` - - assert(!(rest.props instanceof Array), '`props` should be an object, not Array') - - return { - ...(typeof GENERATE_DOC !== 'undefined' ? {$vgmOptions: options} : {}), - mixins: [MapElementMixin], - props: { - ...props, - ...mappedPropsToVueProps(mappedProps), - }, - render () { return '' }, - provide () { - const promise = this.$mapPromise.then((map) => { - // Infowindow needs this to be immediately available - this.$map = map - - // Initialize the maps with the given options - const options = { - ...this.options, - map, - ...getPropsValues(this, mappedProps) - } - delete options.options // delete the extra options - - if (beforeCreate) { - const result = beforeCreate.bind(this)(options) - - if (result instanceof Promise) { - return result.then(() => ({options})) - } - } - return {options} - }).then(({options}) => { - const ConstructorObject = ctr() - // https://stackoverflow.com/questions/1606797/use-of-apply-with-new-operator-is-this-possible - this[instanceName] = ctrArgs - ? new (Function.prototype.bind.call( - ConstructorObject, - null, - ...ctrArgs(options, getPropsValues(this, props || {})) - ))() - : new ConstructorObject(options) - - bindProps(this, this[instanceName], mappedProps) - bindEvents(this, this[instanceName], events) - - if (afterCreate) { - afterCreate.bind(this)(this[instanceName]) - } - return this[instanceName] - }) - this[promiseName] = promise - return {[promiseName]: promise} - }, - destroyed () { - // Note: not all Google Maps components support maps - if (this[instanceName] && this[instanceName].setMap) { - this[instanceName].setMap(null) - } - }, - ...rest - } -} - -function assert (v, message) { - if (!v) throw new Error(message) -} - -/** - * Strips out the extraneous properties we have in our - * props definitions - * @param {Object} props - */ -export function mappedPropsToVueProps (mappedProps) { - return Object.entries(mappedProps) - .map(([key, prop]) => { - const value = {} - - if ('type' in prop) value.type = prop.type - if ('default' in prop) value.default = prop.default - if ('required' in prop) value.required = prop.required - - return [key, value] - }) - .reduce((acc, [key, val]) => { - acc[key] = val - return acc - }, {}) -} diff --git a/resources/assets/js/vendor/vue2-google-maps/components/mapElementMixin.js b/resources/assets/js/vendor/vue2-google-maps/components/mapElementMixin.js deleted file mode 100755 index 83e893c61..000000000 --- a/resources/assets/js/vendor/vue2-google-maps/components/mapElementMixin.js +++ /dev/null @@ -1,31 +0,0 @@ -/** - * @class MapElementMixin - * - * Extends components to include the following fields: - * - * @property $map The Google map (valid only after the promise returns) - * - * - * */ -export default { - inject: { - '$mapPromise': { default: 'abcdef' } - }, - - provide () { - // Note: although this mixin is not "providing" anything, - // components' expect the `$map` property to be present on the component. - // In order for that to happen, this mixin must intercept the $mapPromise - // .then(() =>) first before its component does so. - // - // Since a provide() on a mixin is executed before a provide() on the - // component, putting this code in provide() ensures that the $map is - // already set by the time the - // component's provide() is called. - this.$mapPromise.then((map) => { - this.$map = map - }) - - return {} - }, -} diff --git a/resources/assets/js/vendor/vue2-google-maps/components/mapImpl.js b/resources/assets/js/vendor/vue2-google-maps/components/mapImpl.js deleted file mode 100755 index d6e0140c0..000000000 --- a/resources/assets/js/vendor/vue2-google-maps/components/mapImpl.js +++ /dev/null @@ -1,184 +0,0 @@ -import bindEvents from '../utils/bindEvents.js' -import {bindProps, getPropsValues} from '../utils/bindProps.js' -import mountableMixin from '../utils/mountableMixin.js' - -import TwoWayBindingWrapper from '../utils/TwoWayBindingWrapper.js' -import WatchPrimitiveProperties from '../utils/WatchPrimitiveProperties.js' -import { mappedPropsToVueProps } from './mapElementFactory.js' - -const props = { - center: { - required: true, - twoWay: true, - type: Object, - noBind: true, - }, - zoom: { - required: false, - twoWay: true, - type: Number, - noBind: true, - }, - heading: { - type: Number, - twoWay: true, - }, - mapTypeId: { - twoWay: true, - type: String - }, - tilt: { - twoWay: true, - type: Number, - }, - options: { - type: Object, - default () { return {} } - } -} - -const events = [ - 'bounds_changed', - 'click', - 'dblclick', - 'drag', - 'dragend', - 'dragstart', - 'idle', - 'mousemove', - 'mouseout', - 'mouseover', - 'resize', - 'rightclick', - 'tilesloaded', -] - -// Plain Google Maps methods exposed here for convenience -const linkedMethods = [ - 'panBy', - 'panTo', - 'panToBounds', - 'fitBounds' -].reduce((all, methodName) => { - all[methodName] = function () { - if (this.$mapObject) { this.$mapObject[methodName].apply(this.$mapObject, arguments) } - } - return all -}, {}) - -// Other convenience methods exposed by Vue Google Maps -const customMethods = { - resize () { - if (this.$mapObject) { - google.maps.event.trigger(this.$mapObject, 'resize') - } - }, - resizePreserveCenter () { - if (!this.$mapObject) { return } - - const oldCenter = this.$mapObject.getCenter() - google.maps.event.trigger(this.$mapObject, 'resize') - this.$mapObject.setCenter(oldCenter) - }, - - /// Override mountableMixin::_resizeCallback - /// because resizePreserveCenter is usually the - /// expected behaviour - _resizeCallback () { - this.resizePreserveCenter() - } -} - -export default { - mixins: [mountableMixin], - props: mappedPropsToVueProps(props), - - provide () { - this.$mapPromise = new Promise((resolve, reject) => { - this.$mapPromiseDeferred = { resolve, reject } - }) - return { - '$mapPromise': this.$mapPromise - } - }, - - computed: { - finalLat () { - return this.center && - (typeof this.center.lat === 'function') ? this.center.lat() : this.center.lat - }, - finalLng () { - return this.center && - (typeof this.center.lng === 'function') ? this.center.lng() : this.center.lng - }, - finalLatLng () { - return {lat: this.finalLat, lng: this.finalLng} - } - }, - - watch: { - zoom (zoom) { - if (this.$mapObject) { - this.$mapObject.setZoom(zoom) - } - } - }, - - mounted () { - return this.$gmapApiPromiseLazy().then(() => { - // getting the DOM element where to create the map - const element = this.$refs['vue-map'] - - // creating the map - const options = { - ...this.options, - ...getPropsValues(this, props), - } - delete options.options - this.$mapObject = new google.maps.Map(element, options) - - // binding properties (two and one way) - bindProps(this, this.$mapObject, props) - // binding events - bindEvents(this, this.$mapObject, events) - - // manually trigger center and zoom - TwoWayBindingWrapper((increment, decrement, shouldUpdate) => { - this.$mapObject.addListener('center_changed', () => { - if (shouldUpdate()) { - this.$emit('center_changed', this.$mapObject.getCenter()) - } - decrement() - }) - - const updateCenter = () => { - increment() - this.$mapObject.setCenter(this.finalLatLng) - } - - WatchPrimitiveProperties( - this, - ['finalLat', 'finalLng'], - updateCenter - ) - }) - this.$mapObject.addListener('zoom_changed', () => { - this.$emit('zoom_changed', this.$mapObject.getZoom()) - }) - this.$mapObject.addListener('bounds_changed', () => { - this.$emit('bounds_changed', this.$mapObject.getBounds()) - }) - - this.$mapPromiseDeferred.resolve(this.$mapObject) - - return this.$mapObject - }) - .catch((error) => { - throw error - }) - }, - methods: { - ...customMethods, - ...linkedMethods, - }, -} diff --git a/resources/assets/js/vendor/vue2-google-maps/components/marker.js b/resources/assets/js/vendor/vue2-google-maps/components/marker.js deleted file mode 100755 index 964c3a523..000000000 --- a/resources/assets/js/vendor/vue2-google-maps/components/marker.js +++ /dev/null @@ -1,139 +0,0 @@ -import mapElementFactory from './mapElementFactory.js' - -const props = { - animation: { - twoWay: true, - type: Number - }, - attribution: { - type: Object, - }, - clickable: { - type: Boolean, - twoWay: true, - default: true - }, - cursor: { - type: String, - twoWay: true - }, - draggable: { - type: Boolean, - twoWay: true, - default: false - }, - icon: { - twoWay: true - }, - label: { - }, - opacity: { - type: Number, - default: 1 - }, - options: { - type: Object - }, - place: { - type: Object - }, - position: { - type: Object, - twoWay: true, - }, - shape: { - type: Object, - twoWay: true - }, - title: { - type: String, - twoWay: true - }, - zIndex: { - type: Number, - twoWay: true - }, - visible: { - twoWay: true, - default: true, - }, -} - -const events = [ - 'click', - 'rightclick', - 'dblclick', - 'drag', - 'dragstart', - 'dragend', - 'mouseup', - 'mousedown', - 'mouseover', - 'mouseout' -] - -/** - * @class Marker - * - * Marker class with extra support for - * - * - Embedded info windows - * - Clustered markers - * - * Support for clustered markers is for backward-compatability - * reasons. Otherwise we should use a cluster-marker mixin or - * subclass. - */ -export default mapElementFactory({ - mappedProps: props, - events, - name: 'marker', - ctr: () => google.maps.Marker, - - inject: { - '$clusterPromise': { - default: null, - }, - }, - - render (h) { - if (!this.$slots.default || this.$slots.default.length === 0) { - return '' - } else if (this.$slots.default.length === 1) { // So that infowindows can have a marker parent - return this.$slots.default[0] - } else { - return h( - 'div', - this.$slots.default - ) - } - }, - - destroyed () { - if (!this.$markerObject) { return } - - if (this.$clusterObject) { - // Repaint will be performed in `updated()` of cluster - this.$clusterObject.removeMarker(this.$markerObject, true) - } else { - this.$markerObject.setMap(null) - } - }, - - beforeCreate (options) { - if (this.$clusterPromise) { - options.map = null - } - - return this.$clusterPromise - }, - - afterCreate (inst) { - if (this.$clusterPromise) { - this.$clusterPromise.then((co) => { - co.addMarker(inst) - this.$clusterObject = co - }) - } - }, -}) diff --git a/resources/assets/js/vendor/vue2-google-maps/index.js b/resources/assets/js/vendor/vue2-google-maps/index.js deleted file mode 100755 index 3b41e7fdb..000000000 --- a/resources/assets/js/vendor/vue2-google-maps/index.js +++ /dev/null @@ -1,109 +0,0 @@ -import lazy from './utils/lazyValue' -import {loadGmapApi} from './manager' - -import Marker from './components/marker' - -// Vue component imports -import InfoWindow from './components/infoWindow.vue' -import Map from './components/map.vue' - -import MapElementMixin from './components/mapElementMixin' -import MapElementFactory from './components/mapElementFactory' -import MountableMixin from './utils/mountableMixin' - - - -let GmapApi = null - -// export everything -export {loadGmapApi, Marker, - InfoWindow, Map, MapElementMixin, MapElementFactory, - MountableMixin} - -export function install (Vue, options) { - // Set defaults - options = { - installComponents: true, - autobindAllEvents: false, - ...options - } - - // Update the global `GmapApi`. This will allow - // components to use the `google` global reactively - // via: - // import {gmapApi} from 'vue2-google-maps' - // export default { computed: { google: gmapApi } } - GmapApi = new Vue({data: {gmapApi: null}}) - - const defaultResizeBus = new Vue() - - // Use a lazy to only load the API when - // a VGM component is loaded - let gmapApiPromiseLazy = makeGmapApiPromiseLazy(options) - - Vue.mixin({ - created () { - this.$gmapDefaultResizeBus = defaultResizeBus - this.$gmapOptions = options - this.$gmapApiPromiseLazy = gmapApiPromiseLazy - } - }) - Vue.$gmapDefaultResizeBus = defaultResizeBus - Vue.$gmapApiPromiseLazy = gmapApiPromiseLazy - - if (options.installComponents) { - Vue.component('GmapMap', Map) - Vue.component('GmapMarker', Marker) - Vue.component('GmapInfoWindow', InfoWindow) - Vue.component('GmapPolyline', Polyline) - Vue.component('GmapPolygon', Polygon) - Vue.component('GmapCircle', Circle) - Vue.component('GmapRectangle', Rectangle) - Vue.component('GmapAutocomplete', Autocomplete) - Vue.component('GmapPlaceInput', PlaceInput) - Vue.component('GmapStreetViewPanorama', StreetViewPanorama) - } -} - -function makeGmapApiPromiseLazy (options) { - // Things to do once the API is loaded - function onApiLoaded () { - GmapApi.gmapApi = {} - return window.google - } - - if (options.load) { // If library should load the API - return lazy(() => { // Load the - // This will only be evaluated once - if (typeof window === 'undefined') { // server side -- never resolve this promise - return new Promise(() => {}).then(onApiLoaded) - } else { - return new Promise((resolve, reject) => { - try { - window['vueGoogleMapsInit'] = resolve - loadGmapApi(options.load, options.loadCn) - } catch (err) { - reject(err) - } - }) - .then(onApiLoaded) - } - }) - } else { // If library should not handle API, provide - // end-users with the global `vueGoogleMapsInit: () => undefined` - // when the Google Maps API has been loaded - const promise = new Promise((resolve) => { - if (typeof window === 'undefined') { - // Do nothing if run from server-side - return - } - window['vueGoogleMapsInit'] = resolve - }).then(onApiLoaded) - - return lazy(() => promise) - } -} - -export function gmapApi () { - return GmapApi.gmapApi && window.google -} diff --git a/resources/assets/js/vendor/vue2-google-maps/manager.js b/resources/assets/js/vendor/vue2-google-maps/manager.js deleted file mode 100755 index 1ece1f5cd..000000000 --- a/resources/assets/js/vendor/vue2-google-maps/manager.js +++ /dev/null @@ -1,73 +0,0 @@ -let isApiSetUp = false - -/** - * @param apiKey API Key, or object with the URL parameters. For example - * to use Google Maps Premium API, pass - * `{ client: }`. - * You may pass the libraries and/or version (as `v`) parameter into - * this parameter and skip the next two parameters - * @param version Google Maps version - * @param libraries Libraries to load (@see - * https://developers.google.com/maps/documentation/javascript/libraries) - * @param loadCn Boolean. If set to true, the map will be loaded from google maps China - * (@see https://developers.google.com/maps/documentation/javascript/basics#GoogleMapsChina) - * - * Example: - * ``` - * import {load} from 'vue-google-maps' - * - * load() - * - * load({ - * key: , - * }) - * - * load({ - * client: , - * channel: - * }) - * ``` - */ -export const loadGmapApi = (options, loadCn) => { - if (typeof document === 'undefined') { - // Do nothing if run from server-side - return - } - if (!isApiSetUp) { - isApiSetUp = true - - const googleMapScript = document.createElement('SCRIPT') - - // Allow options to be an object. - // This is to support more esoteric means of loading Google Maps, - // such as Google for business - // https://developers.google.com/maps/documentation/javascript/get-api-key#premium-auth - if (typeof options !== 'object') { - throw new Error('options should be an object') - } - - // libraries - if (Array.prototype.isPrototypeOf(options.libraries)) { - options.libraries = options.libraries.join(',') - } - options['callback'] = 'vueGoogleMapsInit' - - let baseUrl = 'https://maps.googleapis.com/' - - if (typeof loadCn === 'boolean' && loadCn === true) { - baseUrl = 'https://maps.google.cn/' - } - - let url = baseUrl + 'maps/api/js?' + - Object.keys(options) - .map((key) => encodeURIComponent(key) + '=' + encodeURIComponent(options[key])) - .join('&') - - googleMapScript.setAttribute('src', url) - googleMapScript.setAttribute('async', '') - googleMapScript.setAttribute('defer', '') - document.head.appendChild(googleMapScript) - } else { - throw new Error('You already started the loading of google maps') - } -} diff --git a/resources/assets/js/vendor/vue2-google-maps/utils/TwoWayBindingWrapper.js b/resources/assets/js/vendor/vue2-google-maps/utils/TwoWayBindingWrapper.js deleted file mode 100755 index 666544344..000000000 --- a/resources/assets/js/vendor/vue2-google-maps/utils/TwoWayBindingWrapper.js +++ /dev/null @@ -1,48 +0,0 @@ -/** - * When you have two-way bindings, but the actual bound value will not equal - * the value you initially passed in, then to avoid an infinite loop you - * need to increment a counter every time you pass in a value, decrement the - * same counter every time the bound value changed, but only bubble up - * the event when the counter is zero. - * -Example: - -Let's say DrawingRecognitionCanvas is a deep-learning backed canvas -that, when given the name of an object (e.g. 'dog'), draws a dog. -But whenever the drawing on it changes, it also sends back its interpretation -of the image by way of the @newObjectRecognized event. - - - - -new TwoWayBindingWrapper((increment, decrement, shouldUpdate) => { - this.$watch('identifiedObject', () => { - // new object passed in - increment() - }) - this.$deepLearningBackend.on('drawingChanged', () => { - recognizeObject(this.$deepLearningBackend) - .then((object) => { - decrement() - if (shouldUpdate()) { - this.$emit('newObjectRecognized', object.name) - } - }) - }) -}) - */ -export default function TwoWayBindingWrapper (fn) { - let counter = 0 - - fn( - () => { counter += 1 }, - () => { counter = Math.max(0, counter - 1) }, - () => counter === 0, - ) -} diff --git a/resources/assets/js/vendor/vue2-google-maps/utils/WatchPrimitiveProperties.js b/resources/assets/js/vendor/vue2-google-maps/utils/WatchPrimitiveProperties.js deleted file mode 100755 index 59386e8bf..000000000 --- a/resources/assets/js/vendor/vue2-google-maps/utils/WatchPrimitiveProperties.js +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Watch the individual properties of a PoD object, instead of the object - * per se. This is different from a deep watch where both the reference - * and the individual values are watched. - * - * In effect, it throttles the multiple $watch to execute at most once per tick. - */ -export default function WatchPrimitiveProperties (vueInst, propertiesToTrack, handler, immediate = false) { - let isHandled = false - - function requestHandle () { - if (!isHandled) { - isHandled = true - vueInst.$nextTick(() => { - isHandled = false - handler() - }) - } - } - - for (let prop of propertiesToTrack) { - vueInst.$watch(prop, requestHandle, {immediate}) - } -} diff --git a/resources/assets/js/vendor/vue2-google-maps/utils/bindEvents.js b/resources/assets/js/vendor/vue2-google-maps/utils/bindEvents.js deleted file mode 100755 index e38f5032e..000000000 --- a/resources/assets/js/vendor/vue2-google-maps/utils/bindEvents.js +++ /dev/null @@ -1,10 +0,0 @@ -export default (vueInst, googleMapsInst, events) => { - for (let eventName of events) { - if (vueInst.$gmapOptions.autobindAllEvents || - vueInst.$listeners[eventName]) { - googleMapsInst.addListener(eventName, (ev) => { - vueInst.$emit(eventName, ev) - }) - } - } -} diff --git a/resources/assets/js/vendor/vue2-google-maps/utils/bindProps.js b/resources/assets/js/vendor/vue2-google-maps/utils/bindProps.js deleted file mode 100755 index 6018cd798..000000000 --- a/resources/assets/js/vendor/vue2-google-maps/utils/bindProps.js +++ /dev/null @@ -1,74 +0,0 @@ -import WatchPrimitiveProperties from '../utils/WatchPrimitiveProperties' - -function capitalizeFirstLetter (string) { - return string.charAt(0).toUpperCase() + string.slice(1) -} - -export function getPropsValues (vueInst, props) { - return Object.keys(props) - .reduce( - (acc, prop) => { - if (vueInst[prop] !== undefined) { - acc[prop] = vueInst[prop] - } - return acc - }, - {} - ) -} - -/** - * Binds the properties defined in props to the google maps instance. - * If the prop is an Object type, and we wish to track the properties - * of the object (e.g. the lat and lng of a LatLng), then we do a deep - * watch. For deep watch, we also prevent the _changed event from being - * emitted if the data source was external. - */ -export function bindProps (vueInst, googleMapsInst, props, options) { - for (let attribute in props) { - let {twoWay, type, trackProperties, noBind} = props[attribute] - - if (noBind) continue - - const setMethodName = 'set' + capitalizeFirstLetter(attribute) - const getMethodName = 'get' + capitalizeFirstLetter(attribute) - const eventName = attribute.toLowerCase() + '_changed' - const initialValue = vueInst[attribute] - - if (typeof googleMapsInst[setMethodName] === 'undefined') { - throw new Error(`${setMethodName} is not a method of (the Maps object corresponding to) ${vueInst.$options._componentTag}`) - } - - // We need to avoid an endless - // propChanged -> event emitted -> propChanged -> event emitted loop - // although this may really be the user's responsibility - if (type !== Object || !trackProperties) { - // Track the object deeply - vueInst.$watch(attribute, () => { - const attributeValue = vueInst[attribute] - - googleMapsInst[setMethodName](attributeValue) - }, { - immediate: typeof initialValue !== 'undefined', - deep: type === Object - }) - } else { - WatchPrimitiveProperties( - vueInst, - trackProperties.map(prop => `${attribute}.${prop}`), - () => { - googleMapsInst[setMethodName](vueInst[attribute]) - }, - vueInst[attribute] !== undefined - ) - } - - if (twoWay && - (vueInst.$gmapOptions.autobindAllEvents || - vueInst.$listeners[eventName])) { - googleMapsInst.addListener(eventName, (ev) => { // eslint-disable-line no-unused-vars - vueInst.$emit(eventName, googleMapsInst[getMethodName]()) - }) - } - } -} diff --git a/resources/assets/js/vendor/vue2-google-maps/utils/lazyValue.js b/resources/assets/js/vendor/vue2-google-maps/utils/lazyValue.js deleted file mode 100755 index ac03cabc7..000000000 --- a/resources/assets/js/vendor/vue2-google-maps/utils/lazyValue.js +++ /dev/null @@ -1,16 +0,0 @@ -// This piece of code was orignally written by sindresorhus and can be seen here -// https://github.com/sindresorhus/lazy-value/blob/master/index.js - -export default fn => { - let called = false - let ret - - return () => { - if (!called) { - called = true - ret = fn() - } - - return ret - } -} diff --git a/resources/assets/js/vendor/vue2-google-maps/utils/mountableMixin.js b/resources/assets/js/vendor/vue2-google-maps/utils/mountableMixin.js deleted file mode 100755 index 557a1e782..000000000 --- a/resources/assets/js/vendor/vue2-google-maps/utils/mountableMixin.js +++ /dev/null @@ -1,55 +0,0 @@ -/* -Mixin for objects that are mounted by Google Maps -Javascript API. - -These are objects that are sensitive to element resize -operations so it exposes a property which accepts a bus - -*/ - -export default { - props: ['resizeBus'], - - data () { - return { - _actualResizeBus: null, - } - }, - - created () { - if (typeof this.resizeBus === 'undefined') { - this.$data._actualResizeBus = this.$gmapDefaultResizeBus - } else { - this.$data._actualResizeBus = this.resizeBus - } - }, - - methods: { - _resizeCallback () { - this.resize() - }, - _delayedResizeCallback () { - this.$nextTick(() => this._resizeCallback()) - } - }, - - watch: { - resizeBus (newVal, oldVal) { // eslint-disable-line no-unused-vars - this.$data._actualResizeBus = newVal - }, - '$data._actualResizeBus' (newVal, oldVal) { - if (oldVal) { - oldVal.$off('resize', this._delayedResizeCallback) - } - if (newVal) { - newVal.$on('resize', this._delayedResizeCallback) - } - } - }, - - destroyed () { - if (this.$data._actualResizeBus) { - this.$data._actualResizeBus.$off('resize', this._delayedResizeCallback) - } - } -} diff --git a/resources/assets/js/vendor/vue2-google-maps/utils/simulateArrowDown.js b/resources/assets/js/vendor/vue2-google-maps/utils/simulateArrowDown.js deleted file mode 100755 index f572157b4..000000000 --- a/resources/assets/js/vendor/vue2-google-maps/utils/simulateArrowDown.js +++ /dev/null @@ -1,28 +0,0 @@ -// This piece of code was orignally written by amirnissim and can be seen here -// http://stackoverflow.com/a/11703018/2694653 -// This has been ported to Vanilla.js by GuillaumeLeclerc -export default (input) => { - var _addEventListener = (input.addEventListener) ? input.addEventListener : input.attachEvent - - function addEventListenerWrapper (type, listener) { - // Simulate a 'down arrow' keypress on hitting 'return' when no pac suggestion is selected, - // and then trigger the original listener. - if (type === 'keydown') { - var origListener = listener - listener = function (event) { - var suggestionSelected = document.getElementsByClassName('pac-item-selected').length > 0 - if (event.which === 13 && !suggestionSelected) { - var simulatedEvent = document.createEvent('Event') - simulatedEvent.keyCode = 40 - simulatedEvent.which = 40 - origListener.apply(input, [simulatedEvent]) - } - origListener.apply(input, [event]) - } - } - _addEventListener.apply(input, [type, listener]) - } - - input.addEventListener = addEventListenerWrapper - input.attachEvent = addEventListenerWrapper -} diff --git a/resources/assets/sass/_bootstrap.scss b/resources/assets/sass/_bootstrap.scss deleted file mode 100644 index 786445ab5..000000000 --- a/resources/assets/sass/_bootstrap.scss +++ /dev/null @@ -1,166 +0,0 @@ - -@import '../../../node_modules/bootstrap/scss/functions'; -@import '../../../node_modules/bootstrap/scss/variables'; -@import '../../../node_modules/bootstrap/scss/maps'; -@import '../../../node_modules/bootstrap/scss/mixins'; -@import '../../../node_modules/bootstrap/scss/utilities'; - -@import '../../../node_modules/bootstrap/scss/root'; -@import '../../../node_modules/bootstrap/scss/reboot'; - -@import '../../../node_modules/bootstrap/scss/grid'; -@import '../../../node_modules/bootstrap/scss/containers'; -@import '../../../node_modules/bootstrap/scss/transitions'; -@import '../../../node_modules/bootstrap/scss/type'; - -@import '../../../node_modules/bootstrap/scss/helpers/text-truncation'; -@import '../../../node_modules/bootstrap/scss/helpers/position'; -@import '../../../node_modules/bootstrap/scss/helpers/visually-hidden'; -@import '../../../node_modules/bootstrap/scss/helpers/stretched-link'; - -@import '../../../node_modules/bootstrap/scss/forms'; -@import '../../../node_modules/bootstrap/scss/alert'; -@import '../../../node_modules/bootstrap/scss/buttons'; -@import '../../../node_modules/bootstrap/scss/button-group'; -@import '../../../node_modules/bootstrap/scss/breadcrumb'; -@import '../../../node_modules/bootstrap/scss/dropdown'; -@import '../../../node_modules/bootstrap/scss/card'; -@import '../../../node_modules/bootstrap/scss/close'; -@import '../../../node_modules/bootstrap/scss/list-group'; -@import '../../../node_modules/bootstrap/scss/modal'; -@import '../../../node_modules/bootstrap/scss/nav'; -@import '../../../node_modules/bootstrap/scss/pagination'; -@import '../../../node_modules/bootstrap/scss/popover'; -@import '../../../node_modules/bootstrap/scss/spinners'; -@import '../../../node_modules/bootstrap/scss/toasts'; -@import '../../../node_modules/bootstrap/scss/tooltip'; -@import '../../../node_modules/bootstrap/scss/tables'; - -@import '../../../node_modules/bootstrap/scss/utilities/api'; - -$bv-enable-tooltip-variants: false; - -@import '../../../node_modules/bootstrap-vue/src/utilities'; -@import '../../../node_modules/bootstrap-vue/src/components/dropdown/index'; -@import '../../../node_modules/bootstrap-vue/src/components/modal/index'; -@import '../../../node_modules/bootstrap-vue/src/components/tooltip/index'; - - - -.alert-primary { - background-color: hsl(var(--primary-h), var(--primary-s), 92.5%); - border-color: hsla(var(--primary-h), var(--primary-s), 20%, 0.1); - color: hsl(var(--primary-h), var(--primary-s), 20%); -} - -.close { - @extend .btn-close; - color: transparent!important; -} - -.list-group-item-action { - &:focus:not(:focus-visible) { - outline: 0; - } -} - -.toast { - border-left-width: 6px; - border-top: 0; - border-bottom: 0; - border-right: 0; - - .toast-header { - &:last-child { - border-bottom: 0; - @include border-bottom-radius(subtract($toast-border-radius, $toast-border-width)); - } - } - - .btn-close { - min-width: $btn-close-width; - } -} - -.input-group-sm { - > .form-select { - padding-right: $form-select-padding-x + $form-select-indicator-padding - .5rem; - } - > .input-group-text { - font-size: .75rem; - line-height: 1.7; - } - > .btn { - font-size: .75rem; - } -} - -.input-group-text.btn { - border-color: $input-group-addon-border-color; -} - - -.btn, -.nav-tabs .nav-link, -.form-label, -.input-group-text -{ - @extend .ui-font; -} - -.nav-tabs { - --bs-nav-link-font-size: 1.125rem; -} - -//.nav-tabs .nav-link, { -// font-size: .75rem; -// padding: .25rem .5rem; -//} - -.btn, -.nav-tabs .nav-link, -.input-group-text { - //letter-spacing: .025em; -} - -.form-label { - line-height: $label-line-height; -} - -.card { - border-color: var(--card-border-color, #{$card-border-color}); - transition: var(--card-transition); -} - -.card.form-control { - font-size: 1rem; - color: $body-color; - line-height: $line-height-base; - font-weight: $font-weight-base; -} - -.dropdown-menu { - box-shadow: $box-shadow; -} - -.form-check-label { - font-size: .875rem; -} - -.stretched-link { - &::after { - outline: inherit; - } -} - -.modal-open { - overflow: hidden; -} - -.pagination { - --bs-pagination-color: var(--primary); - --bs-pagination-active-border-color: var(--primary); - --bs-pagination-focus-color: var(--primary); - --bs-pagination-hover-color: hsl(var(--primary-h), var(--primary-h), var(--primary-l) + 10%); - --bs-pagination-focus-box-shadow: 0 0 0 #{$btn-focus-width} hsla(var(--primary-h), var(--primary-s), var(--primary-l), .5) -} diff --git a/resources/assets/sass/_typography.scss b/resources/assets/sass/_typography.scss deleted file mode 100644 index 06f68e170..000000000 --- a/resources/assets/sass/_typography.scss +++ /dev/null @@ -1,58 +0,0 @@ - -@font-face { - font-family: 'Karla'; - font-style: normal; - font-weight: 700; - src: url(/resources/assets/fonts/Karla-Bold.woff) format('woff'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} - - -@font-face { - font-family: 'Karla'; - font-style: normal; - font-weight: 600; - src: url(/resources/assets/fonts/Karla-SemiBold.woff) format('woff'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} - - -.ui-font { - font-family: 'Karla', $font-family-sans-serif; - //text-transform: uppercase; - font-weight: 700; -} - -.ui-title-font { - font-family: 'Karla', $font-family-sans-serif; - //text-transform: uppercase; - font-weight: 600; -} - -.ui-font-size { - font-size: $ui-font-size; -} - -h1.ui-heading-font-size { - font-size: 1.75rem; -} - -h2.ui-heading-font-size { - font-size: 1.5rem; -} - -h3.ui-heading-font-size { - font-size: 1.25rem; -} - -h4.ui-heading-font-size { - font-size: 1.125rem; -} - -h5.ui-heading-font-size { - font-size: 1rem; -} - -h6.ui-heading-font-size { - font-size: .875rem; -} diff --git a/resources/assets/sass/app.scss b/resources/assets/sass/app.scss deleted file mode 100644 index 136dfe7e8..000000000 --- a/resources/assets/sass/app.scss +++ /dev/null @@ -1,53 +0,0 @@ - - -@import 'variables'; - -@import "bootstrap"; - - -//@import '../../../node_modules/carbon-components/scss/globals/scss/vars'; - -@import 'mixins/layer'; -@import 'mixins/helper-mixins'; -@import 'mixins/layout'; -@import 'mixins/close-button'; - -@import "root"; -@import "typography"; - -@import '../../../node_modules/sharp-ui/scss/ui'; -@import '../../../node_modules/sharp-commands/scss/commands'; -@import '../../../node_modules/sharp-form/scss/form'; -@import '../../../node_modules/sharp-entity-list/scss/entity-list'; -@import '../../../node_modules/sharp-dashboard/scss/dashboard'; -@import '../../../node_modules/sharp-show/scss/show'; -@import '../../../node_modules/sharp-filters/scss/filters'; - -@import 'components/ActionView'; - -@import 'pages/login'; - -@import "utilities"; - -a { - color: hsl(var(--primary-h), var(--primary-s), 30%); - &:hover { - color: hsl(var(--primary-h), var(--primary-s), 15%); - } -} - -body { - background-color: $body-bg-hsl; -} - -input[type="number"].hide-controls { - &::-webkit-inner-spin-button, &::-webkit-outer-spin-button { - -webkit-appearance: none; - margin: 0; - } - -moz-appearance: textfield; -} - -[v-cloak] { - display: none; -} diff --git a/resources/assets/sass/vendors.scss b/resources/assets/sass/vendors.scss deleted file mode 100644 index d42a68c0a..000000000 --- a/resources/assets/sass/vendors.scss +++ /dev/null @@ -1,27 +0,0 @@ - -@import "variables"; - -$fa-font-path: '../../../node_modules/@fortawesome/fontawesome-free/webfonts'; -@import '../../../node_modules/@fortawesome/fontawesome-free/scss/fontawesome'; -@import '../../../node_modules/@fortawesome/fontawesome-free/scss/solid'; -@import '../../../node_modules/@fortawesome/fontawesome-free/scss/regular'; -@import '../../../node_modules/@fortawesome/fontawesome-free/scss/brands'; -@import '../../../node_modules/@fortawesome/fontawesome-free/scss/v4-shims'; - -@import "../../../node_modules/cropperjs/dist/cropper.css"; -@import "../../../node_modules/prosemirror-view/style/prosemirror.css"; -@import "../../../node_modules/prosemirror-gapcursor/style/gapcursor.css"; -@import "../../../node_modules/prosemirror-tables/style/tables.css"; -//@import '../../../node_modules/simplemde/dist/simplemde.min.css'; -//@import '../../../node_modules/trix/dist/trix.css'; -@import "../../../node_modules/leaflet/dist/leaflet.css"; - -.leaflet-default-icon-path { - background-image: none; -} - -$animationDuration: 300ms; - -@import "../../../node_modules/vue2-animate/src/sass/make-transitions"; -@import "../../../node_modules/vue2-animate/src/sass/animations/sliding/all"; - diff --git a/resources/css/app.css b/resources/css/app.css new file mode 100644 index 000000000..61e005d49 --- /dev/null +++ b/resources/css/app.css @@ -0,0 +1,41 @@ +@import "./fonts.css"; +@import "./shadcn.css"; +@import "./shadcn-overrides.css"; +@import "./content.css"; +@import "./nprogress.css"; + +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + [type="search"]::-webkit-search-decoration, + [type="search"]::-webkit-search-cancel-button { + appearance: none; + } + body { + overflow-y: scroll; + } + + tr.relative { + transform: scale(100%); + clip-path: inset(0); + } + + .dark { + color-scheme: dark; + } +} + +@layer components { + .container { + @apply px-4 lg:px-6; + } +} + +@layer utilities { + /* tailwindcss-animate allow to set animation duration with "duration-" classes but it clashes with items in TransitionGroup */ + [class*="transition"] { + animation-duration: 0s; + } +} diff --git a/resources/css/content.css b/resources/css/content.css new file mode 100644 index 000000000..495d57275 --- /dev/null +++ b/resources/css/content.css @@ -0,0 +1,79 @@ + +@layer components { + .content { + > :where(h1) { + @apply mt-6 border-b pb-2 text-3xl font-semibold tracking-tight; + } + > :where(h2) { + @apply mt-6 text-2xl font-semibold tracking-tight; + } + > :where(h3) { + @apply mt-4 text-xl font-semibold tracking-tight; + } + > :where(h4, h5, h6) { + @apply mt-4 font-semibold; + } + > :where(p) { + @apply mt-4; + } + > :where(ul) { + @apply mt-4 ml-6 list-disc [&>li]:mt-2; + } + > :where(ol) { + @apply mt-4 ml-6 list-decimal [&>li]:mt-2; + } + > :where(blockquote) { + @apply mt-4 relative flow-root pl-4 border-l-2 before:block before:-mt-0.5; + > :where(p,ul,ol) { + @apply mt-2; + } + > :where(:first-child) { + @apply mt-0; + } + > :where(:last-child) { + @apply mb-0; + } + } + > :where(table) { + @apply mt-4 w-full; + :where(tr) { + @apply m-0 border-t p-0 even:bg-muted; + } + :where(th) { + @apply border px-4 py-2 text-left font-bold [&[align=center]]:text-center [&[align=right]]:text-right; + } + :where(td) { + @apply border px-4 py-2 text-left [&[align=center]]:text-center [&[align=right]]:text-right; + } + } + :where(code) { + @apply rounded bg-muted px-[0.3rem] py-[0.2rem] font-mono text-sm; + } + > :where(pre) { + @apply mt-4 !whitespace-pre overflow-x-auto; + > :where(code) { + @apply block py-2 px-4 bg-muted rounded-md [font-size:inherit]; + } + .ProseMirror-trailingBreak { + @apply hidden; + } + } + > :where(hr) { + @apply mt-4; + } + :where(a:not([style],[class])) { + @apply relative p-1.5 -m-1.5 text-primary underline underline-offset-4 decoration-primary/20 hover:decoration-inherit; + } + :where(strong) { + @apply font-bold; + } + > :where(:first-child) { + @apply mt-0; + } + > :where(:last-child) { + @apply mb-0; + } + } + .content-sm { + } +} diff --git a/resources/css/fonts.css b/resources/css/fonts.css new file mode 100644 index 000000000..6feab960d --- /dev/null +++ b/resources/css/fonts.css @@ -0,0 +1,9 @@ + + +@font-face { + font-family: geist-sans; + font-style: normal; + font-weight: 100 900; + font-display: swap; + src: url(/resources/fonts/GeistVF.woff2) format("woff2") +} diff --git a/resources/css/nprogress.css b/resources/css/nprogress.css new file mode 100644 index 000000000..9732edfe6 --- /dev/null +++ b/resources/css/nprogress.css @@ -0,0 +1,4 @@ + +body:has([role=dialog][data-state=open]) { + --nprogress-color: hsl(0 0% 98%); +} diff --git a/resources/css/shadcn-overrides.css b/resources/css/shadcn-overrides.css new file mode 100644 index 000000000..189e5472e --- /dev/null +++ b/resources/css/shadcn-overrides.css @@ -0,0 +1,83 @@ + + +@layer base { + :root { + /*--primary-oklch: from var(--sharp-config-primary) 0.21 0.04 h; !* default levels *!*/ + --primary-oklch: from var(--sharp-config-primary) 0.3 min(c, 0.1) h; + /*--primary-foreground-oklch: from var(--sharp-config-primary) 0.98 0 h; !* default levels *!*/ + --primary-foreground-oklch: from var(--sharp-config-primary) 0.98 min(c, 0.02) h; + + /*--secondary-oklch: from var(--sharp-config-primary) 0.97 0 h; !* default levels *!*/ + --secondary-oklch: from var(--sharp-config-primary) 0.97 min(c, 0.005) h; + /*--secondary-foreground-oklch: from var(--sharp-config-primary) 0.21 0.01 h; !* default levels *!*/ + --secondary-foreground-oklch: from var(--sharp-config-primary) 0.21 min(c, 0.05) h; + + --muted-oklch: from var(--sharp-config-primary) 0.97 0 h; /* default levels */ + /*--muted-oklch: from var(--sharp-config-primary) 0.97 0.005 h;*/ + --muted-foreground-oklch: from var(--sharp-config-primary) 0.55 min(c, 0.01) h; /* default levels */ + /*--muted-foreground-oklch: from var(--sharp-config-primary) 0.55 0.03 h;*/ + + /*--accent-oklch: from var(--sharp-config-primary) 0.97 0 h; !* default levels *!*/ + --accent-oklch: from var(--sharp-config-primary) 0.97 min(c, 0.01) h; + /*---accent-oklch: from var(--sharp-config-primary) 0.21 0.01 h; !* default levels *!*/ + --accent-foreground-oklch: from var(--sharp-config-primary) 0.21 min(c, 0.2) h; + + /*--input-oklch: from var(--sharp-config-primary) 0.92 0 h; !* default levels *!*/ + --input-oklch: from var(--sharp-config-primary) 0.89 min(c, 0.005) h; + /*--border-oklch: from var(--sharp-config-primary) 0.92 0 h; !* default levels *!*/ + --border-oklch: from var(--sharp-config-primary) 0.92 min(c, 0.005) h; + /*--ring-oklch: from var(--sharp-config-primary) 0.71 min(c, 0.01) h; !* default levels *!*/ + --ring-oklch: from var(--sharp-config-primary) 0.71 min(c, 0.05) h; + + /*--sidebar-background-oklch: from var(--sharp-config-primary) 0.98 0 h; !* default levels *!*/ + --sidebar-background-oklch: from var(--sharp-config-primary) 0.98 min(c, 0.005) h; + /*--sidebar-foreground-oklch: from var(--sharp-config-primary) 0.37 0.01 h; !* default levels *!*/ + --sidebar-foreground-oklch: from var(--sharp-config-primary) 0.37 min(c, 0.05) h; + /*--sidebar-accent-oklch: from var(--sharp-config-primary) 0.97 0 h; !* default levels *!*/ + --sidebar-accent-oklch: from var(--sharp-config-primary) 0.96 min(c, 0.01) h; + /*--sidebar-accent-oklch: from var(--sharp-config-primary) 0.21 0.01 h; !* default levels *!*/ + --sidebar-accent-foreground-oklch: from var(--sharp-config-primary) 0.21 min(c, 0.2) h; + /*--sidebar-accent-oklch: from var(--sharp-config-primary) 0.93 0.01 h; !* default levels *!*/ + --sidebar-border-oklch: from var(--sharp-config-primary) 0.93 min(c, 0.015) h; + } + + .dark { + /*--primary-oklch: from var(--sharp-config-primary) 0.98 0 h; !* default levels *!*/ + --primary-oklch: from var(--sharp-config-primary) 0.98 min(c, 0.1) h; + /*--primary-foreground-oklch: from var(--sharp-config-primary) 0.21 0.01 h; !* default levels *!*/ + --primary-foreground-oklch: from var(--sharp-config-primary) 0.21 min(c, 0.02) h; + + /*--secondary-border-oklch: from var(--sharp-config-primary) 0.27 0.01 h; !* default levels *!*/ + --secondary-oklch: from var(--sharp-config-primary) 0.27 min(c, 0.01) h; + /*--secondary-foreground-oklch: from var(--sharp-config-primary) 0.98 0 h; !* default levels *!*/ + --secondary-foreground-oklch: from var(--sharp-config-primary) 0.98 min(c, 0.05) h; + + --muted-oklch: from var(--sharp-config-primary) 0.27 min(c, 0.01) h; /* default levels */ + /*--muted-oklch: from var(--sharp-config-primary) 0.20 0.05 h;*/ + --muted-foreground-oklch: from var(--sharp-config-primary) 0.71 min(c, 0.01) h; /* default levels */ + /*--muted-foreground-oklch: from var(--sharp-config-primary) 0.71 0.03 h;*/ + + /*--accent-oklch: from var(--sharp-config-primary) 0.27 0.01 h; !* default levels *!*/ + --accent-oklch: from var(--sharp-config-primary) 0.27 min(c, 0.01) h; + /*--accent-foreground-oklch: from var(--sharp-config-primary) 0.98 0 h; !* default levels *!*/ + --accent-foreground-oklch: from var(--sharp-config-primary) 0.98 min(c, 0.005) h; + + /*--input-oklch: from var(--sharp-config-primary) 0.27 min(c, 0.01) h; !* default levels *!*/ + --input-oklch: from var(--sharp-config-primary) 0.27 min(0.01) h; + /*--border-oklch: from var(--sharp-config-primary) 0.27 min(c, 0.01) h; !* default levels *!*/ + --border-oklch: from var(--sharp-config-primary) 0.27 min(0.01) h; + /*--ring-oklch: from var(--sharp-config-primary) 0.87 min(c, 0.01) h; !* default levels *!*/ + --ring-oklch: from var(--sharp-config-primary) 0.87 min(c, 0.1) h; + + /*--sidebar-background-oklch: from var(--sharp-config-primary) 0.21 0.01 h; !* default levels *!*/ + --sidebar-background-oklch: from var(--sharp-config-primary) 0.21 min(c, 0.02) h; + /*--sidebar-foreground-oklch: from var(--sharp-config-primary) 0.97 0 h; !* default levels *!*/ + --sidebar-foreground-oklch: from var(--sharp-config-primary) 0.97 min(c, 0.005) h; + /*--sidebar-accent-oklch: from var(--sharp-config-primary) 0.27 0.01 h; !* default levels *!*/ + --sidebar-accent-oklch: from var(--sharp-config-primary) 0.27 min(c, 0.025) h; + /*--sidebar-accent-foreground-oklch: from var(--sharp-config-primary) 0.97 0 h; !* default levels *!*/ + --sidebar-accent-foreground-oklch: from var(--sharp-config-primary) 1 min(c, 0.1) h; + /*--sidebar-border-oklch: from var(--sharp-config-primary) 0.27 0.01 h; !* default levels *!*/ + --sidebar-border-oklch: from var(--sharp-config-primary) 0.27 min(c, 0.015) h; + } +} diff --git a/resources/css/shadcn.css b/resources/css/shadcn.css new file mode 100644 index 000000000..489534729 --- /dev/null +++ b/resources/css/shadcn.css @@ -0,0 +1,77 @@ + +/* coming from "Zinc" theme https://github.com/shadcn-ui/ui/blob/main/apps/www/styles/globals.css */ +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 240 10% 3.9%; + --card: 0 0% 100%; + --card-foreground: 240 10% 3.9%; + --popover: 0 0% 100%; + --popover-foreground: 240 10% 3.9%; + --primary: 240 5.9% 10%; + --primary-foreground: 0 0% 98%; + --secondary: 240 4.8% 95.9%; + --secondary-foreground: 240 5.9% 10%; + --muted: 240 4.8% 95.9%; + --muted-foreground: 240 3.8% 46.1%; + --accent: 240 4.8% 95.9%; + --accent-foreground: 240 5.9% 10%; + --destructive: 0 72.22% 50.59%; + --destructive-foreground: 0 0% 98%; + --border: 240 5.9% 90%; + --input: 240 5.9% 90%; + --ring: 240 5% 64.9%; + --radius: 0.5rem; + + --sidebar-background: 0 0% 98%; + --sidebar-foreground: 240 5.3% 26.1%; + --sidebar-primary: 240 5.9% 10%; + --sidebar-primary-foreground: 0 0% 98%; + --sidebar-accent: 240 4.8% 95.9%; + --sidebar-accent-foreground: 240 5.9% 10%; + --sidebar-border: 220 13% 91%; + --sidebar-ring: 240 5% 64.9%; + } + + .dark { + --background: 240 10% 3.9%; + --foreground: 0 0% 98%; + --card: 240 10% 3.9%; + --card-foreground: 0 0% 98%; + --popover: 240 10% 3.9%; + --popover-foreground: 0 0% 98%; + --primary: 0 0% 98%; + --primary-foreground: 240 5.9% 10%; + --secondary: 240 3.7% 15.9%; + --secondary-foreground: 0 0% 98%; + --muted: 240 3.7% 15.9%; + --muted-foreground: 240 5% 64.9%; + --accent: 240 3.7% 15.9%; + --accent-foreground: 0 0% 98%; + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 0 85.7% 97.3%; + --border: 240 3.7% 15.9%; + --input: 240 3.7% 15.9%; + --ring: 240 4.9% 83.9%; + + --sidebar-background: 240 5.9% 10%; + --sidebar-foreground: 240 4.8% 95.9%; + --sidebar-primary: 224.3 76.3% 48%; + --sidebar-primary-foreground: 0 0% 100%; + --sidebar-accent: 240 3.7% 15.9%; + --sidebar-accent-foreground: 240 4.8% 95.9%; + --sidebar-border: 240 3.7% 15.9%; + --sidebar-ring: 240 4.9% 83.9%; + } +} + + +@layer base { + * { + @apply border-border; + } + + body { + @apply bg-background text-foreground; + } +} diff --git a/resources/css/vendors.css b/resources/css/vendors.css new file mode 100644 index 000000000..9309e5d6b --- /dev/null +++ b/resources/css/vendors.css @@ -0,0 +1,17 @@ + +/*@import '/node_modules/@fortawesome/fontawesome-free/css/fontawesome.css';*/ +/*@import '/node_modules/@fortawesome/fontawesome-free/css/solid.css';*/ +/*@import '/node_modules/@fortawesome/fontawesome-free/css/regular.css';*/ +/*@import '/node_modules/@fortawesome/fontawesome-free/css/brands.css';*/ +/*@import '/node_modules/@fortawesome/fontawesome-free/css/v4-shims.css';*/ + + +@import "/node_modules/cropperjs/dist/cropper.css"; +@import "/node_modules/prosemirror-view/style/prosemirror.css"; +@import "/node_modules/prosemirror-gapcursor/style/gapcursor.css"; +@import "/node_modules/prosemirror-tables/style/tables.css"; +@import "/node_modules/leaflet/dist/leaflet.css"; + +.leaflet-default-icon-path { + background-image: none; +} diff --git a/resources/fonts/GeistVF.woff2 b/resources/fonts/GeistVF.woff2 new file mode 100644 index 000000000..9983e92a0 Binary files /dev/null and b/resources/fonts/GeistVF.woff2 differ diff --git a/resources/assets/fonts/Karla-Bold.woff b/resources/fonts/Karla-Bold.woff similarity index 100% rename from resources/assets/fonts/Karla-Bold.woff rename to resources/fonts/Karla-Bold.woff diff --git a/resources/assets/fonts/Karla-SemiBold.woff b/resources/fonts/Karla-SemiBold.woff similarity index 100% rename from resources/assets/fonts/Karla-SemiBold.woff rename to resources/fonts/Karla-SemiBold.woff diff --git a/resources/js/Layouts/Auth/AuthCard.vue b/resources/js/Layouts/Auth/AuthCard.vue new file mode 100644 index 000000000..5fb1eff55 --- /dev/null +++ b/resources/js/Layouts/Auth/AuthCard.vue @@ -0,0 +1,29 @@ + + + + diff --git a/resources/js/Layouts/Auth/AuthLayout.vue b/resources/js/Layouts/Auth/AuthLayout.vue new file mode 100644 index 000000000..1ffab27a9 --- /dev/null +++ b/resources/js/Layouts/Auth/AuthLayout.vue @@ -0,0 +1,33 @@ + + + diff --git a/resources/js/Layouts/Layout.vue b/resources/js/Layouts/Layout.vue new file mode 100644 index 000000000..533cc187b --- /dev/null +++ b/resources/js/Layouts/Layout.vue @@ -0,0 +1,338 @@ + + + + + diff --git a/resources/js/Pages/Auth/ForgotPassword.vue b/resources/js/Pages/Auth/ForgotPassword.vue new file mode 100644 index 000000000..805627bea --- /dev/null +++ b/resources/js/Pages/Auth/ForgotPassword.vue @@ -0,0 +1,70 @@ + + + diff --git a/resources/js/Pages/Auth/Impersonate.vue b/resources/js/Pages/Auth/Impersonate.vue new file mode 100644 index 000000000..3513c9d4a --- /dev/null +++ b/resources/js/Pages/Auth/Impersonate.vue @@ -0,0 +1,68 @@ + + + diff --git a/resources/js/Pages/Auth/Login.vue b/resources/js/Pages/Auth/Login.vue new file mode 100644 index 000000000..8c1ffc9fb --- /dev/null +++ b/resources/js/Pages/Auth/Login.vue @@ -0,0 +1,117 @@ + + + diff --git a/resources/js/Pages/Auth/Login2Fa.vue b/resources/js/Pages/Auth/Login2Fa.vue new file mode 100644 index 000000000..447090b99 --- /dev/null +++ b/resources/js/Pages/Auth/Login2Fa.vue @@ -0,0 +1,59 @@ + + + diff --git a/resources/js/Pages/Auth/ResetPassword.vue b/resources/js/Pages/Auth/ResetPassword.vue new file mode 100644 index 000000000..3fca5cbe7 --- /dev/null +++ b/resources/js/Pages/Auth/ResetPassword.vue @@ -0,0 +1,76 @@ + + + diff --git a/resources/js/Pages/Dashboard/Dashboard.vue b/resources/js/Pages/Dashboard/Dashboard.vue new file mode 100644 index 000000000..39a30b2db --- /dev/null +++ b/resources/js/Pages/Dashboard/Dashboard.vue @@ -0,0 +1,304 @@ + + +